このコマンドは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ファイルを比較しました(コメント行を除いて)それらは同じです。
私はこの問題を自分で抱えていて、それで解決できました
root ALL=(ALL:ALL) ALL
visudo
にあります。重要な部分は:ALL
。 sudoers 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
私は自分の周りに仕事を見つけました:
私のコンテキストでは、-gオプション(グループ)は必要ありません。それなしでコマンドが呼び出された場合、古いディストリビューションで動作します。