Linux权限与用户管理命令详解 – chmod/chown/useradd/sudo使用指南

a
admin
作者
2026-07-15
发布日期
约 12 分钟
阅读时间

Linux 权限和用户管理是系统安全的基础,配置不当可能导致文件无法访问或留下安全隐患。

文件权限基础

Linux 每个文件都有权限属性,用 ls -l 查看:

-rwxr-xr-- 1 www-data www-data 1024 Jul 12 file.txt
↑↑↑↑↑↑↑↑↑↑
│└──┘└──┘└──┘
│  │   │   └── 其他用户权限(r--:只读)
│  │   └────── 组权限(r-x:读+执行)
│  └────────── 所有者权限(rwx:读+写+执行)
└───────────── 文件类型(-:普通文件 d:目录)

权限说明

| 字符 | 权限 | 数字 | 对文件 | 对目录 |

|——|——|——|——–|——–|

| r | 读 | 4 | 查看内容 | 列出文件 |

| w | 写 | 2 | 修改内容 | 创建/删除文件 |

| x | 执行 | 1 | 运行脚本 | 进入目录 |

数字表示法:把 rwx 对应的数字相加。

| 权限 | 数字 | 含义 |

|——|——|——|

| rwx | 7 | 读+写+执行 |

| rw- | 6 | 读+写 |

| r-x | 5 | 读+执行 |

| r– | 4 | 只读 |

| — | 0 | 无权限 |

常见组合:755(所有者全权限,其他读+执行)、644(所有者读写,其他只读)。

chmod:修改权限

# 数字法(最常用)
chmod 755 script.sh      # rwxr-xr-x
chmod 644 config.php     # rw-r--r--
chmod 600 private.key    # rw-------(私钥推荐权限)
chmod 777 upload/        # rwxrwxrwx(不推荐,安全风险)

# 符号法
chmod u+x script.sh      # 给所有者加执行权限
chmod g-w file.txt       # 去掉组的写权限
chmod o=r file.txt       # 设置其他用户只读
chmod a+r file.txt       # 所有人加读权限
chmod u+x,g+w file.txt   # 同时设置多个

# 递归修改目录及子文件
chmod -R 755 /var/www/html/

# 只修改目录(不影响文件)
find /var/www/html -type d -exec chmod 755 {} \;

# 只修改文件(不影响目录)
find /var/www/html -type f -exec chmod 644 {} \;

Web 服务器推荐权限

# 目录设为 755
find /var/www/html -type d -exec chmod 755 {} \;

# 文件设为 644
find /var/www/html -type f -exec chmod 644 {} \;

# 配置文件设为 600(含密码等敏感信息)
chmod 600 /var/www/html/wp-config.php

# 私钥文件必须 600
chmod 600 /etc/nginx/ssl/*.key

chown:修改所有者

# 修改所有者和组
chown www-data:www-data file.txt

# 只修改所有者
chown www-data file.txt

# 只修改组
chown :www-data file.txt

# 递归修改目录
chown -R www-data:www-data /var/www/html/

# 引用另一个文件的所有者
chown --reference=reference.txt target.txt

Nginx/Apache 网站目录推荐

# 把网站目录所有者改为 Web 服务器用户
chown -R www-data:www-data /var/www/html/    # Debian/Ubuntu
chown -R apache:apache /var/www/html/        # CentOS/RHEL
chown -R nginx:nginx /var/www/html/          # Nginx

useradd / passwd:创建用户

# 创建用户(会自动创建家目录)
useradd -m -s /bin/bash newuser

# 设置密码
passwd newuser

# 创建用户并指定组
useradd -m -g www-data -s /bin/bash webuser

# 创建用户但不创建家目录
useradd -M newuser

# 创建系统用户(无登录权限)
useradd -r -s /sbin/nologin service_user

参数说明

  • -m:创建家目录
  • -s:指定 shell(/bin/bash 可登录,/sbin/nologin 禁止登录)
  • -g:指定主组
  • -G:指定附加组
  • -r:创建系统用户

usermod:修改用户

# 修改用户名
usermod -l newname oldname

# 修改家目录
usermod -d /home/newdir -m username

# 修改 shell
usermod -s /bin/zsh username

# 加入附加组
usermod -aG docker username

# 锁定用户(禁止登录)
usermod -L username

# 解锁用户
usermod -U username

注意-aG 中的 a 很重要——不加 a 会覆盖原有附加组。

userdel:删除用户

# 删除用户(保留家目录)
userdel username

# 删除用户及家目录
userdel -r username

groupadd / gpasswd:组管理

# 创建组
groupadd developers

# 删除组
groupdel developers

# 把用户加入组
gpasswd -a username developers

# 把用户从组中移除
gpasswd -d username developers

# 设置组管理员
gpasswd -A username developers

sudo:提权执行

# 以 root 执行命令
sudo command

# 切换到 root shell
sudo -i
# 或
sudo su -

# 以指定用户执行命令
sudo -u www-data php script.php

# 列出当前用户的 sudo 权限
sudo -l

配置 sudo 权限:编辑 /etc/sudoers 或在 /etc/sudoers.d/ 下创建文件:

# 允许用户执行所有命令(不推荐)
username ALL=(ALL) ALL

# 允许用户免密执行所有命令
username ALL=(ALL) NOPASSWD: ALL

# 只允许执行特定命令
username ALL=(ALL) /usr/bin/systemctl restart nginx

安全建议:用 visudo 编辑,不要直接 vim。

实用组合示例

配置 Web 服务器权限

# 网站目录归 nginx 用户所有
chown -R nginx:nginx /var/www/html/

# 目录 755,文件 644
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

# 上传目录给写权限
chmod 777 /var/www/html/uploads/

# 配置文件严格权限
chmod 600 /var/www/html/wp-config.php
chmod 600 /etc/nginx/ssl/*.key

创建部署用户

# 创建部署用户
useradd -m -s /bin/bash deploy

# 加入 www-data 组
usermod -aG www-data deploy

# 设置密码
passwd deploy

# 配置 sudo 权限(只允许重启 nginx)
echo "deploy ALL=(ALL) /usr/bin/systemctl restart nginx" > /etc/sudoers.d/deploy
chmod 440 /etc/sudoers.d/deploy

查看用户和组信息

# 查看当前用户
whoami

# 查看当前用户所属的组
groups

# 查看指定用户的组
groups username

# 查看用户详细信息
id username

# 查看所有用户
cat /etc/passwd | cut -d: -f1

# 查看所有组
cat /etc/group | cut -d: -f1

# 查看登录中的用户
w
# 或
who

总结

| 命令 | 作用 | 典型场景 |

|——|——|———|

| chmod | 修改权限 | 调整文件可读可写 |

| chown | 修改所有者 | 网站目录归属 |

| useradd | 创建用户 | 新增系统用户 |

| usermod | 修改用户 | 调整用户属性 |

| userdel | 删除用户 | 清理账号 |

| groupadd | 创建组 | 权限分组 |

| sudo | 提权执行 | 临时 root 权限 |

权限管理核心原则:最小权限原则——只给必要的权限,不多给。

本文到此结束