限制用户运行特定命令

限制用户运行特定命令

我有一个用户test1,我想限制它只运行特定的命令。我发现解决方案,我测试了它(使用 test1 登录并运行一些随机命令。它们都不起作用,但是date)并且它起作用了。这就是我所做的:

cp /bin/bash /bin/rbash
useradd -s /bin/rbash test1
mkdir /home/test1/bin
chmod 755 /home/test1/bin
echo "PATH=$HOME/bin" >> /home/test1/.bashrc
echo "export PATH" >> /home/test1/.bashrc
chattr +i /home/test1/.bash_profile
ln -s /usr/bin/date /home/test1/bin

因为我更像是一个 DBA,而不是像你们这样的 Linux 专业人士,所以我不知道这是否足够,以及我是否需要做其他事情来防止它test1在系统上做任何事情。有什么提高安全性的建议吗?

如您所见,如果我为以下命令创建链接ifconfig

ln -s /sbin/ifconfig /home/test1/bin 

该用户test1还可以add | del | up | down使用ifconfig.我如何使用例如此选项来限制此命令-a,或者可以在没有任何选项的情况下执行它?

答案1

普通用户不允许更改网络接口。

例如,我的非 root 用户可以使用以下命令查看界面详细信息ifconfig

$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 178399193  bytes 213874320365 (199.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 50539358  bytes 36748192570 (34.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xba200000-ba21ffff  

但无法关闭接口:

$ ifconfig eth0 down
SIOCSIFFLAGS: Operation not permitted

简而言之,不要让它们ifconfig以 root 身份运行(例如使用sudo),您不必担心这一点。

答案2

你尝试过跑步吗/bin/rm?您阅读了文章顶部的警告吗?

免责声明:这只是一个 hack,不建议用于实际生产使用

我也会阅读以下评论这个答案到 Stack Overflow 上的副本。

如果你想真正限制用户安全地您可能需要研究权限框架,例如 SELinux 或 AppArmor。

相关内容