Kum*_*ohn 0 linux sudo bash ubuntu centos-7
我在 sudoers 文件中授予了以下权限。
Cmnd_Alias SUROOT=/bin/su "",\
/bin/su -,\
/bin/su - root,\
/bin/su root,\
/usr/bin/su "",\
/usr/bin/su -,\
/usr/bin/su - root,\
/usr/bin/su root
kj ALL = (ALL) ALL, !SUROOT
Run Code Online (Sandbox Code Playgroud)
当我尝试访问sudo su -
其被阻止时
kj@u1804-1:~$ sudo su -
[sudo] password for kj:
Sorry, user kj is not allowed to execute '/bin/su -' as root on u1804-1.
Run Code Online (Sandbox Code Playgroud)
但是当我尝试访问sudo sudo su -
它时允许。
kj@u1804-1:~$ sudo sudo su -
[sudo] password for kj:
root@u1804-1:~#
Run Code Online (Sandbox Code Playgroud)
我需要阻止对 root 用户的访问如何阻止sudo sudo
命令
use*_*686 10
您无法通过阻止单个命令来实现此目的。人们可以使用数十个(如果不是数百个)命令来成为 root 用户sudo
:
sudo -s
sudo -i
sudo bash
sudo env su
sudo /bin/sh
sudo env sudo
sudo busybox sh
sudo unshare
sudo chroot /
sudo systemd-run --shell
sudo nvim -c ":terminal"
sudo perl -e 'exec("bash")'
sudo git -c protocol.ext.allow=always ls-remote ext::"bash -c sh<&2>&2"
Run Code Online (Sandbox Code Playgroud)
他们可以重命名被阻止的命令:
sudo cp -a /sbin/su /sbin/really-not-su && sudo really-not-su
Run Code Online (Sandbox Code Playgroud)
他们可以简单地更改您设置的规则:
sudo nano /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
希望已经说明了这一点 - 如果您授予人们 root 访问权限,那么您就是在授予他们 root 访问权限。唯一的选择是拥有一个允许的命令列表并阻止其他所有命令——即便如此,其中一半的命令仍将有办法获得完全的 root 访问权限。
(AppArmor 或 SELinux 可能会有所帮助。)
归档时间: |
|
查看次数: |
3135 次 |
最近记录: |