我可以sudo
访问我们的一台测试机器,以下是对我限制的命令:
user_sree@sel8585:~> sudo -l
user_sree's password:
User user_sree may run the following commands on this host:
(ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,
!/usr/sbin/visudo
Run Code Online (Sandbox Code Playgroud)
这说我不能运行visudo
或/usr/sbin/visudo
. 我证实了这一点:
user_sree@sel8585:~> sudo /usr/sbin/visudo
Sorry, user user_sree is not allowed to execute '/usr/sbin/visudo' as root on sel8585.
Run Code Online (Sandbox Code Playgroud)
现在,出于好奇,我创建了一个符号链接/usr/sbin/visudo
:
ln -s /usr/sbin/visudo myvi`
Run Code Online (Sandbox Code Playgroud)
我尝试通过调用这个软链接来访问 sudoers 文件,它工作正常。
user_sree@sel8585:~> sudo /home/user_sree/myvi
myvi: /etc/sudoers.tmp unchanged
Run Code Online (Sandbox Code Playgroud)
同样,我能够通过创建软链接来运行其他受限制的命令。
如果我要sudo
为他人配置,如何阻止他人这样做?我不想限制他们创建软链接。
user_sree@sel8585:~> sudo -l | grep bash
(ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,
Run Code Online (Sandbox Code Playgroud)
相似地:
user_sree@sel8585:~> sudo sh -c 'ls'
Sorry, user user_sree is not allowed to execute '/usr/bin/sh -c ls' as root on sel8585.
Run Code Online (Sandbox Code Playgroud)
现在使用mybash
链接到/bin/bash
: (在我的系统中/usr/bin/sh
是一个链接到/bin/bash
)
user_sree@sel8585:~> sudo /home/user_sree/mybash -c 'ls'
Run Code Online (Sandbox Code Playgroud)
bin mybash myvi sudoers.back test.pp
user_sree@sel8585:~> ll my*
lrwxrwxrwx 1 user_sree users 9 Jul 16 14:10 mybash -> /bin/bash
lrwxrwxrwx 1 user_sree users 16 Jul 16 14:13 myvi -> /usr/sbin/visudo
Run Code Online (Sandbox Code Playgroud)
PS:
Cmnd_Alias NSHELLS = /bin/sh,/bin/bash,/bin/ksh
Cmnd_Alias NSU = /bin/su
Cmnd_Alias NCMDS = /usr/bin/passwd,/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod,/usr/sbin/visudo
user_sree ALL=(ALL) ALL, !NSHELLS, !NSU, !NCMDS
Run Code Online (Sandbox Code Playgroud)
以上是/etc/sudoers
文件中的条目。
mjt*_*ner 11
老实说,如果您要允许用户运行除少数命令之外的所有内容,您将遇到问题。
例如,您不允许访问user*
命令,但用户仍然可以运行vipw
,甚至可以使用文本编辑器编辑密码和影子文件。如果您锁定vi
对例如的访问权限,是什么阻止他们安装不同的文本编辑器并使用它?甚至使用cat
或 shell 内置echo
来添加新用户?
您永远无法sudo
访问“除了这几个命令之外的所有内容”。相反,删除ALL
条目,定义允许的内容并仅授予对那些允许命令的访问权限。
归档时间: |
|
查看次数: |
2003 次 |
最近记录: |