作者:Chancel Yang, 创建:2024-09-23, 字数:1177, 已阅:30, 最后更新:2024-09-23
在 Linux 下,运行程序的用户一般遵循最小权限原则
最小权限原则(Principle of Least Privilege,PoLP)是一种安全实践原则
每个用户或进程只应拥有在其职责范围内执行操作所需的最小权限,而不应拥有任何多余的权限
最小权限原则优点:
在实践中,通常有如下方面:
sudo
临时获得管理员全线,而不是始终采用 root
用户web
应用程序,除非必要否则始终以非特权用户运行,防止入侵chmod
设置恰当的权限运行程序如何选择恰当的权限:
从安全的角度考虑,那么每一个应用程序都推荐设置一个低权限用户
如果安全要求不那么高,创建一个 低权限用户 专门用于运行大部分低权限的第三方程序是可行的
以运行一个 frp
程序为例,首先创建一个低权限用户 apps
,执行如下:
sudo groupadd app_group
# 该用户不允许登录
sudo useradd -r -g app_group -s /usr/sbin/nologin apps
在 /opt
目录下创建程序目录:
mkdir -p /opt/apps/frp
在 /opt/apps/frp
目录中设置好配置文件后,使用 apps
用户运行程序
sudo -u apps /opt/apps/frp/frpc -c /opt/apps/frp/frpc.ini
使用 systemd
指定 apps
用户来运行 frp
[Unit]
Description=FRP Service
After=network.target
[Service]
Type=simple
User=apps
ExecStart=/opt/apps/frp/frpc -c /opt/apps/frp/frpc.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
综上,结论如下:
systemd
/ supervisor
来运行程序,降低程序有漏洞被入侵时的损失/usr/local/bin
或者 /opt
目录nobody
用户作为程序运行的用户,该用户广泛存在于Linux系统中,容易被提权和攻击