在 Linux/Unix 系统中,用户权限管理是非常重要的内容。以下是一些与用户权限相关的常用命令及其功能说明。这些命令主要用于管理用户、组、文件权限和特权操作。
用户和组管理相关命令
添加用户
useradd
用于添加新用户。
1 | sudo useradd 用户名 |
-
常用选项:
选项 说明 -m
自动为用户创建主目录。 -s /bin/bash
指定用户的默认 Shell,例如 /bin/bash
。-G 组名
将用户添加到指定组。 -u 用户ID
指定用户 ID(UID)。 -
示例:
1
sudo useradd -m -s /bin/bash -G sudo alice
- 创建用户
alice
,并为其分配主目录、默认 Shell 为/bin/bash
,同时将其加入sudo
组。
- 创建用户
删除用户
userdel
用于删除用户账户。
1 | sudo userdel 用户名 |
-
常用选项:
选项 说明 -r
删除用户的同时删除其主目录和文件。 -
示例:
1
sudo userdel -r alice
- 删除用户
alice
及其主目录。
- 删除用户
修改用户
usermod
用于修改已存在的用户账户。
1 | sudo usermod [选项] 用户名 |
-
常用选项:
选项 说明 -l 新用户名
修改用户名。 -G 组名
将用户添加到新组(覆盖现有组)。 -aG 组名
将用户追加到一个附加组(不覆盖原有组)。 -s /bin/bash
修改用户的默认 Shell。 -d 目录路径
修改用户主目录。 -
示例:
1
sudo usermod -aG docker alice
- 将用户
alice
添加到docker
组。
- 将用户
查看用户信息
id
显示用户的 UID、GID 和用户所属组。
1 | id 用户名 |
-
示例:
1
id alice
- 输出:
1
uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo)
- 输出:
who
查看当前在线用户。
1 | who |
- 输出示例:
1
alice pts/0 2024-12-09 10:00 (192.168.1.100)
last
显示最近登录的用户列表。
1 | last |
- 输出示例:
1
alice pts/0 192.168.1.100 Mon Dec 9 10:00 still logged in
管理用户组
groupadd
创建新组。
1 | sudo groupadd 组名 |
- 示例:
1
sudo groupadd developers
groupdel
删除组。
1 | sudo groupdel 组名 |
- 示例:
1
sudo groupdel developers
gpasswd
用于添加或移除用户到组。
1 | sudo gpasswd -a 用户名 组名 |
- 示例:
1
2sudo gpasswd -a alice developers
sudo gpasswd -d alice developers
文件权限管理相关命令
查看文件权限
ls -l
查看文件的详细信息,包括权限。
1 | ls -l 文件名 |
-
输出示例:
1
-rw-r--r-- 1 alice alice 1234 Dec 9 12:34 file.txt
- 权限字段
-rw-r--r--
:- 第一位:文件类型(
-
表示普通文件,d
表示目录)。 - 后 9 位:分为 3 组,每组 3 位,分别表示 所有者、组、其他用户 的权限。
r
:可读,w
:可写,x
:可执行。
- 第一位:文件类型(
- 权限字段
修改文件权限
chmod
修改文件或目录的权限。
1 | chmod [权限模式] 文件名 |
-
权限模式:
- 数字模式(常用):
4
:可读(r
)。2
:可写(w
)。1
:可执行(x
)。- 通过加和表示权限,例如
7 = r + w + x
。
- 符号模式:
u
:用户(所有者),g
:组,o
:其他用户。+
:添加权限,-
:移除权限,=
:设置精确权限。
- 数字模式(常用):
-
示例:
1
chmod 755 file.txt
- 设置权限为:
1
-rwxr-xr-x
1
chmod u+w,g-r,o-x file.txt
- 给用户添加写权限,移除组的读权限,移除其他用户的执行权限。
- 设置权限为:
修改文件所有者
chown
修改文件或目录的所有者和所属组。
1 | sudo chown [所有者][:组] 文件名 |
- 示例:
1
2sudo chown alice file.txt
sudo chown alice:developers file.txt
修改文件组
chgrp
修改文件的所属组。
1 | sudo chgrp 组名 文件名 |
- 示例:
1
sudo chgrp developers file.txt
特权操作相关命令
提权操作
sudo
以超级用户(root)权限执行命令。
1 | sudo 命令 |
- 示例:
1
sudo apt update
切换用户
su
切换到其他用户。
1 | su [用户名] |
-
示例:
1
su alice
- 如果用户名为空,则切换到
root
用户。
- 如果用户名为空,则切换到
临时获取 root 权限
sudo -i
或 sudo su
切换到 root 用户环境。
1 | sudo -i |
- 提示输入当前用户密码后,进入 root 环境。
权限相关的系统文件
用户信息文件
/etc/passwd
存储所有用户的信息。
1 | cat /etc/passwd |
- 输出示例:
1
alice:x:1001:1001:Alice:/home/alice:/bin/bash
用户密码文件
/etc/shadow
存储用户密码的加密信息(仅 root 可访问)。
1 | sudo cat /etc/shadow |
组信息文件
/etc/group
存储所有组的信息。
1 | cat /etc/group |
- 输出示例:
1
developers:x:1002:alice
权限管理常见任务总结
任务 | 命令 |
---|---|
添加用户 | sudo useradd -m -s /bin/bash 用户名 |
删除用户 | sudo userdel -r 用户名 |
添加用户到组 | sudo usermod -aG 组名 用户名 |
修改文件权限 | chmod 755 文件名 |
修改文件所有者 | sudo chown 用户名 文件名 |
查看用户所属组 | id 用户名 |
切换到其他用户 | su 用户名 |
提升到 root 权限 | sudo -i 或 sudo su |
通过这些命令,可以灵活管理 Linux 系统中的用户、组和权限!