一 什么是用户,用户再系统中的存在方式
用户是操作者在系统中的身份
用户是系统最底层的安全机制的一部分
用户在系统中以字符和文件的形式存在
二 用户存在的意义以及用户组存在的意义
用户存在的意义:限制权力
用户组存在的意义:开放权力
三 如何查看用户
1> 查看当前用户
whoami ##查看当前用户
2> 系统中用户的查看
id ##查看指定用户id信息
id -u ##查看用户的uid
id -g ##查看用户的gid
id -G ##查看用户所在的所有组的id
id -n ##显示名字而不显示id数字 -n,不能单独使用
四 用户切换
su - 用户名称
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
注意:每次su切换到其他用户操作之后必须退出(Ctrl+D),然后再次切换到其他用户
这里正如注意中所说,每次切换用户后需退出,然后再切换其他用户,不然的话,你强关就会出现问题。正如上图所见,后面几条命令都用来退出用户了,这是一个不规范的操作,需注意。
五 用户在系统中的存储方式
/etc/passwd
用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
/etc/group
用户组信息文件
组的名字:组密码:组id:组成员
/etc/shadow
认证信息文件:
用户名称
用户密码
用户密码最后一次被更改的时间
密码最短有效期
密码最长有效期
密码警告期限
密码非活跃期限
密码到期日
用户自定义列,目前没有使用
/etc/skel/.*
默认开启shell的配置,用户的骨文件
/home/username
用户的家目录
六 用户管理命令
1> 用户的删除
userdel
userdel student ##删除用户但不删除用户的配置文件
userdel -r student ##删除用户并删除用户的配置文件
2> 用户的建立
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
这里需要再用一条命令来看一下具体的变化,因此需要来监控一下。
watch -n 1 ' tail -n 3 /etc/passwd /etc/group;ls -l /home '
'' ##表示一个整体
; ##表示先执行前面的命令,再执行后面的命令
watch ##表示对命令进行监控
-n 1 ##表示每隔1s进行一次监控
这里只示范了两个命令,一个是改变用户的uid,一个是改变用户的说明。建立了一个用户后,删除用户时,需要有 -r ,连配置文件一起删除,删除干净。
2)groupadd 用户组的建立
groupadd -g 888 ##建立用户组并指定用户组的id
groupdel ##删除用户组
3)更改用户信息
usermod
usermod -l 新名称 westos ##更改用户的名称
usermod -u 666 westos ##更改用户的uid
usermod -g 21 westos ##更改用户的初始组
usermod -G 21 westos ##更改用户的附加组
usermod -aG 72 westos ##添加用户的附加组
usermod -G "“ westos ##删除用户所有附加组的身份
usermod -c "hahah“ westos ##更改用户的说明
usermod -d /home/lee westos ##更改用户家目录的指向
usermod -md /home/lee westos ##更改用户家目录
usermod -s /bin/sh westos ##更改用户的shell
usermod -L westos ##冻结用户
usermod -U westos ##解锁用户
这里示范了 -G 与 -aG 的区别。-G 是更改用户的附加组,且附加组必须存在,-aG 是给用户追加一个附加组,也且需存在。如果有兴趣的话,可以试一下其它的命令。
七 用户认证信息
/etc/shadow ##纪录用户的认证信息(此文件一共九列)
比如说:westos: : 17731:0 :99999:7 : : : 这是刚才建立的westos用户的shadow信息
[1] [2] [3] [4] [5] [6] [7] [8] [9]
[1] 用户名称:westos [2] 用户密码:为空 [3]用户密码最后一次被更改的时间:17731 [4] 密码最短有效期:0
[5] 密码最长有效期 99999 [6] 密码警告期限:7 [7] 密码非活跃期限:为空 [8] 密码到期日:为空
[9] 用户自定义列,目前没有使用:为空
这些用户信息都可以用下面的命令进行更改。感兴趣的可以下去试一下。
还有这里插入一条命令,对下面的命令可起辅助作用:passwd -S westos ##查看westos用户的密码信息
1)用户名称 (这个就不需要解释了)
2)用户密码
passwd student ##更改student密码
passwd -l student ##在用户密码前加入“!!”
passwd -u student ##删除用户的一个“!”
usermod -L student ##在用户密码前加入“!”
usermod -U student ##在密码不为空时使用
passwd -d student ##清空student密码
注意:
普通用户改密码时
1.必须知道当前永久原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或字母
4.密码不能是有序的字母和数字的组合
3)用户密码最后一次被更改的时间
passwd -e westos ##会改变用户最后一次更改时间为0,会强制用户再登陆时更改密码
chage -d 0 westos ##两个效果一样
4)密码最短有效期
passwd -n 1 westos ##westos用户一天不能修该密码
chage -m 1 westos ##两个效果一样
5)密码最长有效期
passwd -x 30 westos ##westos30天之后必须该一次密码
chage -M 30 westos ##两个效果一样
6)密码警告期限
passwd -w 2 westos ##密码过期前2天会警告
chage -W 2 westos ##两个效果一样
7)密码非活跃期限
passwd -i 1 westos ##密码过期后1天仍可登陆
chage -I 1 westos ##两个效果一样
8)密码到期日
chage -E 2018-11-11 westos ##westos用户到2018年11月11日到期,冻结使用
9)用户自定义列,目前没有使用
八 用户授权
超级用户给普通用户授权的话,这里就需要更改 /etc/sudoers 文件了。
授权配置命令: visudo
规范操作
新建一个普通用户,再查看它的主机名称(hostname)
visudo进入进行配置
:100 文件100行左右
普通用户 主机名称=(转换成的新用户身份) 命令1, 命令2, 。。。
普通用户 主机名称=(转换成的新用户身份) NOPASSWD: 命令
最后【Esc】,:wq 退出保存
su - 用户 切换到普通用户建立删除新用户
这里给大家做一个示范:
root 给予 westos 建立删除新用户的权限
上面是 /etc/sudoers 文件中需要设置的内容,可以参考 root 的设置
这里还需要注意一点的是: 建立文件时,需引用 /etc/sudoers 文件,所以需要命令 sudo useradd hello