私には次のことが起こりました。
$ sudo su - superman
Sorry, user clarkkent is not allowed to execute '/bin/su - superman' as root in krypton101.
しかし、以下は正常に機能します。
$ sudo su superman
ユーザーが何かをすることを許可しますが、実行しないようにするのはいつsudo su
役に立ちますかsudo su -
?この設定をどのように設定/解除しますか?私は読んだこのページしかし、これは役に立ちません。
詳細は:
- 私は管理者ではありません。
- アクセスできません。
/etc/sudoers
- ディストリビューションはCentos 7です。
ベストアンサー1
viaが許可するコマンドを指定するときは、基本的にsudo
2つの簡単なオプションがあります。
- 特定のコマンドを許可どのパラメータまたは
- 特定のコマンドを許可正確に指定してくださいパラメータセットのみが適用されます。
したがって、ファイルには2つのエントリが許可されており、sudo su - superman
必須です。管理者がこれらのうちの1つだけを提供したようです。sudo su superman
sudoers
実際、ファイルsudoers
構文では、管理者はワイルドカードまたは正規表現制限オプションを使用して特定のコマンドを指定することはできません。これらの仕様は、悪用するのが簡単すぎるからです。アンドリューが言ったように、申し訳ありませんより安全方法はここにあります。
ただし、元のユーザーが実行を許可する必要があるsudo su superman
ことに注意してください。sudo
su superman
rootユーザーとして。実際、IDの切り替えは1回ではなく2回行われます。まず、元のユーザーからroot byにsudo
、次にrootからsuperman
byに切り替えますsu
。ファイルの仕様は次のとおりですsudoers
。
original_user ALL=(root) su superman
一方、sudoers
ユーザーがコマンドの使用法に集中しすぎない場合、構文はユーザーが特定のユーザーとしてすべてのコマンドを実行できるようにするより簡単な方法を提供しますsu
。
sudoers仕様が次のように書かれている場合:
original_user ALL=(superman) ALL
その後、ユーザーはsudo -u superman -s
次のように近い(しかし不正確かもしれない)同等の結果を得ることができます。sudo su superman
そして sudo -u superman -i
達する精密sudo su - superman
.
なぜ人々はコンストラクタに固執する代わりにそれを使用しないのですかsudo su -
?!の以前のバージョン-i
にはこのオプションがないためです。sudo
2000年以降に出てきたので、今は役に立たないこのsudo su -
構造を依然として推奨する古い文献がたくさんあります。もちろん、以前のUNIXユーザーや管理者はマッスルメモリを持っているかもしれないので、何も考えずに使うこともある。