スクリプトの場合、パスワードプロンプトなしのsudoが必要です。どこで私は間違えましたか?


9

私はsudoグループに大丈夫です:

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)

私のシュドレでは、私は適切な設定をしているようです:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL

コメントのない最後の行です。

しかし、私がしようとするgit pullと、パスワードを再入力するように求められます:

$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:

コンソールにログインしている場合は問題ありませんが、スクリプトでは受け入れられません。では、sudoグループの誰もがパスワードを再入力せずにwww-dataとしてgit pullできるようにするにはどうすればよいですか?

私の名前を直接入力すると:

molot ALL=(ALL) NOPASSWD: ALL

わたしにはできる。しかし、明らかに、sudoグループのマリアンやその他のユーザーには適していません。私がマニュアルを理解している限り、ユーザー名とグループ名の両方が最初のファイルで機能するはずです。


できませんsudo -u www-data ./your_script.shか?スクリプトの目的は何ですか?
jimbobmcgee 14

@jimbobmcgeeこれはgitフックなので、何も付加できません。これはgitの変更をプッシュしたユーザーによって呼び出され、私はそれを回避する方法を見つけられませんでした。
Mołot

最初のフィールド(sudoersファイル形式の簡単な理解が正しい場合)は、呼び出し元のユーザーのユーザー名です。ワイルドカード*、またはgitフックを実行しているユーザーに置き換えてみましたか?
CVn 2014

ここで述べ @MichaelKjörlingは、最初のフィールドにユーザーとグループの両方を書き込むことができるはずです。*動作しません。私の名前を直接入力することは私にとっては効果的ですが、sudoグループの他のユーザーにとっては明らかではありません。
Mołot

@MichaelKjörlingありがとう、あなたのコメントで私は特別な文字を探すようになり、答えを見つけることができました:D編集:自己回答を削除し、同じ瞬間からサードパーティの回答を受け入れました。
Mołot

回答:


19

sudoersに関連する行がありません:

sudo ALL =(ALL:ALL)NOPASSWD:ALL

「sudo」という名前のユーザーに一致します。「sudoグループのすべてのユーザー」の場合、次のようになります。

%sudo ALL =(ALL:ALL)NOPASSWD:ALL

(最初の%記号に注意してください)。


1
ああそう何それ%%wheel意味。
nikhil 14

1

sudo visudo

次に、molotユーザー名を想定して、ファイルの最後に移動します。

molot ALL=(ALL) NOPASSWD: ALL

これは機能するはずですが、機能しない場合は投稿してください。


これは機能します。私のために。しかし、明らかに、マリアンやsudoグループの他のユーザーは対象外です。
Mołot

次に、ユーザーエイリアスを作成し(User_Alias)、特定のコマンドをrootとして実行する権限を付与します(Runas_Alias)。私はあなたがsudoersファイルウィキチェックアウトすることができ、あなたのグループがセットアップされるのか分からない help.ubuntu.com/community/Sudoers 本当に簡潔です。「ユーザー仕様」セクションを確認してください。これが役立つはずです。
Jugurtha Hadjar 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.