
私には次のことが起こりました。
$ 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ユーザーや管理者はマッスルメモリを持っているかもしれないので、何も考えずに使うこともある。
答え2
この質問に答える:ユーザーがsudo suの代わりにsudo suを実行できるようにするのはいつ便利ですか?
su
ハイフンの後ろと前ユーザー名現在のユーザーがユーザー名の環境を継承できるように su に指示します。をするクラーケン環境には、実行するために必要な環境変数が設定されています。スーパーマン、実行する必要はありませんsudo su - superman
。
これを許可しない正当な「理由」は、システム管理者がこれがセキュリティ上のリスクを引き起こすと信じている可能性sudo su - superman
があります。sudo su - superman
これは、sudo su -
ユーザー名を指定しないと、次にログインするように求められます。根ユーザーの皆さん、これはおそらくシステム管理者が避けようとしているものです。実際にハイフンを追加すると、これらのリスクが発生するかどうかはわかりませんが、セキュリティにとってはそうです。申し訳ありませんより安全。
この設定をどのように設定/解除しますか?
構成は/etc/sudoers
ファイルで定義されます。