在使用 CentOS 系统部署各种服务(如 Nginx、MySQL、Redis 等)时,合理配置服务用户权限是保障系统安全的重要一环。本文将从零开始,为 Linux 新手详细讲解如何创建和管理服务专用用户,并正确设置其权限,避免因权限过高导致的安全风险。

很多初学者习惯直接用 root 用户运行服务,这非常危险!一旦服务被攻击,攻击者就拥有了整个系统的控制权。而为每个服务创建独立的非登录、无家目录的系统用户,可以实现“最小权限原则”——即服务只拥有完成其任务所需的最低权限。
这也是 CentOS系统安全 的最佳实践之一。
以部署一个名为 myapp 的服务为例,我们创建一个名为 myapp 的系统用户:
sudo useradd \ --system \ --no-create-home \ --shell /sbin/nologin \ --comment "MyApp Service User" \ myapp参数说明:
--system:创建系统用户(UID 通常小于 1000)--no-create-home:不创建 /home/myapp 目录,节省空间--shell /sbin/nologin:禁止该用户通过 SSH 或终端登录--comment:添加描述信息,便于识别假设你的服务程序放在 /opt/myapp,日志目录为 /var/log/myapp,你需要将这些目录的所有权赋予 myapp 用户:
# 设置程序目录权限sudo chown -R myapp:myapp /opt/myapp# 创建并设置日志目录sudo mkdir -p /var/log/myappsudo chown myapp:myapp /var/log/myappsudo chmod 750 /var/log/myapp这样,myapp 用户就能读写自己的程序和日志,但无法访问其他用户的文件。
如果你使用 systemd 管理服务(CentOS 7+ 默认),可以在服务单元文件中指定运行用户。例如,创建 /etc/systemd/system/myapp.service:
[Unit]Description=MyApp ServiceAfter=network.target[Service]Type=simpleUser=myapp Group=myappExecStart=/opt/myapp/bin/myappWorkingDirectory=/opt/myappRestart=on-failure[Install]WantedBy=multi-user.target保存后重载 systemd 并启动服务:
sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myapp现在,你的服务将以 myapp 用户身份运行,即使被入侵,攻击者也无法获得 root 权限。
/etc/passwd 和 /etc/group,确保没有异常用户ps aux | grep myapp 验证服务是否以正确用户运行750 或 700,防止其他用户读取敏感日志通过为每个服务创建独立的系统用户,并合理配置 Linux用户权限管理 策略,你可以显著提升 CentOS 服务器的安全性。这种做法不仅符合安全规范,也便于后续维护和故障排查。
记住:永远不要用 root 运行普通服务! 掌握 服务账户权限配置 技能,是你迈向专业 Linux 运维的重要一步。
本文由主机测评网于2025-12-08发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025124737.html