スクリプトで sed を使用するユーザーに対する sudo アクセス権を取り消す必要があります。
行に/ bin / suが含まれている場合にのみ、ユーザーにコメントを付けたいと思います。 - root
最初の行にのみコメントを付ける必要がある次のファイルを考えてみましょう。
mindadmin ALL = NOPASSWD: /bin/su - root
mindadmin ALL = NOPASSWD: /bin/ifconfig
私が使用したコマンドはsed
次のとおりです。
sed -e 's/minadmin[\s]+ALL[\s]+=[\s]+NOPASSWD:[\s]+/bin/su - root/#mindadmin ALL = NOPASSWD: /bin/su - root/g' /etc/sudoers
しかし、うまくいきません。文法的なエラーがありますか?
ベストアンサー1
2つの問題があります。最初のものはsudoers
hasmindadmin
とmode minadmin
(nothing d
)です。
2番目の問題は、/
sの/bin/su
正規表現で次をエスケープする必要があることです。
sed -e 's/mindadmin[\s]+ALL[\s]+=[\s]+NOPASSWD:[\s]+\/bin\/su - root/#mindadmin ALL = NOPASSWD: \/bin\/su - root/g' /etc/sudoers
それ以外の場合、パターンは終了します。
代わりに別の区切り文字を選択することもできます。/
ファイルにその区切り文字が表示されない限り、エスケープする必要はありません。