web-dev-qa-db-ja.com

sudo:すみません、ユーザーrootは実行を許可されていません

このコマンドはOpenSuSE 11.4では失敗します。

root@Host# Sudo -S -u "coreapp_customer1_d" -g "coreapp_customer1_d"  /bin/bash -l -c "mkdir -p /home/coreapp_customer1_d/.ssh"

このメッセージで:

Sorry, user root is not allowed to execute 
'/bin/bash -l -c mkdir -p /home/coreapp_customer1_d/.ssh' 
as coreapp_customer1_d:coreapp_customer1_d
on workdevel114.

しかし、それはOpenSuSE 12.3で動作します。

私は両方のシステムの/ etc/sudoersファイルを比較しました(コメント行を除いて)それらは同じです。

8
guettli

私はこの問題を自分で抱えていて、それで解決できました

root    ALL=(ALL:ALL) ALL

visudoにあります。重要な部分は:ALLsudoers man page はこれを言っています:

次の例では、ユーザーtcmが、ダイヤラグループを使用してモデムデバイスファイルにアクセスするコマンドを実行します。

tcmボルダー=(:dialer)/ usr/bin/tip、/ usr/bin/cu、\/usr/local/bin/minicom

この例ではグループのみが設定され、コマンドは引き続きユーザーtcmとして実行されることに注意してください。例えば。

$ Sudo -g dialer/usr/bin/cu

私のコンテキストでは-gは、グループが何に書き込むことができるかを知りたかったので、全体の要点でした。

Sudo -u nobody -g some_group find . -writable 2> /dev/null > /tmp/some_group_writable.txt
8
JonnyJD

私は自分の周りに仕事を見つけました:

私のコンテキストでは、-gオプション(グループ)は必要ありません。それなしでコマンドが呼び出された場合、古いディストリビューションで動作します。

1
guettli