一、用户的定义
用户就是系统使用者的身份,是系统最底层的安全机制的一部分
二、用户存在形式
在系统中用户存储为若干窜字符+若干个系统配置文件
三、用户信息涉及到的系统配置文件:
/etc/passwd ###用户信息文件
用户:密码:uid:gid:说明:家目录:用户使用的shell
/etc/shadow ###用户认证信息
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
/etc/group ###用户组信息
组名称:组密码:组id:附加组成员
/home/username ###用户家目录
/etc/skel/.* ###用户骨架文件,默认开启shell的配置
注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里
这个目录中默认存在的隐藏文件是用户的默认配置文件
四、用户管理
监控命令 watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home/'
1.用户建立
useradd ##建立用户的,建立用户时,读取/etc/login.defs 文件内容确定规则,所以有自己的初始组
useradd -u 8888 westos ##指定用户uid
useradd -g 21 westos ##指定用户初始组id, "21用户组必须是存在的"
useradd -G 21 westos ##指定用户的附加组id “21用户组必须存在”
useradd -c "hello" westos ##指定用户的说明
useradd -d /home/lee westos ##指定用户的家目录
useradd -s /bin/sh westos ##指定用户的默认shell /etc/shells记录了用户能使用shell的名字
2.用户删除
userdel 用户名称 ##删除用户但不删除用户的配置文件
userdel -r 用户名称 ## 删除用户信息及用户的系统配置
3.组的建立与删除
groupadd 组名字 ##建立组
groupadd -g 666 组名字 ##建立组并指定用户组id
groupdel 组名字 ##删除组
4.用户id信息查看
id 参数 用户
-u ##用户uid
-g ##用户初始组id
-G ##用户所有所在组id
-n ##显示名称而不是id数字(-n只有和-G,-g,-u一起的时候能显示出来名称。-n不能单独使用。)
-a ##显示所有信息
5.更改用户信息
usermod 参数 用户
usermod -l 新名称 westos ##更改用户的名称
usermod -u 6666 westos ##更改用户uid
usermod -g 21 westos ##更改用户的初始组
usermod -G 21 westos ##更改用户的附加组
usermod -aG 72 westos ##添加用户的附加组
usermod -G " " westos ##删除用户所有附加组的身份
usermod -c "hahahah" westos ##指定用户说明文字
usermod -d /home/lee westos ##更改用户家目录的指向
usermod -md /home/lee westos ##更改用户家目录
usermod -s /bin/sh westos ##更改用户的shell
usermod -L westos ##冻结用户
usermod -U westos ##解锁用户
6.用户切换
su - 用户名称
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户
五、用户认证信息控制
1.用户认证信息文件/etc/shadows
passwd -S 文件名 ###查看用户密码信息
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
监控: watch -n 1 "watch -n 1 passwd -S 文件 ;tail -n 1 /etc/shadow"
2."passwd" 用来修改用户认证信息
1)用户名称
2)用户密码
passwd westos ##更改westos密码
passwd -l westos ##在用户密码前加入“!!”(强度较高)
passwd -u westos
usermod -L westos ##在用户密码前加入“!”
usermod -U westos ##在密码不为空时使用
passwd -d westos ##清空westos密码
注:如果是超级用户不需要知道原来密码,直接修改,没密码强度限制
如果是普通用户需要输入原始密码密码不能少于8个字符,不能与用户名相似;不能是纯数字,不能是纯字母 ,也不可以是数字与字母的有序组合
3)用户密码最后一次被更改的时间
passwd -e westos ##会改变用户最后一次更改密码时间为0.
##用户在登陆时会被强制更改密码
chage -d 0 westos ##两个命令功能类似
4)用户密码最短有效期
passwd -n 1 westos ##westos用户在1天之内不能修改密码
chage -m 1 westos
5)用户密码最长有效期
passwd -x 30 westos ##设定westos在30天内必须改密码
chage -M 40 westos
6)密码警告期限
passwd -w 2 westos ##密码过期前两天有警告输出
chage -W 2 westos
7)户非活跃天数
passwd -i 1 westos ##密码过期后仍可登陆系统的天数
chage -I 1 westos
8)用户到期日
chage -E 2018-11-11 westos ##westos用户在2018-11-11日会被冻结
9)用户自定义列,目前没有启用
六、权力下放
sudo 执行命令的流程是当前用户切换到 root, 然后以 root 身份执行命令 , 执行完成后 , 直接退回到当前用户 ; 而这些的前提是
要通过 sudo 的配置文件 /etc/sudoers 来进行授权
1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权力配置文件:/etc/sudoers
2.下放权力的方法
1)超级用户执行vim /etc/sudoers ###此方法无语法检测
2)超级用户执行visudo ####此方法有语法检测
格式:
获得权限用户 主机名称=(获得到的用户身份) 命令
test desktop0.example.com=(root) /usr/sbin/useradd
举例:使test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd
3.执行下放权限命令
sudo 命令 ##如果第一次执行sudo需要输入当前用户密码
在/etc/sudoers中如果设置如下,可不需要密码:
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd