Linux用户权限管理核心是账户、组与rwx三级权限协同:用户属组,文件有所有者/所属组,权限按所有者-所属组-其他人分配;通过useradd/usermod/chown/chmod等命令实现创建、授权与管控,并遵循最小权限原则。

Linux 的用户与权限管理是系统安全的核心,理解账户、组和权限三者的关系,才能合理分配资源、防止越权操作。关键在于:用户属于组,文件有所有者和所属组,权限通过 rwx 控制读、写、执行,并受“所有者-所属组-其他人”三级规则约束。
创建与管理用户账户
使用 useradd 添加用户,配合常用选项可一步完成初始化配置:
-
sudo useradd -m -s /bin/bash -c "John Doe" johnd:创建用户johnd,自动建家目录(-m)、设默认 shell(-s)、添加备注(-c) -
sudo passwd johnd:为用户设置密码(root 可直接设,普通用户只能改自己的) -
sudo usermod -aG sudo johnd:将johnd加入sudo组,获得管理员命令执行权限(-aG表示追加,避免覆盖已有组) -
id johnd查看用户 UID、GID 和所属组,确认配置生效
组的组织与权限继承机制
组不是权限本身,而是批量赋权的逻辑容器。文件的所属组权限对组内所有成员生效,比逐个授权更高效、更易维护。
- 用
groupadd devteam创建新组;用gpasswd -a alice devteam把用户加入组(需 root 权限) - 新建目录时,建议启用 setgid 位:执行
sudo chmod g+s /srv/project后,该目录下新建的文件/子目录自动继承父目录的所属组(而非创建者主组) - 查看组成员可用
getent group devteam,比查/etc/group更可靠(兼容 LDAP 等外部源)
精准控制文件与目录权限
权限分三段(如 drwxr-x---),分别对应所有者(u)、所属组(g)、其他人(o)。修改用 chmod,变更归属用 chown。
-
chmod 750 doc.txt等价于chmod u=rwx,g=rx,o= doc.txt:所有者全权,组员可读可执行,其他人无权限 -
chown alice:devteam script.sh将文件所有者设为alice,所属组设为devteam - 递归修改目录权限:
chmod -R 750 /var/www/html+find /var/www/html -type f -exec chmod 640 {} \;(先设目录,再单独处理文件,避免脚本被误设为可执行)
特殊权限与最小权限原则
除基础 rwx 外,setuid(u+s)、setgid(g+s)、sticky bit(o+t)用于特定场景,但应谨慎启用。
-
sudo chmod u+s /usr/bin/passwd:普通用户执行时以 root 身份运行(仅限必要且审计过的程序) -
chmod g+s /shared:确保该目录下新建内容继承组,配合umask 002(用户默认掩码)让新文件组可写 -
chmod o+t /tmp:启用 sticky bit,使用户只能删除自己创建的文件,即使目录对所有人可写 - 始终遵循最小权限:比如 Web 服务目录通常不需要执行权限,
chmod -R 644 *.html && chmod -R 755 cgi-bin/










