linux命令-用户与用户组
在 Linux 系统中,用户和用户组管理是系统管理的基础任务之一。以下是围绕用户和用户组管理的常用命令,涵盖创建、修改、删除、查询等操作,并附上详细说明和示例。
一、用户管理命令
1. 创建用户
-
useradd
用于创建新用户。sudo useradd username
- 常用选项:
-m
:自动创建用户的家目录(如/home/username
)。-s /bin/bash
:指定用户的默认 shell。-G group1,group2
:将用户添加到附加组。
- 示例:
sudo useradd -m -s /bin/bash -G developers,admins alice
- 常用选项:
-
adduser
交互式创建用户(某些发行版如 Ubuntu 提供,功能更友好)。sudo adduser username
2. 修改用户属性
usermod
修改用户属性。sudo usermod [选项] username
- 常用选项:
-l newname
:修改用户名。-d /new/home
:修改家目录。-s /bin/zsh
:修改默认 shell。-aG group
:将用户添加到附加组(-a
表示追加,避免覆盖原有组)。
- 示例:
sudo usermod -aG sudo alice # 将用户 alice 添加到 sudo 组
- 常用选项:
3. 删除用户
userdel
删除用户。sudo userdel username
- 常用选项:
-r
:同时删除用户的家目录和邮件池。
- 示例:
sudo userdel -r alice # 删除用户 alice 及其家目录
- 常用选项:
4. 查询用户信息
-
id
显示用户和用户组信息。id username
- 示例:
id alice # 显示用户 alice 的 UID、GID 和所属组
- 示例:
-
finger
显示用户详细信息(需安装finger
包)。finger username
-
getent passwd
从/etc/passwd
或其他数据库中查询用户信息。getent passwd username
5. 修改用户密码
passwd
修改用户密码。sudo passwd username # 修改其他用户的密码 passwd # 修改当前用户的密码
二、用户组管理命令
1. 创建用户组
groupadd
创建新用户组。sudo groupadd groupname
- 示例:
sudo groupadd developers
- 示例:
2. 修改用户组属性
groupmod
修改用户组属性。sudo groupmod -n newname oldname # 修改用户组名
3. 删除用户组
groupdel
删除用户组。sudo groupdel groupname
- 注意:不能删除有用户的主组的用户组。
4. 查询用户组信息
getent group
显示用户组信息。getent group groupname
- 示例:
getent group developers # 显示用户组 developers 的 GID 和成员
- 示例:
5. 管理用户组成员
-
gpasswd
管理用户组成员。sudo gpasswd -a username groupname # 将用户添加到用户组 sudo gpasswd -d username groupname # 将用户从用户组中移除
- 示例:
sudo gpasswd -a alice developers # 将用户 alice 添加到 developers 组
- 示例:
-
usermod
也可以用于管理用户组成员(如前文所述)。
三、其他常用命令
1. 切换用户
su
切换用户身份。su - username # 切换到用户 username 并加载其环境 su username # 切换到用户 username 但不加载环境
2. 查看当前登录用户
-
who
显示当前登录的用户。who
-
w
显示当前登录的用户及其正在执行的命令。w
3. 查看用户登录历史
last
显示用户登录历史。last
四、用户和用户组文件
-
/etc/passwd
存储用户账户信息(用户名、UID、GID、家目录、默认 shell 等)。- 示例:
alice:x:1001:1001:Alice,,,:/home/alice:/bin/bash
- 示例:
-
/etc/shadow
存储用户密码哈希值(加密后)。 -
/etc/group
存储用户组信息(组名、GID、组成员列表)。- 示例:
developers:x:1002:alice,bob
- 示例:
五、示例场景
-
创建用户并加入用户组
sudo useradd -m -s /bin/bash alice sudo groupadd developers sudo usermod -aG developers alice
-
修改用户密码
sudo passwd alice
-
删除用户及其家目录
sudo userdel -r alice
-
查看用户所属组
groups alice
六、注意事项
- 权限要求:大多数用户管理命令需要
root
权限,通常通过sudo
执行。 - UID 和 GID:UID 和 GID 是用户的唯一标识符,通常从 1000 开始分配给普通用户。
- 主组与附加组:用户的主组在
/etc/passwd
中定义,附加组通过/etc/group
管理。 - 安全建议:避免使用默认的
root
用户进行日常操作,优先使用sudo
授权。
通过以上命令和文件,您可以全面管理 Linux 系统中的用户和用户组,确保系统的安全性和可维护性。