权限与用户管理-sudo 🔐 — 以超级用户身份执行

作用

sudo(superuser do)授权用户以 root 或其他用户身份执行命令,通过 /etc/sudoers 控制权限粒度。

语法

1
sudo [选项] 命令

用法

sudo 执行命令前会检查 /etc/sudoers 授权。-u USER 以指定用户执行,-i 交互式登录,-k 清除缓存的密码凭证(下次需重新输入密码),-l 列出当前用户的可用权限。sudo -i 切换到 root shell(需配置)。

常用参数

参数 说明
-u USER 以指定用户执行
-i 交互式登录
-k 清除密码缓存
-l 列出可用权限
-S 从 stdin 读密码
-E 保留当前环境变量

示例

1
2
3
4
5
sudo apt update              # 以 root 权限更新软件源
sudo -u www-data whoami # 以 www-data 身份执行命令
sudo -k # 清除密码缓存
sudo -l # 列出当前用户的 sudo 权限
sudo -i # 切换到 root 交互式 Shell

来源:菜鸟教程

📖 课程位置

本命令在以下课程中讲解:Day 2:权限深入与提权 | Day 5:本周串联实操

权限与用户管理-umask 🔐 — 设置默认权限掩码

作用

umask 指定新建文件和目录应去除的权限,默认掩码通常是 0022(文件 644、目录 755)。

语法

1
umask [选项] [掩码]

用法

umask 是 Shell 内置命令,设置当前 Shell 的文件创建默认权限。掩码为 0022 表示新建文件默认 666 - 022 = 644,目录 777 - 022 = 755-S 以符号形式显示。更小的掩码意味着更高的默认权限。可在 ~/.bashrc 中永久设置。

常用参数

参数 说明
-S 符号模式显示
-p 数字格式显示

示例

1
2
3
4
umask                         # 查看当前掩码
umask -S # 符号模式显示
umask 0027 # 设置掩码为 0027(文件 640,目录 750)
umask 0002 # 设置掩码为 0002(文件 664,目录 775)

来源:菜鸟教程

权限与用户管理-useradd 🔐 — 创建用户

作用

useradd 创建新的用户账户,支持设置家目录、Shell、组、UID 等属性。

语法

1
useradd [选项] 用户名

用法

useradd 默认不创建家目录(部分发行版除外)。-m 创建家目录,-G 组 指定附加组,-s /bin/bash 指定登录 Shell,-u UID 指定 UID,-p 密码 设置密码(不安全,建议后用 passwd)。创建用户后需用 passwd 用户名 设置密码。

常用参数

参数 说明
-m 创建家目录
-G 组 指定附加组
-s SHELL 指定登录 Shell
-u UID 指定用户 ID
-g 主组 指定主组
-p 密码 设置密码
-d 目录 指定家目录路径
-r 创建系统用户

示例

1
2
3
4
5
useradd -m ALICE                # 创建用户并创建家目录
useradd -m -G sudo -s /bin/bash BOB # 创建用户加入 sudo 组并指定 Shell
useradd -u 1001 -m CHARLIE # 指定 UID 为 1001
useradd -r -s /sbin/nologin SYSUSER # 创建系统用户,不可登录
passwd ALICE # 创建用户后设置密码

来源:菜鸟教程

权限与用户管理-userdel 🔐 — 删除用户

作用

userdel(user delete)删除用户账户,默认只删除账户不删除其家目录和邮件池。

语法

1
userdel [选项] 用户名

用法

userdel 默认只从系统文件中移除用户条目。-f 强制删除(即使用户登录中),-r 同时删除家目录和邮件池。注意:无法删除正在登录的用户(除非 -f)。删除前应确认用户不再需要其数据。

常用参数

参数 说明
-f 强制删除(登录中也可删)
-r 同时删除家目录和邮件池
-Z 删除 SELinux 用户映射

示例

1
2
3
userdel ALICE                  # 删除用户账户
userdel -r BOB # 删除用户及其家目录
userdel -f CHARLIE # 强制删除(即使登录中)

来源:菜鸟教程

权限与用户管理-usermod 🔐 — 修改用户属性

作用

usermod(user modify)修改已有用户的属性,包括用户名、组、家目录、Shell 等。

语法

1
usermod [选项] 用户名

用法

usermod 修改用户配置。-l 新名 改名,-G 组 覆盖附加组,-a -G 组 追加附加组,-L 锁定账户(禁止登录),-U 解锁,-d 新家目录 -m 更改家目录并迁移文件。修改 UID/GID 后需用 -m 迁移家目录文件所有权。

常用参数

参数 说明
-l 新名 修改用户名
-G 组 覆盖附加组
-a -G 组 追加附加组
-L 锁定账户
-U 解锁账户
-d 目录 更改家目录
-s SHELL 更改登录 Shell
-u UID 更改用户 ID

示例

1
2
3
4
5
usermod -l NEWNAME ALICE        # 修改用户名
usermod -aG sudo BOB # 将 BOB 追加到 sudo 组
usermod -L CHARLIE # 锁定账户(禁止登录)
usermod -U CHARLIE # 解锁账户
usermod -d /home/NEWHOME -m CHARLIE # 更改家目录并迁移文件

