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

从零开始做服务器用户与权限管理,核心就三点:先建身份(用户和组),再定边界(文件和目录权限),最后控行为(sudo或服务级授权)。不靠猜、不靠复制粘贴,每一步都有明确目的和操作依据。
一、创建用户和组:先搭“人和部门”
别直接用 root 操作,先按职责分角色。比如开发用 dev 用户,运维用 ops 用户,数据库维护用 dba 用户——每个账号只干一件事。
- 新建用户:
sudo useradd -m -s /bin/bash dev(-m 创建家目录,-s 指定可登录 Shell) - 设密码:
sudo passwd dev,输入两次强密码(大小写字母+数字+符号) - 建组并加人:
sudo groupadd devs,再把用户加进去:sudo usermod -aG devs dev - 检查是否生效:
id dev,能看到 UID、GID 和所属组列表
⚠️注意:不要手动改 /etc/passwd 或 /etc/shadow,必须用 useraddusermod 等命令,否则格式错会导致无法登录。
二、控制文件和目录权限:谁能在哪读、写、执行
权限不是越宽越好,而是“刚好够用”。比如网站代码目录,web 服务进程要能读,开发要能改,其他人不能碰。
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- 查当前权限:
ls -ld /var/www/html(看目录本身)或ls -l /var/www/html(看里面文件) - 改归属:
sudo chown -R dev:devs /var/www/html(-R 递归,让整个目录都归 dev 用户和 devs 组) - 设权限:
sudo chmod -R 750 /var/www/html(所有者 rwx,组 r-x,其他人无权限) - 若需组内多人协作写入,可开 setgid:
sudo chmod g+s /var/www/html,确保新文件自动继承组
三、分配执行特权:用 sudo 代替 root 登录
绝不给普通用户 root 密码,但又要让他们能重启服务或查日志——靠 sudo 精细授权。
- 把用户加入 sudo 组:
sudo usermod -aG sudo dev - 如需更细粒度(比如只允许重启 nginx):
sudo visudo,添加一行:dev ALL=(root) /bin/systemctl restart nginx - 验证:
su - dev切换后运行sudo systemctl status nginx,看是否成功
✅关键原则:命令路径写全(/bin/systemctl 不是 systemctl),避免路径污染风险。
四、定期检查与清理:让权限体系可持续
权限不是设一次就完事。人员变动、业务调整后,必须同步更新。
- 查闲置账号:
sudo lastlog -b 90(90 天没登录的用户) - 锁账户(不删):
sudo passwd -l dev_old(加锁比删更安全,保留审计线索) - 查权限异常:
find /home -type d ! -perm -755 -ls(找家目录权限过松的) - 审计 sudo 日志:
sudo grep "sudo:" /var/log/auth.log(确认谁在什么时候执行了什么)
不复杂但容易忽略——真正管住权限,靠的是日常习惯,不是某次配置。










