用户和用户组管理
1.用户和用户组配置文件
/etc/passwd 用户信息的配置文件
/etc/shadow 用户密码信息的配置文件
/etc/group 用户组信息的配置文件
/etc/gshadow 用户组密码信息的配置文件
查看配置文件的帮助说明
1)/etc/passwd
查看配置文件帮助
man 5 passwd
There is one entry per line, and each line has the format:
account:password:UID:GID:GECOS:directory:shell
每一行用户的信息:
用户名称
密码标识:
x表示有密码,如果去掉x,不需密码即可登录,只能在本地登录,每个用户的密码文件存放在/etc/shadow中,只有root有读写权限,在开机登录时,系统到shadow文件中读取密码验证。
用户id:
0 超级用户
1-499 系统用户(不能删除,不能登录,供系统某些服务调用)
500-65535 普通用户
所以授予某个用户为超级用户,只需修改其id即可,系统通过id管理每个用户,但其家目录仍保持不变
组id:初始组id
初始组(每个用户在创建时,创建一个起始组,默认组名为用户名)
附加组(一个用户可以属于多个添加组)
关于组的详细信息在/etc/group中
用户说明:
对用户的说明,可以省略
家目录(宿主目录):
用户登录时的默认目录
shell:
/sbin/nologin(暂时限制用户登录)
2)/etc/shadow
该配置文件的权限为000,只有root能够读写
每一行的信息:
用户名
密码:
* !!表示没有密码,不能登录
临时禁用某个用户,加密密码前加!,加密密码换算错误,所以登录不进去
密码最后一次修改时间为1970.1.1后多少天:时间戳
两次密码的修改间隔时间
密码的有效期(99999永久生效)
密码到期前系统警告时间
密码到期后的宽限时间,禁止登录
帐号失效时间时间戳
保留字段
3)/etc/group
每一行的信息:
组名
组密码标识
组id
组中的附加用户
4)/etc/gshadow
组名 组密码
组管理员 组中的附加用户
2.用户的增加、删除和修改
命令名称:useradd
使用:useradd 选项 用户名
选项:
-u 指定uid
-g 指定初始组
-G 添加附加组
-c 添加用户说明
-s 指定用户shell
useradd -u 666 -G test -c “test user” test1
添加一个用户test1,它的uid为666,初始组为默认初始组test1,附加组为test,对它的说明test user
常用 useradd 用户名
命令名称:passwd
passwd 直接回车,给当前用户设置密码
passwd 用户名 只能root使用
普通用户只能更改自己的密码,且不能加用户名,只能passwd回车,普通用户设置密码必须遵守密码的复杂性原则,不能基于字典序,字母数字符号
passwd -l 用户名 锁定用户登录 /etc/shadow中加密密码!!
passwd -u 用户名 解锁用户登录 /etc/shadow中加密密码去掉!!
注意:在添加用户后,必须为用户添加密码,否则该用户无法登陆
命令名称:userdel
使用:userdel 选项 用户名
选项 -r 删除用户的同时,删除用户的家目录
userdel -r test1
命令名称:usermod
使用:usermod 选项 用户名 针对已经创建存在的用户
选项:
-u 修改uid
-g 修改初始组
-G 修改附加组
-c 修改用户说明
-s 修改用户shell
注意:
1)创建的用户的默认创建信息可在/etc/default/useradd和/etc/login.defs中查看,但有些是无效的
2)默认创建用户的家目录中的内容可以在/etc/skel中修改,skel为用户创建的模板
3.用户组的添加、删除、修改
组的添加
groupadd 组名
-g 指定gid
groupmod 选项 组名
-g 修改组id
-n 新组名
删除组
groupdel 组名
组中有初始用户,则该组不能删除,组中只有附加组,则可删除
向组中添加删除用户
gpasswd 选项 用户名 组名
-a 添加
-d 删除
gpasswd -a test 组名
gpasswd -d test 组名
注意:对于用户和用户组的添加、删除、修改可以不通过命令,直接修改配置文件进行操作。
例如:删除一个用户
删除/etc/passwd中的一条记录
删除/etc/shadow中的一条记录
删除/etc/group中的一条记录
删除/etc/gshadow中的一条记录
删除/home/用户
删除/etc/spool/mail/用户 该用户的邮箱目录
附加命令:
su 切换用户
su - 用户名
注意:-不可省略,省略-,切换用户的环境变量没有发生变化
su - 用户名 -c “command” 让该用户执行command命令,没有切换登录
id 用户名
查看该用户的id信息:uid gid
chage修改密码的状态
chage 选项 用户名
选项: -l 显示该用户的密码信息
其他选项修改密码状态,直接通过修改/etc/shadow直接修改更加方便
常用:chage -d 0 用户 普通用户一登陆提示修改密码,修改后密码的最后一次修改时间发生变化