sudo -i と sudo su - などを使用してユーザーが root としてログインすることを制限する方法

sudo -i と sudo su - などを使用してユーザーが root としてログインすることを制限する方法

ファイルを編集してsudoersユーザーを制限しようとしていますM ALL=!/bin/su。制限することはできますが、sudo su -できませんsudo -i

答え1

/bin/bash元の質問の場合は、次のように除外(またはユーザーシェルとして定義されているすべてのもの)する必要があります/etc/passwd

tomk ALL= ALL,!/bin/su,!/bin/bash

でも(!!!)、あなたの質問に対するコメントに記載されているように、これがユーザーの実行を拒否してsudo -ssudo -i実際、彼/彼女がルートとしてインタラクティブシェルを取得するのを防ぎません。

からman sudoers

「!」の制限演算子

ALLから「減算」のために「!」演算子の使用は通常効果がありません。ユーザーは目的のコマンドを別の名前にコピーし、そのコマンドを実行してこの問題を簡単に回避できます。たとえば、

bill    ALL = ALL, !SU, !SHELLS

BillがSUまたはSHELLSにリストされているコマンドを実行するのを実際に防ぐ方法はありません。なぜなら、彼は単にコマンドを別の名前にコピーしたり、エディタや他のプログラムのシェルエスケープを使うことができるからです。したがって、そのような制限はせいぜい勧告と見なされるべきです(そして政策によって強化されるべきです)。

通常、ユーザーがsudo ALLを使用している場合、ユーザー仕様の「!」要素に関係なく、ルートシェルを提供する独自のプログラムの作成(または独自のシェルコピーの作成)を防ぐことはできません。

関連情報