来源:菜鸟教程

权限与用户管理-chmod 🔐 — 修改文件权限

作用

chmod(change mode)修改文件或目录的读/写/执行权限,支持数字模式(如 755)和符号模式(如 U+RWX)。

语法

1
chmod [选项] 权限 文件

用法

chmod 支持数字模式:rwx 分别对应 4/2/1,如 755 = u=rwx,g=rx,o=rx。符号模式:u+rwx 所有者加执行,g-w 组移除写,a+X 所有人加执行。-R 递归修改目录。chmod +X 为目录添加执行权限;对已有至少一个执行位的文件也添加。

常用参数

参数 说明
-R 递归修改
-v 显示详细过程
-c 有变更时才报告
--reference=RFILE 参考文件权限
755 u=rwx,g=rx,o=rx
644 u=rw,g=r,o=r
600 u=rw,g=—,o=—

示例

1
2
3
4
5
chmod 755 SCRIPT.SH           # 所有者可读写执行,其他人可读执行
chmod 644 FILE.TXT # 所有者可读写,其他人只读
chmod +X SCRIPT.SH # 添加可执行权限
chmod -R 755 DIR/ # 递归设置目录权限
chmod u+rwx,g+r,o+r FILE # 符号模式:所有者全权限,组和其他只读

来源:菜鸟教程

📖 课程位置

本命令在以下课程中讲解:Day 1:用户身份与基本权限 | Day 5:本周串联实操

权限与用户管理-chown 🔐 — 修改文件所有者

作用

chown(change owner)修改文件或目录的所属用户和组,只有 root 可用。

语法

1
chown [用户][:组] 文件

用法

chown 格式灵活:用户:组 同时改所有者和组,用户 只改所有者,:组 只改组,用户: 改所有者并继承其主组。-R 递归修改目录。--from=当前用户 只更改指定用户的文件。修改目录时通常需配合 -R

常用参数

参数 说明
-R 递归修改
-v 显示详细过程
--from=U:G 只匹配指定用户/组时更改
--reference=RFILE 参考文件的所有者

示例

1
2
3
4
5
chown ALICE FILE.TXT              # 修改文件所有者为 ALICE
chown :DEVELOPERS FILE.TXT # 修改所属组为 DEVELOPERS
chown ALICE:ADMIN CONFIG.CONF # 同时修改所有者和组
chown -R WWW-DATA:WWW-DATA /var/www # 递归修改目录所有者
chown --from=ADMIN: ALICE: FILE.TXT # 仅当前所有者是 ADMIN 时才更改

来源:菜鸟教程

📖 课程位置

本命令在以下课程中讲解:Day 2:权限深入与提权 | Day 5:本周串联实操

权限与用户管理-groupadd 🔐 — 创建用户组

作用

groupadd 创建新的用户组,支持指定 GID 和创建系统组。

语法

1
groupadd [选项] 组名

用法

groupadd 创建新组。-g GID 指定组 ID,-r 创建系统组(GID < 1000)。创建后可用 usermod -aG 组 用户 将用户加入该组。

常用参数

参数 说明
-g GID 指定组 ID
-r 创建系统组
-f 若组已存在则成功退出
-p 创建组密码

示例

1
2
3
groupadd DEVELOPERS            # 创建新组
groupadd -g 1001 PROJECTA # 创建组并指定 GID
groupadd -r SYSGROUP # 创建系统组

来源:菜鸟教程

权限与用户管理-groupdel 🔐 — 删除用户组

作用

groupdel(group delete)删除指定用户组,不能删除有用户作为主组的组。

语法

1
groupdel [选项] 组名

用法

groupdel 删除系统组记录。若该组是某用户的主组则无法删除(需先将用户删除或改其主组)。-f 强制删除。

常用参数

参数 说明
-f 强制删除(即使用户的主组是该组)

示例

1
2
groupdel DEVELOPERS            # 删除指定组
groupdel OLDSYSGROUP # 删除旧系统组

来源:菜鸟教程

权限与用户管理-id 🔐 — 显示用户身份

作用

id 显示当前或指定用户的 UID、GID 和所属组信息,确认身份的常用命令。

语法

1
id [选项] [用户名]

用法

id 输出用户数字/名称 ID 及所有组成员。-u 只显示 UID,-g 只显示 GID,-n(须与 -u/-g/-G 配合)显示名称而非数字,-G 显示所有附加组 GID。无参数显示当前用户信息。

常用参数

参数 说明
-u 显示 UID
-g 显示 GID
-n 显示名称而非数字
-G 显示所有组 ID
-Z 显示 SELinux 上下文

示例

1
2
3
4
5
id                        # 显示当前用户的完整身份信息
id -u # 只显示 UID
id -g # 只显示 GID
id -un # 显示当前用户名(-n 配合 -u)
id ALICE # 查看指定用户的身份

来源:菜鸟教程

📖 课程位置

本命令在以下课程中讲解:Day 1:用户身份与基本权限 | Day 5:本周串联实操

0%