web-dev-qa-db-ja.com

Sudo -gを実行できないのはなぜですか?

$ Sudo -u fish -g fish bash
Sorry, user steve is not allowed to execute '/bin/bash' as fish:fish on myserver.
$ Sudo -u fish bash
$ groups
fish

-gオプションの使用目的とは何ですか?また、なぜ使用できないのですか? RHELところで。

3
Steve Bennett

おそらく、sudoersファイルでこれが指定されていないためです。これは、このような2つの行の違いです。最初の行はデフォルトですが、2番目の行では、任意のグループとしてコマンドを実行することもできます。これは、必要なものです。

  • スティーブALL =(ALL).。

  • スティーブALL =(ALL:ALL).。

7
ramruma

ワイルドマンページが登場!

-g group通常、Sudoは、プライマリグループを、コマンドが実行されているユーザー(デフォルトではroot)のpasswdデータベースで指定されたグループに設定します。 -g(group)オプションを使用すると、Sudoはプライマリグループをgroupに設定して指定されたコマンドを実行します。グループ名の代わりにgidを指定するには、#gidを使用します。コマンドをgidとして実行する場合、多くのシェルでは、「#」をバックスラッシュ(「\」)でエスケープする必要があります。 -uオプションが指定されていない場合、コマンドは(rootではなく)呼び出し元のユーザーとして実行されます。いずれの場合も、プライマリグループはグループに設定されます。

許可がないため、おそらく使用できません。 sudoers(5)のマンページを正しく読んでいる場合、Runas_userを使用できるようにするには、sudoersエントリの-g部分にグループリストを明示的に指定する必要があります。

最初のものだけが指定されている場合、コマンドはリスト内の任意のユーザーとして実行できますが、-gオプションは指定できません。

5
womble