用户与组
用户与组
linux是一款多用户的操作系统
分类:1、超级用户:具备超级管理权限(其权限不受系统控制的限制)
2、普通用户:具备普通管理权限(权限受限,但可以通过超级用户授权)
· 超级用户指的是root用户
普通用户分成两类:1、系统用户:该用户主要给系统应用、服务、程序使用
2、真实用户:该用户由管理员创建,用于维护人员操作系统
linux系统通过uid(user id用户编号 具备唯一性的特点)来区分用户身份
0位root(超级管理)
非0为普通用户
其中(centos 7):
1-200保留用户
201-999为系统用户(红帽6前是1-499)
1000+为真实用户(1000-60000) (6与之前500-60000)
真实用户最大值:4294967295 2^32-2
linux系统限制数量:4294967295 2^32-1
添加用户:
语法:useradd username
用户添加成功后在 /home目录
指定用户的uid:
useradd -u uid username 指定uid添加用户
useradd -ou uid USERNAME 如果指定的uid已被使用,系统会提示错误并不再添加,这时可以使用-o参数添加用户,-o:允许重复
useradd -g gid USERNAME 定义用户初始群组,前提:群组必须存在,-g后接群组gid
useradd -G gid USERNAME 指定用户次要群组,同样这些群组必须存在,如果需要指定多个群组,群组之间使用英文逗号隔开
useradd -d /home/? 指定用户的家目录,默认家目录在/home下与之同名,-d后的路径为绝对路径。如果不存在该目录,则会自动创建
useradd -c USERNAME 指定用户批注说明,如果批注文字包含空格,需要用双引号
useradd -s /sbin/ nologin username 用于指定用户登录的shell命令
useradd -n USERNAME 不设置私有用户
etc/default/useradd 用户添加默认文件
扩展:
useradd -r username 直接创建系统用户
vim /etc/login.defs 规定着用户uid的范围
删除用户:
语法 :userdel username 仅删除用户
userdel -r username 删除用户与家目录
修改用户:
语法 :usermod -l newname oldname 改名
usermod -u NEWID username 修改uid
usermod -g NEWID username 修改gid
usermod -c "comment" username 修改备注信息
usermod -d /PATH username 修改家目录
username -s /path/shell username 修改shell 路径
用户密码:
passwd 修改当前用户密码(如果是非root用户,需要输入用户的原始密码)
passwd username 修改指定用户密码,该命令仅root可用
passwd -d username 删除用户密码,仅root可用
passwd -l username 锁定用户,仅root 可用
usermod -L username 锁定用户,效果与上命令相同
passwd -u username 解锁用户,仅root可用
usermod -U useranem 解锁用户,效果与上命令相同
注:如果不适用passwd -u 或者usermod -U 解锁,还可以通过重新设置用户名密码方式解锁
passwd -S username 查询用户密码状态,仅root可用
echo “password" | passwd --stdin username 非交互设置用户密码
配置文件:
用户配置文件 vim /etc/passwd
root:x:0:0:root:/root:/bin/zsh
分割符号::
username:不允许用数字开头,不建议使用大写的字母,不允许特殊的符号
password:x位代表是否需要验证密码,如果该位有x,则系统会到/etc/shadow文件中查 找该用户密码,如果该位为空,则本地登录不需要验证密码,但是无法使用远程登录
uid:超级用户的uid一定为0,理论一个系统中不能存在同uid的身份,linux通过uid识别用户身份,当多个用户同uid时,系统会识别成一个用户
gid:初始群组,和windows不同的是,windows系统通过分组可以赋予用户管理的权限,但在linux系统中,只有uid为0时,用户才具备管理的权限
comment:信息/标识/解释,用户存放用户识别信息(主要给操作者方便识别)
homedir:家目录的路径
shell:用户可以使用哪些shell的命令 /sbin/nologin 非交互 /bin/bash 交互
密码配置文件 vim /etc/shadow
root:$6$VIXW89WK$aWbrMRWE5Nnn1BBQcmrTfZ8V4rkdLEClXTibmlGLtYDsDfMNBq8iRAe4SzGcy6HJcu 1K2qQOBdmY7itJB1xlN/:17892:0:99999:7:::
分割符号::
username:用户帐号
password:加密后的文本密码
last_changed:最后一次修改日期,没有直接显示日期,而是记录天数,从1970年1月1日始,至修改日
min_days:密码修改最小天数,假如该项为10,那就表示新密码生效后,十天内不可再修改
max_days:密码修改最大天数,假设该项为30,那就表示新密码生效后,30天内必须修改新密码
warnning:密码过期警告天数,假设该项为7,那么linux系统会在密码过期前7天开始提醒用户
expires:密码过期日期,需要从1970年1月1日算,如果该项为空,则表示密码用不会过期
disabled:帐号是否锁定,如果为0,则帐号被锁定,如果非0,则代表没锁定
查询账号与密码有效期
语法:chage -I USERNAME
修改账号与密码有效期
语法:
chage -m MINDAYS USERNAME
#设置密码修改最小天数
chage -M MAXDAYS USERNAME
#设置密码修改最大天数
chage -d LASTDAY USERNAME
#指定密码最后修改日期
chage -I INACTIVE USERNAME
#设置密码过期后锁定账号的天数
chage -E EXPIREDATE USERNAME
#设置密码过期日期,如果为0代表立即过期;如果为-1,代表密码永远不会过期
chage -W WARNDAYS USERNAME
#设置密码过期前开始警告的天数
群组管理GID
群组分类:
1、超级用户群组:名称为root的群组,且gid(group id群组编号)为0,超级用户群组并不具备管理权限,只是方便群组划分。
2、系统用户群组:同系统用户相同,是为系统程序、程序提供群组划分(201-999)
3、用户自定义分组:除了上述分组之外,其余都是用户自定义组,gid范围(1000-60000)
4、用户私有群组:在创建用户时,系统会自动创建与其同名的群组,这类群组称为用户私有群组。
群组信息文件路径:/etc/group
root:x:0:root
分割符号::
groupname:存放群组名称,如果与用户名同名,一般为私有组
x:代表密码,所以说群组也是可以设置密码的,密码文件保存在/etc/gshadow
gid:不限制多用户使用同一个gid
members:群组成员,如有多个成员,需要使用英文逗号隔开
群组操作命令
groupadd 群组添加
语法:groupadd 群组名称 添加一个群组
groupadd -g 1000 nimei 用指定的gid添加群组nimei
groupadd -r nimei 指定添加的群组为系统群组
groupadd -fg 1000 nidaye 强制添加,用于建立一个已经使用的gid群组
groupmod 群组修改
语法:groupmod -n mimi nimei 将nimei这个群组更名为mimi
groupdel 群组删除
语法:groupdel 群组名称 删除一个群组