linux-user-permission-guide

2026/07/282 分钟阅读440

Linux 账号与权限管理速查

日常运维最常用的账号、用户组、权限、提权命令,按场景整理。

约定:示例在 root 下直接运行即可。发行版差异处已标注。

一、创建账号

# Ubuntu/Debian 推荐(交互式,顺手建家目录、提示设密码)
adduser alice

# CentOS/RHEL 或所有发行版的原始写法(非交互,要手动加参数)
useradd -m -s /bin/bash alice    # -m 建家目录,-s 指定 shell
passwd alice                     # 设密码
区别:adduser 友好但行为因发行版而异;useradd 最通用,记得带 -m,否则没家目录。

创建系统/服务账号(不能登录,只用来跑服务,更安全):

useradd -r -s /sbin/nologin -d /opt/app appuser

二、用户组管理

groupadd deployers              # 建组
usermod -aG deployers alice     # 把 alice 加入 deployers 组(-aG 必须带 a,否则会踢出其他组!)
usermod -aG deployers bob

groups alice                    # 看 alice 在哪些组
id alice                        # 看 uid / gid / 所有组
加入组后,当前已开的会话不生效,要重新登录或 newgrp deployers 切一下。

三、sudo 提权(别老用 root)

# Ubuntu/Debian:加入 sudo 组即可
usermod -aG sudo alice

# CentOS/RHEL:加入 wheel 组
usermod -aG wheel alice

精细化授权(比如只允许 alice 重启 nginx)用 visudo:

visudo   # 永远用 visudo 编辑,它会检查语法,改错了不至于把 sudo 搞崩
# 末尾加一行:
alice ALL=(ALL) /bin/systemctl restart nginx

四、文件权限(核心)

每个文件有 属主 / 属组 / 其他人 三组权限,每组是 r w x:

数字权限文件含义目录含义
4rls 看里面文件名
2w能在里面增删文件
1x执行cd 进入(目录的 x 很关键)
# chmod:改权限
chmod 755 script.sh        # rwxr-xr-x (主人全权,其他人只读+进入)
chmod 644 notes.txt        # rw-r--r-- (常规文件)
chmod +x deploy.sh         # 给所有人加执行权限
chmod g+w shared/          # 给属组加写权限

# chown:改属主(和属组)
chown alice:deployers shared/      # 属主 alice,属组 deployers
chown -R alice:deployers /opt/app  # -R 递归整个目录

# chgrp:只改属组
chgrp deployers shared/

权限速记

模式典型用途
755目录、可执行脚本
644普通文件
600密钥、私密配置(只有主人能读写)
700~/.ssh 目录
SSH 关键坑:~/.ssh 必须 700authorized_keys 必须 600,否则 sshd 会静默拒绝密钥登录。

五、实战场景

场景 A:多个协作者共享一个部署目录

groupadd deployers
usermod -aG deployers alice
usermod -aG deployers bob
chown -R root:deployers /opt/webapp
chmod -R 775 /opt/webapp          # 组成员可读写
chmod g+s /opt/webapp             # SGID:新建文件自动继承 deployers 组

场景 B:限制某账号只能 sftp,不能 ssh 登服务器

useradd -m -s /usr/sbin/nologin uploader
passwd uploader
# 编辑 /etc/ssh/sshd_config,把子系统改成 internal-sftp 并 Match 该用户

场景 C:彻底删账号

userdel -r alice    # -r 连家目录一起删;不加 -r 只删账号,文件保留(属主会显示成 uid 数字)

六、常用查询命令

whoami              # 当前我是谁
id                  # 当前 uid/gid/组
cat /etc/passwd     # 所有账号列表
cat /etc/group      # 所有组
w                   # 谁现在登录着
last                # 登录历史

附:命令一览

操作命令
建账号useradd -m -s /bin/bash <name>
设密码passwd <name>
建组groupadd <group>
加入组usermod -aG <group> <name>
提权usermod -aG sudo <name> (Debian) / wheel (RHEL)
改权限chmod <mode> <path>
改属主chown <user>:<group> <path>
删账号userdel -r <name>