Linux中用户管理
Linux中用户管理
Linux中用户和用户组概念
- 用户:使用操作系统的人
- 用户组:具有相同系统权限的一组用户
用户和用户组的信息保存文件
/etc/group文件
- 存储当前系统中所有用户组信息
例如:
- adm❌4:syslog,chao
每行有四个字段,中间用":"分割,每个字段表示的信息如下:
— | — | — | — |
---|---|---|---|
Group | x | 123 | abc,def,xyz |
组名称 | 组密码占位符 | 组编号 | 组中用户名列表 |
- root超级管理员的组号一定为0
- 组号1-499属于系统预留的组编号,一般预留给安装在这台操作系统的软件和服务
- 用户手动创建的用户组是从500开始的(>=500)
- 组密码占位符用x表示
/etc/gshadow文件
- 存储当前系统中所有用户组的密码信息
- /etc/group文件中有多少行,/etc/gshadow文件中就有多少行,一一对应
例如:
- adm:*::syslog,chao
每行有四个字段,中间用":"分割,每个字段表示的信息如下:
— | — | — | — |
---|---|---|---|
Group | * | abc,def,xyz | |
组名称 | 组密码 | 组管理者 | 组中用户名列表 |
- 组密码中如果为空,或者为*,或者为!时,说明组的密码为空
/etc/passwd文件
- 存储当前系统中所有用户的信息
例如:
- root❌0:0:root:/root:/bin/bash
每行有7个字段,中间用":"分割,每个字段表示的信息如下:
— | — | — | — | — | — | — |
---|---|---|---|---|---|---|
user | x | 123 | 456 | xxxxxxx | /home/user | /bin/bash |
用户名 | 密码占位符 | 用户编号 | 用户组编号 | 用户注释信息 | 用户主目录 | slell类型 |
- 每一行对应一个用户的信息
- root超级管理员的用户编号一定为0
/etc/shadow文件
- 存储当前系统中所有用户的密码信息
- /etc/passwd文件中有多少行,/etc/shadow文件中就有多少行,一一对应
例如:
- root: 6 6 6MjnatiOQ$0c6GuLXpjD73JkAeTgAs0cXQVqKaP.8Cr0KoOf9jVlJgvzvWXhZFvH5vK4ewj/x9vZZvIYnW.I/wBmF33u8VH0:17809:0:99999:7:::
每行有9个字段,中间用":"分割,每个字段表示的信息如下:
— | — | — |
---|---|---|
root | 6 6 6MjnatiOQ$0c6GuLXpjD73JkAeTgAs0cXQVqKaP.8Cr0KoOf9jVlJgvzvWXhZFvH5vK4ewj/x9vZZvIYnW.I/wBmF33u8VH0 | … |
用户名 | 密码 | … |
Linux中用户和用户组的基本命令
创建用户组
groupadd [选项] 参数
- -g : 指定用户主组组编号或组名称
- -G : 指定用户附属组名称
例如:
groupadd 用户组名称 #创建用户组
groupadd -g 888 用户组名称 #创建用户组并指定用户组编号
修改用户组
groupmod [选项] 参数
- -n : 修改用户组名称
- -g : 修改用户组编号
例如:
groupmod -n 新用户组名称 就用户组名称 #修改主用户组名称
groupmod -g 668 要修改的组名称 #修改用户组编号
删除用户组
删除用户组之前,必须先删除族中的用户,否则这些用户将会变成黑户
groupdel 参数
例如:
groupdel 用户组名称 #删除用户组
创建用户
useradd [选项] 参数
- -g : 指定用户组
- -d : 指定用户家目录(不指定时,系统会自动在/home/目录下创建一个和用户名相同的文件夹作为家目录)
修改用户
usermod [选项] 参数
- -c : 修改用户备注
- -l : 修改用户名
- -d : 修改用户家目录
- -g : 修改用户的所属用户组
删除用户
userdel [选项] 参数
- -r : 删除用户家目录
禁止普通用户登录
创建/etc/nologin文件(不用关心文件内容,空文件即可),就可以禁止除root账户外的其他用户登录。
Linux中用户和用户组的进阶命令
密码管理
passwd [选项] 参数
- -l : 锁定用户账号
- -u : 解锁用户账号
- -d : 清空用户账号密码
主要组和附属组
- 用户可以同时属于多个组
- 一个主要组
- 多个附属组
用户组密码
gpasswd [选项] 参数
选项:
- -a : 给用户添加附属组
- -d : 将用户从附属组中剔除
gpasswd 用户组名 #设置用户组密码
gpasswd -a 用户名 用户组名 #给用户添加附属组
gpasswd -d 用户名 用户组名 #将用户从附属组中剔除
切换附属组
newgrp 用户组名
- 如果要切换的用户组有组密码,则需要输入组密码
Linux中用户和用户组其他命令
su 用户名
- 切换用户
whoami命令
whoami
- 我是谁?显示当前登录用户名
id命令
id 用户名
- 显示指定用户信息,包括用户编号、用户名
- 主要组编号及名称,附属组列表
groups命令
groups 用户名
- 显示用户所在的所有组
chfn命令
chfn 用户名
- 设置用户资料,依次输入用户资料
finger命令
finger 用户名
- 显示用户详细资料