用户和用户组管理
在linux中合理的权限划分是十分必要的,对于不同的内部人员要针对赋予特定的权限。root账户不可能赋予所有的内部人员。
用户配置文件和管理相关文件
用户信息文件/etc/passwd
vim /etc/passwd root:x:0:0:root:/root:/bin/bash
root: x:0:0:root:/root:/bin/bash
用户名:密码位:用户id:组id:注释:家目录:登录shell
- 密码位 — /etc/shadow
- 用户ID — 0:超级用户
1-499:系统用户(伪用户)UID
500-65535:普通用户UID
如何将普通用户变为超级用户:直接将该普通用户的UID改为0
影子文件/etc/shadow
vim /etc/shadow root:$6$KcDJSps39Fb3pZKr$Smxej7jT0vDbqF1CBJALHF6UrbOgVnEBjYgDyQd6aWHjAuFijCn6VNz8BMr5iiDoJ58v6PLzXwV7XRELBILhi.::0:99999:7:::
root:6 66KcDJSps39Fb3pZKr$Smxej7jT0vDbqF1CBJALHF6UrbOgVnEBjYgDyQd6aWHjAuFijCn6VNz8BMr5iiDoJ58v6PLzXwV7XRELBILhi.::0:99999:7:::
用户名:加密后的密码:密码的最近更改时间:两次修改密码之间的间隔:密码有效期:密码到期前的警告天数:密码过期的宽限天数:密码失效时间:保留
在centos7中用户密码主要使用SHA-512加密算法进行加密的
组信息文件/etc/group
vim /etc/group ajin:x:1000:ajin
ajin: x:1000:ajin
用户组名(初始组):组密码位:GID:附加用户(附加组)
组密码文件/etc/gshadow
vim /etc/gshadow ajin:!!::ajin
ajin:!!::ajin
组名:组密码:组管理员用户:附加组名
- 组密码 — ==!!==表示这个用户组没有合法的组密码
用户管理相关文件
/var/spool/mail — 用户邮箱目录
/etc/skel — 用户模板目录
用户管理命令
添加用户
useradd 选项 用户名 -u:手工指定用户的UID,普通用户500-65535 -g:手工指定用户的初始组 -G:手工指定用户的附加组 -c:手工指定用户说明,/etc/shadow的第五个字段 -d:手工指定用户的家目录 -s:手工指定用户的登录shell -D:可以看见新创建的用户的默认值
passwd 用户名 — 设置密码
在/etc/default/useradd和/etc/login.defs中可以看见创建用户的默认值的参考文件
修改用户密码
passwd [选项] 用户名 -l:锁定用户,仅root用户可以使用 -u:解锁已锁定的用户,仅root用户可以使用 -S:查看用户的密码状态,就是/etc/shadow里的内容 --stdin:可以将通过管道符输出的数据作为密码 --- echo "123" | passwd --stdin 用户名
修改用户信息
usermod 选项 用户名 -u:UID -d:家目录 -g:初始组 -G:附加组 -c:用户说明 -s:登录shell -e:用户的失效日期,shadow的8字段 -L:锁定用户 -U:解锁用户
修改用户密码状态
chage 选项 用户名 -l:列出用户的详细密码状态 -d:日期,用户最后一次修改密码的日期 -m:天数,两次修改密码的间隔时间 -M:密码的有效期 -W:密码到期前的警告天数 -I:密码到期后的宽限天数 -E:账号失效时间,YYYY-MM-DD
删除用户
userdel [-r] 用户名 -r:在删除用户是同时删除用户的家目录
查看用户的UID和GID
id 用户名
切换用户身份
su 选项 用户名 -:代表连带环境变量一起切换 -c:仅执行命令,不切换用户
env | grep 用户名 — 查看环境变量,且仅查看用户名那一行
用户组管理命令
添加用户组
groupadd 选项 组名 -g GID:指定用户组GID
删除用户组
groupdel 选项 组名
修改用户组
groupmod 选项 组名 -g GID:修改用户组名 -n:添加新的组名
把用户加进组或从组中删除
gpasswd 选项 组名 -a 用户名:把用户加入组 -d用户名:把用户从组中删除
改变有效组
newgrp 组名 newgrp group1
用户的默认有效组就是初始组,这个命令可以修改用户的有效组为附属于的多个附加组中的一个