我正在服务器上配置 sudo,有以下问题。我只希望一个用户组运行/sbin/ifconfig
。我已经配置了 sudo:
User_Alias NETWORK = user1
Cmnd_Alias NETWORKING = /sbin/ifconfig
Host_Alias MYHOSTS = localhost
规则:
NETWORK MYHOSTS = (root) NETWORKING
它对用户来说很好用用户1:sudo ifconfig
询问密码。但是,我发现任何计算机用户都可以运行 ifconfig,因为此文件的权限为/sbin
755。对吗?我也应该更改文件权限吗?
答案1
来自 sudo 手册页:
sudo 允许获得许可的用户以超级用户或其他用户的身份执行命令,如安全策略所指定。
这不会影响常规(文件系统)权限。因此,如果可执行文件的权限为 755(-rwxr-xr-x
)每一个系统上的用户可以执行它。但是——根据可执行文件——对于某些操作,您会收到权限被拒绝的错误:
$ ls -l /sbin/ifconfig -rwxr-xr-x 1 root root 67912 2013 年 5 月 11 日 /sbin/ifconfig $ whoami 用户 $ /sbin/ifconfig eth0 链路封装:以太网 HWaddr 00:00:00:00:00:00 inet 地址:192.168.1.1 Bcast:192.168.1.255 掩码:255.255.255.0 上行广播运行多播 MTU:1500 度量:1 RX 数据包:29886 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:17383 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:1000 RX 字节数:3706932(3.5 MiB)TX 字节数:34965406(33.3 MiB) $ /sbin/ifconfig eth0 关闭 SIOCSIFFLAGS:操作不允许 $ sudo /sbin/ifconfig eth0 关闭 [sudo] 用户密码: -没有错误- $
请注意,将权限更改/sbin/ifconfig
为 700(-rwx-----
)将阻止普通用户执行它,但可能还有其他方法可以获取信息。例如通过 IP 地址ip address
或/proc
文件系统。