Linux 用户与权限管理实战:账号、文件权限与 sudo
在 Linux 服务器上,用户与权限管理是安全的第一道防线。账号给错了、权限放宽了、sudo 配错了,再坚固的防火墙也可能形同虚设。本文结合日常运维实战,讲清账号、用户组、文件权限与 sudo 的用法与排查思路。
一、账号管理:创建、锁定与删除
新建账号建议用 useradd 并一次指定家目录与默认 Shell,例如 useradd -m -s /bin/bash ops01,再用 passwd ops01 设置密码。查看账号信息用 id ops01,它会同时显示 UID、主组与附加组。
账号状态主要看 /etc/passwd 与 /etc/shadow。前者记录用户名、UID、GID、家目录与 Shell,后者保存加密后的密码与过期策略。普通用户不应直接编辑这两个文件,改用命令更安全。
临时停用账号用 usermod -L ops01 锁定,恢复用 usermod -U ops01。需要彻底清理时,先确认该账号没有正在运行的进程与定时任务,再执行 userdel -r ops01,-r 会同时删除家目录,操作前务必备份数据。
二、用户组:把权限交给组,而不是个人
把拥有相同职责的人放进同一个组,权限管理会简单很多。新建组用 groupadd devops,把用户加入组用 usermod -aG devops ops01,注意 -aG 是追加,漏掉 -a 会把原有附加组全部替换掉,这是新手最容易踩的坑。
用户刚加入新组后,已登录的会话不会立即生效,需要重新登录或执行 newgrp devops 切换。查看所属组用 groups ops01,查看组文件用 cat /etc/group。
三、文件权限:读、写、执行的含义要分开看
Linux 文件权限由三组组成:属主、属组、其他人,每组对应读 r、写 w、执行 x。ls -l 输出如 -rw-r--r--,第一位是文件类型,后面九位就是三组权限。
数字表示法更常用:r 等于 4,w 等于 2,x 等于 1。chmod 755 script.sh 表示属主可读写执行,属组与其他人可读执行;chmod 640 config.yaml 适合存放敏感配置的场景。修改属主与属组用 chown ops01:devops file.txt,只改组用 chgrp devops file.txt。
目录权限的含义与文件不同:目录上的 x 表示可以进入并访问其中的文件,r 表示可以列出目录内容。只给目录 r 不给 x,用户能看到文件名却打不开文件,这也是排查“明明有权限却打不开”时要先看的一点。
新建文件与目录的默认权限由 umask 决定。常见 umask 022 会让新建文件默认是 644,目录默认是 755。如果希望更严格,可以在 Shell 配置中把 umask 设为 027。
四、特殊权限:SUID、SGID 与粘滞位
除了常规的三组权限,还有三种特殊权限。SUID 让普通用户执行程序时临时获得属主权限,典型例子是 passwd;SGID 让在目录中新建的文件继承目录的属组,便于团队协作;粘滞位常用于 /tmp,用户只能删除自己的文件,不能删除别人的文件。
设置时可以在数字权限前加一位:chmod 4755 是 SUID,chmod 2755 是 SGID,chmod 1755 是粘滞位。ls -l 中它们会显示为 s 或 t。特殊权限要慎用,发现不明来源的 SUID 文件时,先用 find 命令按权限查找检查。
五、sudo:只给必要的权限,而不是 root 密码
日常运维应尽量避免直接使用 root 登录,改用 sudo 提权。把用户加入 wheel 或 sudo 组后,该用户就能执行 sudo 命令,具体组名取决于发行版,例如 usermod -aG wheel ops01。
更精细的控制写在 /etc/sudoers 中,务必用 visudo 编辑,它会在保存前检查语法,避免配错导致所有人都无法提权。例如只允许执行重启服务的命令:ops01 ALL=(ALL) /usr/bin/systemctl restart nginx。
用 sudo -l 可以查看当前账号被允许执行的命令;用 sudo -i 进入 root Shell 前,先确认这一步确实必要。所有 sudo 操作默认会记录到系统日志,出问题时可以结合日志回溯。
六、实战检查清单
新到一台服务器,先做四件事:第一,id 与 last 确认账号与登录记录;第二,ls -ld 检查关键目录权限,重点看 /etc、/var/log 与业务目录;第三,sudo -l 核对提权范围;第四,查找异常 SUID 文件排查。
常见错误包括:用 chmod 777 图省事、把用户直接加入过多组、改 /etc/sudoers 不用 visudo、删除账号时忘记清理其定时任务与 SSH 密钥。权限管理的目标不是越严越好,而是“刚好够用、可追溯、能收回”。
结语
账号、用户组、文件权限与 sudo 是一个整体:账号决定谁能进来,组决定按职责分工,文件权限决定能碰什么,sudo 决定能提权到什么程度。把每一项都做到最小权限、定期复核,Linux 系统的安全底座才算真正打牢。
- 点赞
- 收藏
- 关注作者
评论(0)