Home Knowledge base Skyline Cloud 如何在 Linux 上管理用户与权限 KNOWLEDGE BASE

如何在 Linux 上管理用户与权限

一份面向 Ubuntu 22.04/24.04 LTS 的实用指南:创建与删除用户、配置用户组、委派管理员权限,以及通过文件权限和 ACL 实现精细化访问控制。

如何在 Linux 上管理用户与权限

引言

Linux 系统在设计上就支持多用户同时使用。对于任何服务器部署而言,无论是托管网站还是应用程序,控制用户访问和文件权限都是必不可少的安全基础设施。本实用指南介绍 Ubuntu 22.04/24.04 LTS 的用户管理、用户组配置、管理员权限委派,以及适用于大多数现代 Linux 发行版的权限控制方法。

创建与删除用户

Ubuntu 和 Debian 系统以 adduser 作为创建用户的主要工具,它会自动建立主目录并提示设置密码:

sudo adduser sara

更底层的 useradd 命令则提供了适合脚本化的方案,可通过特定标志来创建主目录(-m)、指定登录 Shell 以及添加用户备注:

sudo useradd -m -s /bin/bash -c "Sara Ahmed" sara
sudo passwd sara

删除用户但保留其文件:

sudo deluser sara

完全删除用户,包括其主目录和邮件存储:

sudo deluser --remove-home sara

理解用户组

用户组可以为多个用户统一分配访问权限。查看某个用户的组成员关系:

groups sara
id sara

创建新用户组并添加成员:

sudo groupadd developers
sudo usermod -aG developers sara

-aG 这两个标志承担着关键作用:-a 表示追加组成员关系,而 -G 用于管理附加组(supplementary groups)。若省略 -a,则会替换掉该用户所有现有的附加组——这是一个常见且危险的错误。更改会在用户下次登录时生效。

将用户从组中移除:

sudo gpasswd -d sara developers

通过 sudo 授予管理员权限

Ubuntu 会向 sudo 组的成员授予管理能力。添加管理员用户:

sudo usermod -aG sudo sara

如需更精细的权限控制,可使用 visudo 来编辑 sudoers 配置,它会在保存前校验语法:

sudo visudo

/etc/sudoers.d/ 目录中创建专用文件,可使规则在软件包更新后依然保留:

sudo visudo -f /etc/sudoers.d/sara

授予在无需密码提示的情况下重启特定服务的权限:

sara ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

这种做法体现了最小权限原则——只授予完成任务所需的最低权限。

Linux 文件权限

文件和目录都归属于某个用户和某个组,并针对三类对象设置各自的权限:所有者(u)、组(g)和其他用户(o)。显示权限:

ls -l report.txt
# -rw-r--r-- 1 sara developers 1240 Jun  8 10:12 report.txt

权限分为三种类型:读(r/4)、写(w/2)和执行(x/1)。对于目录而言,x 表示进入该目录的能力。

符号 八进制 对文件的含义 对目录的含义
r 4 读取内容 列出条目
w 2 修改内容 创建/删除条目
x 1 作为程序运行 进入 / 遍历

使用符号表示法或八进制表示法修改权限:

# 符号表示法:为所有者添加执行权限
chmod u+x script.sh

# 八进制表示法:所有者 rwx,组 rx,其他用户 r(754)
chmod 754 script.sh

使用 chown 更改归属关系:

sudo chown sara:developers report.txt

递归应用更改:

sudo chown -R sara:developers /var/www/project
sudo chmod -R 750 /var/www/project

对于 Web 内容,默认推荐文件使用 644、目录使用 755,这样既允许服务器读取,又不赋予其写入能力。

通过 ACL 实现精细化控制

标准权限只能表达单一的所有者和组关系。访问控制列表(ACL)可在需要时提供面向第三方的精细化访问控制,Ubuntu 默认即已包含该功能:

# 授予用户 'omar' 对某文件的读/写权限
sudo setfacl -m u:omar:rw report.txt

# 查看 ACL
getfacl report.txt

# 移除 omar 的条目
sudo setfacl -x u:omar report.txt

ACL 能够在无需重构用户组的情况下,满足多团队共享目录的需求。

账户安全与有效期

使用 chage 查看和配置密码时效策略:

# 显示当前的时效设置
sudo chage -l sara

# 要求每 90 天更换一次密码
sudo chage -M 90 sara

临时停用账户:

sudo usermod -L sara   # 锁定
sudo usermod -U sara   # 解锁

日常管理中,应优先使用 SSH 密钥而非密码,并在 /etc/ssh/sshd_config 中禁用 root 用户的 SSH 访问。

在托管云服务器上综合运用

这些通用命令会因部署所在的位置而获得相应的运维语境。位于特定司法管辖区内的托管云基础设施,既能确保符合本地数据保护框架,又能提供本地化的支持资源。独立的用户账户、最小权限的 sudo 配置、受限的文件权限以及 SSH 身份验证,都是性价比极高的安全投入。

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.