- 用户及用户组存在的意义
- 用户在系统中的存储方式
- 深入分析用户涉及到的配置文件及内容
- 用户信息的查看(id命令)
- 用户身份的切换方式及环境变量
- 用户及用户组的建立及删除
- 用户及用户组的信息管理
- 用户认证文件的内容分析
- 用户认证管理
- 用户权力的下放1.用户及用户组存在的意义
一.用户及用户存在的意义
用户是操作者在系统中的身份标识
组是逻辑概念,是用户的集合,
用户的存在为了限制权限
组的存在为了归类用户便于管理权限
二.用户在系统中的存储方式
用户在系统中就是文件中的字符串
每个字符串映射了该用户所用到的系统资源
三. 深入分析用户涉及到的配置文件及内容
/etc/passwd #用户信息库
/etc/group #组信息库
/home/用户同名目录 #默认用户家目录
/etc/skel/所有文件 #用户环境配置文件模板
/etc/shadow #用户认证信息
/etc/gshadow #组认证信息
四.用户信息的查看(id命令)
用户id 查询
[root@workstation Desktop]# whoami 查看自身名称
root
首先进入普通用户student
gnome-session-quit --force 注销当前用户
[student@workstation ~]$ id hello(不存在的用户)
id: ‘westos’: no such user
[student@workstation ~]$ id -u student 查询用户uid
1000
[student@workstation ~]$ id -g student 查询用户初始组id
1000
[student@workstation ~]$ id -G student 查看用户所有组的id(显示附加组)
1000 10
[student@workstation ~]$ id student 查看所有id(-a)
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[student@workstation ~]$ id -gn student 显示用户初始组名字不显示id
student
[student@workstation ~]$ id -un student 查看用户名字不显示id
student
[student@workstation ~]$ id -Gn student 显示用户所有组名字不显示id
student wheel
五.用户身份的切换方式及环境变量
用户身份切换
su 和 su -
su 只切换用户身份,不切换用户环境
su - 切换用户身份及用户环境
超级用户切换到普通用户不用输入密码,普通用户切换到高级用户及平级用户之间切换都需要密码
[root@workstation Desktop]# su - student 从超级用户切换到普通用户student无需输入密码
Last login: Fri Dec 27 18:36:25 EST 2019 on tty2
[student@workstation ~]$ pwd 显示当前位置
/home/student
[student@workstation ~]$ touch aaa 使用touc成功创建文件
[student@workstation ~]$ su - root 低级切换到高级用户
Password: 输入密码
Last login: Fri Dec 27 18:38:07 EST 2019 on tty2
[root@workstation ~]# su student 使用su 切换到student
[student@workstation root]$ pwd 显示当前目录 student用户还在root用户下
/root
[student@workstation root]$ touch bbb 创建文件
touch: cannot touch 'aaa': Permission denied 无法创建su只切换身份未改变环境
用户切换只执行一层切换及时退出 在一个shell中不要经常切换用户应及时退出(exit),否则当低级用户切换到高级用户时无法打开gedit
原因:低级切换到高级时。再次在超级用户状态下打开gedit时 会先把命令给低级用户,所以无法打开。
六.用户及用户组的建立及删除
groupadd 用户组名称 用户组的建立
groupdel 用户组名称 用户组的删除
userdel -r 用户名称 用户删除(不加-r则指删除用户信息。用户组和家目录没有删除)
useradd 用户名称 新用户建立
建立用户时,读取/etc/login.defs 文件内容确定规则
useradd的常用参数
-u 指定用户的 uid
-g 指定用户的 gid
-G 指定用户的附加组
-c 指定用户的说明
-d 指定用户的家目录 , 默认为 /home/username
-s 指定用户的默认shell
[root@foundation66 Desktop]# watch -n -1 'tail -n -3 /etc/passwd /etc/group;ls -l /home 时时监控
不指定任何参数建立用户系统自动分配
[root@foundation66 ~]# useradd -u 6666 westos 建立一个id为6666的用户
[root@foundation66 ~]# userdel -r westos 删除该用户
[root@foundation66 ~]# useradd -G 21 westos 建立一个指定附加组为为21的westos用户
[root@foundation66 ~]# id westos 查看该用户id
uid=1001(westos) gid=1001(westos) groups=1001(westos),72(tcpdump)-指定的附加组
[root@foundation66 ~]# useradd -c "home westos" westos 建立一个指定用户说明为“home westos"的用户
[root@foundation66 ~]# useradd -s /sbin/nologin westos指定建立一个“/sbin/nolgin"shell的用户 禁止登陆
[root@foundation66 ~]# useradd -d "/home/westos" westos 指定用户家目录
指定建立用户初始组或附加组id时 该用户的组的身份id必须存在,否则无法建立指定id的用户组
[root@foundation66 Desktop]# useradd -g 8888 westos直接建立用户初始组
useradd: group '8888' does not exist 显示无此用户组,无法建立
指定建立初始组为8888的用户
1 [root@foundation66 ~]# groupadd -g 8888 westos建立指定id用户组
2 [root@foundation66 ~]# useradd -g 8888 westos建立指定id的用户初始组
[root@workstation ~]# useradd -M -s /sbin/nologin westos 不建立家目录 使用-M -s 且不可登陆
七.用户及用户组的信息管理
用户名称更改 usermod -l 新名称 旧名称
用户uid更改 usermod -u id数字 名称
更改用户初始组id usermod -g id数字 名称 注意更改用户初始组或者附加组id 时该用户组必须存在
更改用户组id groupmod -g id数字 名称
指定用户附加组 usermod -G 用户名称 组名称 再次 usermod -G 用户 附加组名称 回车后, 会覆盖之前附加组 参数更改为-aG则不会覆盖原来附加组 清除附加组更换参数-G “” 名称
修改用户说明 usermod -c " " 名称
修改用户家目录 usermod -md /home/lee 名称 家目录和真实目录都更改 登陆不会报错(使用-d只更改指向未更改真实目录)
修改用户shell类型 usermod -s /sbin/nologin 名称 此目录被设置为不可登陆(/sbin/nologin)
实时监控以更改用户westos为列如下:
[root@workstation Desktop]# watch -n 1 "tail -n 3 /etc/passwd /etc/group;echo ===; ls -l /home/"
7.1用户名称更改
7.2用户uid更改
7.3更改用户初始组id
7.4更改用户组id
7.5指定用户附加组 再次 usermod -G 用户 附加组名称 回车后, 会覆盖之前附加组 参数更改为-aG则不会覆盖原来附加组 清除附加组更换参数-G “” 名称
7.6修改用户说明
7.7修改用户家目录 -md 家目录和真实目录都更改 登陆不会报错(使用-d只更改指向未更改真实目录)
7.8修改用户shell类型 不可登陆
八.用户认证文件的内容分析
/etc/shadow 用户认证信息文件
[root@workstation Desktop]# getent passwd root 查看当前用户相关信息
root:x:0:0:root:/root:/bin/bash
[root@workstation Desktop]# cat /etc/shadow
root:$6$pgX/GzB0RMFPX4IU$F4tv6FQBru4FKIG3y5mrtR9tbYSaZWaVfSWSvqkozq.wh5AURi/F4ZZgob4tGjlWJ/oi4kg9A6xrxNPiEKQV6/:18264:0:99999:7:::
bin:*:17784:0:99999:7:::
daemon:*:17784:0:99999:7:::
adm:*:17784:0:99999:7:::
lp:*:17784:0:99999:7:::
sync:*:17784:0:99999:7:::
shutdown:*:17784:0:99999:7:::
halt:*:17784:0:99999:7: : :
1 2 3 4 5 6 7 8
1.用户名称
2.用户密码 加密字符
3.密码已经使用时间
4.密码最短有效期,期限内不可改密码
5.密码最长有效期
6.密码到期前警告天数,到期前几天会提前警告
7.密码非活跃天数 到期后还可延长使用
8.密码到期日,到指定时期自动冻结
九.用户认证管理
passwd 管理修改所有密码和一部分密码属性 ,超级用户修改自身密码无任何限制直接更改,普通用户不能修改自身密码 ,并且需要输入原始密码方可更改
chage 修改所有密码属性但不能更改密码
passwd
-l 冻结账户密码变为 !!
-u 解除冻结
-d 删除密码,登陆不再需要密码
-S 进行用户账号查看
-e 修改密码使用时间
-n 修改密码最短有效期
-x 修改密码最长有效期
-w 修改密码到期警告天数
-i 修改 非活跃天数 ,可延长几天使用
passwd命令的使用
创建一个用户westos,修改其用户信息
root@foundation66 Desktop]# useradd westos
[root@foundation66 Desktop]# watch -n -1 tail -n -1 /etc/shadow(实时监控该用户信息)
[root@foundation66 Desktop]# passwd -e westos 更改用户默认使用天数为0
Expiring password for user westos.
passwd: Success
westos:!!:0:0:99999:7:::
再次登陆会被强制更改密码
root@foundation66 Desktop]# passwd -n 1 westos 修改密码的最短有效期为1
Adjusting aging data for user westos.
passwd: Success
westos:!!:0:1:99999:7::: 1为一天即24小时内不可更改密码
[root@foundation66 Desktop]# passwd -x 30 westos 修改最长有效期
Adjusting aging data for user westos.
passwd: Success
westos:!!:0:1:30:7::: 该密码可使用30天
[root@foundation66 Desktop]# passwd -w 3 westos 修改警告其为3天
Adjusting aging data for user westos.
passwd: Success
westos:!!:0:1:30:3::: 倒计时3天会发出提醒更改密码
[root@foundation66 Desktop]# passwd -i 2 westos 修改非活跃天数为2天
Adjusting aging data for user westos.
westos:!!:0:1:30:3:2:: 不更改密码的情况下可延长两天使用
最后一位是修改账号到期时间,到期会自动冻结 passwd无法修改该属性
[root@foundation66 Desktop]# passwd -d westos 删除密码,登陆时直接进入系统不输入密码
[root@foundation66 Desktop]# passwd -l westos 对账户进行冻结
Locking password for user westos.
passwd: Success
westos:!!:0:1:30:3:2:: 密码为!!表示冻结
[root@foundation66 Desktop]# passwd -u westos 解除冻结
Unlocking password for user westos.
passwd: Success
[root@foundation66 Desktop]# passwd -S westos 查看用户信息
chage
-l查看用户账号密码信息
-d修改密码最后一次修改时间
-m修改密码最短有效期
-M修改密码最长有效期
-W修改密码警告日期
-I设定密码账号非活跃天数
-Ex修改账号到期日
chage不能更改密码
实时查看
[root@foundation66 Desktop]# chage -d 9999 westos 更该密码的使用时间
[root@foundation66 Desktop]# chage -m 5 westos 更改密码最短有效期为5
[root@foundation66 Desktop]# chage -M 999 westos 修改账号密码最长有效期999
[root@foundation66 Desktop]# chage -W 8 westos 修改密码警告期8
[root@foundation66 Desktop]# chage -I 6 westos 更改账号密码的非活跃天数6
[root@foundation66 Desktop]# chage -E “2020-8-8” westos 修改账号的到期日 2020-12-12
此时间从1970年算起到设置时间
10.用户权力的下放
1.sudo 能把某些超级权限针对性的下放 , 并且不需要普通用户知道 root 密码 , 所以 sudo 相
对于权限无限制性的 su 来说 , 还是比较安全的
2.sudo 能把某些超级权限针对性的下放 , 并且不需要普通用户知道 root 密码 , 所以 sudo 相
对于权限无限制性的 su 来说 , 还是比较安全的sudo 执行命令的流程是当前用户切换到 root,
然后以 root 身份执行命令 , 执行完成后 , 直接退回到当前用户 ; 而这些的前提是要通过
sudo 的配置文件 /etc/sudoers 来进行授权
[root@foundation66 Desktop]# su - westos 切换到普通用户westos
Last login: Thu Jan 2 04:46:32 CST 2020 on pts/1
[westos@foundation66 ~]$ useradd lee 建立新用户Lee
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later 权限被拒
使普通用户具备超级用户的一部分权力及建立其他新用户
[root@foundation66 Desktop]# vim /etc/sudoers 不对此文件进行编辑,编辑后不提供语法检测
[root@foundation66 Desktop]# visudo 直接使用visudo进行更改 提供语法检测 设定是否合理不提供
在文件内编辑一定要规范书写
hostname 命令查看当前主机名称
进入visodu 书写以下内容
Allow westos to run useradd on workstation.lab.example.com
westos workstation.lab.example.com=(root) /usr/sbin/useradd
useradd 直接无法建立 需调用sudo useradd lee 即可建立新用户
首次创建新用户要输入当前用户密码
免密创建用户及可删除用户
退出到超级用户进入visudo
westos workstation.lab.example.com=(root) NOPASSWD: /usr/sbin/useradd,/usr/sbin/userdel
命令别名设定 :
Cmnd_Alias OLDLEE=/usr/sbin/useradd, /usr/sbin/userdel
westos workstation.lab.example.com=(root) NOPASSED: DLDLEE
:wq(保存)
再次执行 sudo userdel -r lee 删除用户
用户别名设定
输入 User_Alias DLDLEE_USER=westos, lee
更改命令设定名称 DLDLEE_USER workstation.lab.example.com=(root) NOPASSED: DLDLEE
:wq退出保存设定完成后两个用户都可去执行DLDLEE集合里面的命令