ファイルを編集してsudoers
ユーザーを制限しようとしていますM ALL=!/bin/su
。制限することはできますが、sudo su -
できませんsudo -i
。
答え1
/bin/bash
元の質問の場合は、次のように除外(またはユーザーシェルとして定義されているすべてのもの)する必要があります/etc/passwd
。
tomk ALL= ALL,!/bin/su,!/bin/bash
でも(!!!)、あなたの質問に対するコメントに記載されているように、これがユーザーの実行を拒否してsudo -s
もsudo -i
、実際、彼/彼女がルートとしてインタラクティブシェルを取得するのを防ぎません。
からman sudoers
:
「!」の制限演算子
ALLから「減算」のために「!」演算子の使用は通常効果がありません。ユーザーは目的のコマンドを別の名前にコピーし、そのコマンドを実行してこの問題を簡単に回避できます。たとえば、
bill ALL = ALL, !SU, !SHELLS
BillがSUまたはSHELLSにリストされているコマンドを実行するのを実際に防ぐ方法はありません。なぜなら、彼は単にコマンドを別の名前にコピーしたり、エディタや他のプログラムのシェルエスケープを使うことができるからです。したがって、そのような制限はせいぜい勧告と見なされるべきです(そして政策によって強化されるべきです)。
通常、ユーザーがsudo ALLを使用している場合、ユーザー仕様の「!」要素に関係なく、ルートシェルを提供する独自のプログラムの作成(または独自のシェルコピーの作成)を防ぐことはできません。