ユーザーは「sudo sudo su -」を使用してルートになることができます。

ユーザーは「sudo sudo su -」を使用してルートになることができます。

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

アクセスしようとすると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.

しかし、アクセスしようとするとsudo sudo su -許可されます。

kj@u1804-1:~$ sudo sudo su -
[sudo] password for kj:
root@u1804-1:~#

ルートユーザーへのアクセスをブロックする必要があります。sudo sudoコマンドをブロックするにはどうすればよいですか?

答え1

個々のコマンドをブロックするだけでは、これを実現することはできません。数百、ユーザーが 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"

ブロックされたコマンドの名前を変更できます。

sudo cp -a /sbin/su /sbin/really-not-su && sudo really-not-su

設定したルールを単純に変更することもできます。

sudo nano /etc/sudoers

言いたいことは伝わったと思います。ルート権限を与える場合、彼らにルートアクセス権を与えることになります。唯一の選択肢は、許可されたコマンドを制限し、その他すべてをブロックします。それでも、コマンドの半分は完全なルート アクセスを取得する方法を持っています。

(AppArmor または SELinux がここで役立つ場合があります。)

答え2

私はおそらく反対のアプローチを提案します。つまり、一部の人に無制限のルート権限を与えるのではなく、sudoパスワードを指定せずに一部のコマンドを実行できるようにします。これにより、必要な操作は実行できますが、それ以上は実行できなくなります。

ファイルsudoersでは、コマンドに許可されるパラメータを定義することもできます。また、ワイルドカードを使用してコマンドに文字列を含めることもできます。

このアプローチは、Unix Stackexchangeの投稿の回答で最もよく説明されています。
パスワードなしでsshコマンドやsudoコマンドをリモート実行する方法

一部のコマンドではパスワードをスキップするように sudo に指示できます。

例えば/etc/sudoers

archemar  ALL = (www-data) NOPASSWD: /bin/rm -rf /var/www/log/upload.*

これにより、

sudo -u www-data /bin/rm -rf /var/www/log/upload.*

パスワードなしの Archemar として。

ご了承ください

sudo -u www-data rm -rf /var/www/log/upload.*

は動作しません (パスワードを要求します) とrm異なります/bin/rm

必ずコマンド/etc/sudoersを使用して編集してくださいvisudo

sudo上級レベルに到達したら、に独自のファイルを保持したい場合があります /etc/sudoers.d

関連情報