学习目标
1 用户及用户组存在的意义
2 用户在系统中的存储方式
3 深入分析用户涉及到的配置文件及内容
4 用户信息的查看(id命令)
5 用户身份的切换方式及shell的特性
6 用户及用户组的建立及删除
7 用户及用户组的信息管理
8 用户认证文件的内容分析
9 用户认证管理
10 用户权力的下放
用户是操作者在系统中的身份标识
组是逻辑概念,是用户的集合,
用户的存在为了限制权限
组的存在为了归类用户便于管理权限
用户在系统中就是文件中的字符串 每个字符串映射了该用户所用到的系统资源
id 【参数】 #指定用户id信息
-u #查看用户的uid
-g #查看用户的gid
-G #查看用户所在的所有组的信息
-n #显示名字而不是数字
图形中的注销命令
注意:
每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
watch -n 1 “tail -n 5 /etc/passwd /etc/group; echo ===== ;ls -l /home/” 进行实时监控
> /etc/passwd <
gdm: x :42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup: x :976:976::/run/gnome-initial-setup/:/sbin/nologin
avahi: x :70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
westos: x :1001:1001::/home/westos:/bin/bash
caoaoyuan: x :1002:1002::/home/caoaoyuan:/bin/bash> /etc/group <
avahi: x :70:
slocate: x :21:
dip❌40:
westos: x :1001:
caoaoyuan: x :1002:
============
total 0
drwx------. 4 caoaoyuan caoaoyuan 93 Dec 28 02:16 caoaoyuan
userdel cao #删除/etc/passwd 和 /etc/group 里的内容
userdel -r cao #连同下方的文件(用户家目录)一同删除
useradd
-u 设置uid
-g 设置gid
-c 设置说明
-d 更改家目录
-M 不设置家目录
-s 设置shell类型
[root@workstation ~]# groupadd -g 666 cao #需要先建立组才能进行设置,不然会报错
[root@workstation ~]# useradd -u 666 -g 666 cao[root@workstation ~]# useradd -c usercao cao
cao: x :1002:1002:usercao:/home/cao:/bin/bash[root@workstation ~]# useradd -d /home/yuan cao #默认家目录为/home/cao 此时为/home/yuan
drwx------. 4 666 666 93 Dec 28 03:07 yuan
[root@workstation ~]# useradd -M cao #此时cao用户无家目录,不可cd ~
[root@workstation ~]# cd ~
[root@workstation ~]# cd ~cao
bash: cd: /home/cao: No such file or directory #显示无/home/cao 这个家目录useradd -s sh cao #设置默认shell类型为sh,系统下的shell有: cat /etc/shells
[root@workstation ~]# cat /etc/shells #查看shell的类型
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/usr/bin/tmux
/bin/tmux
[root@workstation ~]# useradd -s sh #即可设置默认shell类型为sh
*用 watch -n 1 “tail -n 5 /etc/passwd /etc/group; echo ===== ;ls -l /home/” 进行监控*
1> groupmod -g
新建组
2> usermod 详细修改(微调)
-l 修改用户名称
-u 修改用户的 uid
-g 修改用户的初始组gid #只针对存在的gid,不能设置为不存在的gid
-G 更改附加用户组
usermod -G “” cao #删除附加组
-aG 指定用户的附加组(添加)
[root@workstation Desktop]# usermod -G 40 cao
[root@workstation Desktop]# id cao
uid=1001(cao) gid=1001(cao) groups=1001(cao),40(dip)
[root@workstation Desktop]# usermod -G 70 cao
[root@workstation Desktop]# id cao
uid=1001(cao) gid=1001(cao) groups=1001(cao),70(avahi)
[root@workstation Desktop]# usermod -aG 40 cao
[root@workstation Desktop]# id cao
uid=1001(cao) gid=1001(cao) groups=1001(cao),70(avahi),40(dip)
-c 修改用户的说明
usermod -c "cao“ #删除说明
-d 只更改指向,不更改家目录
[root@workstation Desktop]# usermod -d /home/hah cao
cao:x:1001:1001:usertest:/home/hah:/bin/bash
drwx------. 4 cao cao 93 Dec 28 14:18 /home/cao #可看出家目录并没有变,之更改了/etc/passwd的指向内容
-md 修改用户的家目录 , 默认为 /home/username
[root@workstation Desktop]# usermod -md /home/hah cao
cao:x:1001:1001:usertest:/home/hah:/bin/bash
drwx------. 4 cao cao 93 Dec 28 14:18 hah
-s 修改用户的 shell 类型
usermod -s sh cao
cao:x:1001:1001:usertest:/home/cao:sh
/etc/shadow 用户认证信息文件
bin : * : 16372 : 0 : 99999 : 7 : : :
1 2 3 4 5 6 7 8 9
1.用户名称
2.用户密码
3.密码已经使用时间
4.密码最短有效期 #最短多长时间不能改密码,防止频繁更改
5.密码最长有效期 #期间必须改一次密码
6.密码到期前警告
7.密码非活跃天数
8.密码到期日
9.保留位
用法:passwd 【opt】 username
选项:
+用户名 | 更改用户密码(noly root) |
–stdin | 接收前面管道数据当作密码, |
-S | 查看密码相关参数 PS / NP #chage -l 列出帐号详细密码参数 |
-d | 删除用户密码,删除后为NP |
-l | 锁定用户 # usermod -L |
-u | 与l相对,解锁用户 # usermod -U |
-e | 设置最后一次更改密码时间为0 # chage -d |
-n | 对应shadow第四位,多久不可修改密码 # chage -m |
-x | 第五位,多久内必须修改密码 # chage -M |
-w | 第六位,密码过期前的警告天数 # chage -W |
-i | 后接日期,第七位,密码失效日期 # chage -I |
chage -E “2020-1-21” 对应第八位,设置帐号失效日期 |
#后面为作用相同的参数设置
e.g.: stdin 用法
我echo “woaini” | passwd --stdin caoaoyuan
[root@workstation ~]# passwd -S westos
westos PS 2019-12-27 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@workstation ~]# passwd -d westos
Removing password for user westos.
passwd: Success
[root@workstation ~]# passwd -S westos
westos NP 2019-12-27 0 99999 7 -1 (Empty password.)
[root@workstation ~]# passwd -l westos
Locking password for user westos.
passwd: Success
westos:!! 6 6 6pUP92k6W
[root@workstation ~]# passwd -u westos
westos: 6 6 6pUP92k6Whw2atPD
[root@workstation ~]# usermod -L westos
westos:! 6 6 6pUP92k6Whw2atPD. #相比于 passwd -l少了一个叹号
[root@workstation ~]# usermod -U westos
[root@workstation ~]# passwd -e westos
:18258:0:99999:7::: >> :0:0:99999:7:::
[root@workstation Desktop]# passwd -n 2 westos
:0:2:99999:7:::
[root@workstation Desktop]# passwd -x 40 westos
:0:2:40:7:::
[root@workstation Desktop]# passwd -w 3 westos
:0:2:40:3:::
[root@workstation Desktop]# passwd -i 1 westos
:0:2:40:3:1::
sudo 能把某些超级权限针对性的下放 , 并且不需要普通用户知道 root 密码 , 所以 sudo 相 对于权限无限制性的 su 来说 , 还是比较安全的
sudo 执行命令的流程是当前用户切换到 root, 然后以 root 身份执行命令 , 执行完成后 , 直接退回到当前用户 ; 而这些的前提是要通过 sudo 的配置文件 /etc/sudoers 来进行授权
配置文件语法及测试方式
/etc/sudoers或visudo
用户 主机名称=(新执行身份) [NOPASSWD:] 命令
westos server0.example.com=(root) /usr/sbin/useradd
westos server0.example.com=(root) NOPASSWD: /usr/sbin/userdel
[caoaoyuan@workstation ~]$ which useradd # 查看命令绝对路径
/usr/sbin/useradd
[caoaoyuan@workstation ~]$ hostnamectl
Static hostname: workstation.lab.example.com #主机名
Icon name: computer-vm
Chassis: vm
Machine ID: dd16b92489fe405999d7d4115b8154e7
Boot ID: 3053d9304af2493286f98a45f071133a
Virtualization: kvm
Operating System: Red Hat Enterprise Linux 8.0 (Ootpa)
CPE OS Name: cpe:/o:redhat:enterprise_linux:8.0:GA
Kernel: Linux 4.18.0-80.1.2.el8_0.x86_64
Architecture: x86-64
[root@workstation Desktop]# visudo #进行设置,如下
99 ## Allow root to run any commands anywhere
100 root ALL=(ALL) ALL
101
102 ## Allow westos to run useradd in workstation.lab.example.com
103 caoaoyuan workstation.lab.example.com=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
[caoaoyuan@workstation ~]$ sudo useradd westos
[caoaoyuan@workstation ~]$ id westos
uid=1002(westos) gid=1002(westos) groups=1002(westos)
[caoaoyuan@workstation ~]$ sudo userdel westos
[caoaoyuan@workstation ~]$ id westos
id: ‘westos’: no such user