
在 Linux 下运行程序的用户一般遵循最小权限原则最小权限原则Principle of Least PrivilegePoLP是一种安全实践原则每个用户或进程只应拥有在其职责范围内执行操作所需的最小权限而不应拥有任何多余的权限最小权限原则优点减少被入侵时的损失防止意外操作导致的错误提高系统安全在实践中通常有如下方面采用sudo临时获得管理员全线而不是始终采用root用户对于web应用程序除非必要否则始终以非特权用户运行防止入侵对目录以及文件使用chmod设置恰当的权限运行程序如何选择恰当的权限创建程序运行时专用的用户和组设置程序运行时专用的程序目录从安全的角度考虑那么每一个应用程序都推荐设置一个低权限用户如果安全要求不那么高创建一个低权限用户专门用于运行大部分低权限的第三方程序是可行的以运行一个frp程序为例首先创建一个低权限用户app执行如下sudo useradd -r -U -s /usr/sbin/nologin app # 修改成 1000 组 ID sudo groupmod -g 1000 app sudo usermod -u 1000 -g 1000 app在/opt目录下创建程序目录mkdir -p /opt/app/frp在/opt/app/frp目录中设置好配置文件后使用app用户运行程序sudo -u app /opt/app/frp/frpc -c /opt/app/frp/frpc.ini使用systemd指定app用户来运行frp[Unit] DescriptionFRP Service Afternetwork.target [Service] Typesimple Userapp ExecStart/opt/app/frp/frpc -c /opt/app/frp/frpc.ini Restarton-failure [Install] WantedBymulti-user.target综上结论如下采用低权限用户搭配systemd/supervisor来运行程序降低程序有漏洞被入侵时的损失程序运行目录通常可以选择/usr/local/bin或者/opt目录不建议采用nobody用户作为程序运行的用户该用户广泛存在于Linux系统中容易被提权和攻击