目录
Linux用户分类
超级用户
系统用户(伪用户)
普通用户
Linux组的分类
基本组(私有组)
附加组(公有组)
Linux中用户和用户组的配置文件
用户账号文件——/etc/passwd
文件中字段说明
用户密码文件——/etc/shadow
文件中字段说明
用户组账号文件——/etc/group
文件中字段说明
用户组账号文件——/etc/gshadow
文件中字段说明
用户管理
添加新用户--useradd 命令
修改用户信息--usermod命令
为用户账号设置密码--passwd命令
删除用户账号——userdel命令
用户间的切换——su命令
用户身份提权——sudo命令
sudo的执行流程
用到sudo场景
sudo如何使用
sudo配置
sudo命令执行时的选项
用户组管理
创建用户组
修改用户组属性
添加/删除组成员
删除组账户
查询用户和组信息
显示用户信息
显示组信息
查看用户登录系统的情况
查看当前登录系统的用户
列出目前与过去登入系统的用户相关信息
查看目前登陆用户
手动添加一个用户
与用户和组操作有关的例子
功能 | 文件名称 |
用户账号文件
|
/etc/passwd
|
用户密码文件
|
/etc/shadow
|
用户组账号文件
|
/etc/group
|
用户组密码文件
|
/etc/gshadow
|
其中密码是会加密的
查看该文件第一行
[root@Test test]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
查看该文件第一行
[root@Test test]# head -1 /etc/shadow
root:$6$6yd4eaZoTlDTUdHo$NeSXL541nAOOyfsgl5dAPPOzAgpPp6IUbDmBoxxRZ2FXaiIa9TlFRKkZtPbvKo/JsBsYTGMnb/5BpTVVphk7S.::0:99999:7:::
[root@Test test]# head -1 /etc/group
root:x:0:
[root@Test test]# head -1 /etc/gshadow
root:::
组名
第一个字段是这个用户的组名。
组密码
第二个字段就是实际加密的组密码。大家已经注意到,对于大多数用户来说,这个字符安不是空就是“!”,代表这个组没有合法的组密码。
组管理员用户名
第三个字段表示这个组的管理员是哪个用户。
组中的附加用户
第四个字段用于显示这个用户组中有哪些附加用户
格式
useradd 选项 用户名
格式
usermod 选项 用户名
格式
passwd 选项 用户名
userdel - r 用 户名
格式
su 用户名
su - 用户名
当你在一个公司入职,领导给你的用户是普通用户,但是需要用到root用户的权限这时就需要用到sudo来提升你的权限了
1、系统超级管理员需要给某个普通用户做sudo配置
2、普通用户在使用时只需要在执行命令之前加上sudo即可
sudo配置文件
[root@Test zhang3]# vim /etc/sudoers
root 对应用户名
第一个all对应主机名 IP地址 意思时你这个用户只有从这个IP连上的时候才有下面规定的权限
第二个all对应角色名 所有命令的执行角色比如说超级管理员
第三个all对应命令名 这个意思时用户只有这个命令的root权限
配置正式开始
只需要在刚刚100行下面配置你需要的即可
下图中的意思就是notes这个用户在任意一台设备上都可以执行root用户的所有权限
sudo -l:列出当前用户可以执行的命令
sudo -u 用户名 权限命令:以指定用户的身份执行需要权限的命令。可以root,也其他用户名。
sudo -k:清空sudo的提权存活期。下次在使用sudo需要输入密码
sudo -b 命令:让命令在后台执行
sudo -p 提示语:可以更改询问密码的提示语
groupadd - r 用户组名称
groupmod 选项 用户组
gpasswd 选项 用户 组
groupdel 用户组名
格式
id 用户名
格式
groups 用户名
格式
users
例子
[notes@Test root]$ users
notes notes
该命令默认会去读取/var/log/wtmp文件,并把该 文件记录的登入系统的用户名单全部显示出来
格式
last
例子
[notes@Test root]$ last
root pts/1 192.168.244.1 Sun Jul 30 22:00 - 22:01 (00:00)
notes tty2 tty2 Sun Jul 30 19:43 still logged in
notes seat0 login screen Sun Jul 30 19:43 still logged in
reboot system boot 5.14.0-284.11.1. Sun Jul 30 19:42 still running
只显示部分
格式
w
例子
[root@Test zhang3]# w
10:16:14 up 44 min, 2 users, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
notes seat0 09:32 0.00s 0.00s 0.00s /usr/libexec/gdm-wayland-sessio
notes tty2 09:32 43:59 0.02s 0.02s /usr/libexec/gnome-session-bina
修改/etc/passwd文件给里面添加新用户的信息
修改/etc/group文件给里面添加用户组的信息
创建这个新用户的家目录(/home/新用户文件夹)
将/etc/skel中配置文件拷贝到新用户的家目录
创建新用户邮箱:touch /var/spool/mail/新用户同名邮箱
[root@Test notes]# useradd zhang3
[root@Test notes]# tail -1 /etc/passwd
zhang3:x:1001:1001::/home/zhang3:/bin/bash[root@Test notes]# tail -1 /etc/shadow
zhang3:!!:19569:0:99999:7:::
[root@Test zhang3]# ls -A /home/zhang3
.bash_logout .bash_profile .bashrc .mozilla
[root@Test zhang3]# useradd -u 1005 -f -1 -s /bin/bash wang5
[root@Test zhang3]# tail -1 /etc/passwd
wang5:x:1005:1005::/home/wang5:/bin/bash
3、新建一个用户admin,指定其家目录为/admin
[root@Test zhang3]# useradd -d /admin admin
[root@Test zhang3]# tail -1 /etc/passwd
admin:x:1006:1006::/admin:/bin/bash
4、将用户admin的家目录移至/home目录下
[root@Test zhang3]# usermod -d /home admin
[root@Test zhang3]# tail -1 /etc/passwd
admin:x:1006:1006::/home:/bin/bash
5、将用户wang5的名称修改为wangwu,并暂停使用该账号
[root@Test zhang3]# usermod -l wangwu wang5
[root@Test zhang3]# tail -1 /etc/passwd
wangwu:x:1005:1005::/home/wang5:/bin/bash[root@Test zhang3]# usermod -L wangwu
6、若当前用户为root,请修改root用户的密码,并为zhang3用户设置密码
[root@Test zhang3]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@Test zhang3]# passwd zhang3
Changing password for user zhang3.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
7、删除admin用户并查看删除结果
[root@Test zhang3]# userdel admin
[root@Test zhang3]# id admin
id: ‘admin’: no such user
8、 向系统中添加一个组ID为1006,组名为group1的新组
[root@Test zhang3]# groupadd -g 1006 group1
9、将组group1的GID修改为2000,组名修改为group11
[root@Test zhang3]# groupmod -g 2000 -n group11 group1
10、将zhang3、wangwu用户同时加入group11组,并指派zhang3为管理员
[root@Test zhang3]# gpasswd -M zhang3,wangwu -A zhang3 group11