服务器用户与权限管理从零开始如何做

作者:袖梨 2026-08-12

核心是三点:先建身份(用户和组),再定边界(文件和目录权限),最后控行为(sudo或服务级授权);每步均有明确目的与操作依据,强调职责分离、最小权限和持续审计。

从零开始做服务器用户与权限管理,核心就三点:先建身份(用户和组),再定边界(文件和目录权限),最后控行为(sudo或服务级授权)。不靠猜、不靠复制粘贴,每一步都有明确目的和操作依据。

一、创建用户和组:先搭“人和部门”

别直接用 root 操作,先按职责分角色。比如开发用 dev 用户,运维用 ops 用户,数据库维护用 dba 用户——每个账号只干一件事。

  1. 新建用户:sudo useradd -m -s /bin/bash dev(-m 创建家目录,-s 指定可登录 Shell)
  2. 设密码:sudo passwd dev,输入两次强密码(大小写字母+数字+符号)
  3. 建组并加人:sudo groupadd devs,再把用户加进去:sudo usermod -aG devs dev
  4. 检查是否生效:id dev,能看到 UID、GID 和所属组列表

⚠️注意:不要手动改 /etc/passwd/etc/shadow,必须用 useraddusermod 等命令,否则格式错会导致无法登录。

二、控制文件和目录权限:谁能在哪读、写、执行

权限不是越宽越好,而是“刚好够用”。比如 代码目录,web 服务进程要能读,开发要能改,其他人不能碰。

  1. 查当前权限:ls -ld /var/www/html(看目录本身)或 ls -l /var/www/html(看里面文件)
  2. 改归属:sudo chown -R dev:devs /var/www/html(-R 递归,让整个目录都归 dev 用户和 devs 组)
  3. 设权限:sudo chmod -R 750 /var/www/html(所有者 rwx,组 r-x,其他人无权限)
  4. 若需组内多人协作写入,可开 setgid:sudo chmod g+s /var/www/html,确保新文件自动继承组

三、分配执行特权:用 sudo 代替 root 登录

绝不给普通用户 root 密码,但又要让他们能重启服务或查日志——靠 sudo 精细授权。

  1. 把用户加入 sudo 组:sudo usermod -aG sudo dev
  2. 如需更细粒度(比如只允许重启 nginx):sudo visudo,添加一行:

    dev ALL=(root) /bin/systemctl restart nginx

  3. 验证:su - dev 切换后运行 sudo systemctl status nginx,看是否成功

✅关键原则:命令路径写全(/bin/systemctl 不是 systemctl),避免路径污染风险。

四、定期检查与清理:让权限体系可持续

权限不是设一次就完事。人员变动、业务调整后,必须同步更新。

  1. 查闲置账号:sudo lastlog -b 90(90 天没登录的用户)
  2. 锁账户(不删):sudo passwd -l dev_old(加锁比删更安全,保留审计线索)
  3. 查权限异常:find /home -type d ! -perm -755 -ls(找家目录权限过松的)
  4. 审计 sudo 日志:sudo grep "sudo:" /var/log/auth.log(确认谁在什么时候执行了什么)

不复杂但容易忽略——真正管住权限,靠的是日常习惯,不是某次配置。

相关文章

精彩推荐