web-dev-qa-db-ja.com

sudoers-NOPASSWDとsudoeditを同時に使用するにはどうすればよいですか?

/ etc/sudoersでNOPASSWDとsudoeditを同時に使用するための構文は何ですか?私はこれを試しました:

john ALL=(ALL) NOPASSWD: sudoedit /path/to/file

しかし、それでもパスワードの入力を求められます。

1
Pavel Tankov

sudoersファイル

これらのいずれかを実行できるはずです。

  1. このような:

    john ALL=(ALL) NOPASSWD: sudoedit
    
  2. またはこれ:

    john ALL=(ALL) NOPASSWD: sudoedit /path/to/file
    
  3. 最後に、あなたもこのようにすることができます:

    Cmnd_Alias SOMECMD = sudoedit /path/to/file
    john ALL=(ALL) NOPASSWD: SOMECMD
    

これらの定義の1つを配置したら、次のように呼び出します。

sudoedit /path/to/file

詳細

次のようにSudoコマンドプレフィックスを付けて呼び出す必要はありません。

Sudo sudoedit /pat/to/file

Sudoを自動的に処理します。これは、昇格された特権を持つエディターを呼び出すSudo -e /pat/to/fileと同等です。

Sudo/sudoeditのmanページからの抜粋

-e          The -e (edit) option indicates that, instead of running a command, 
            the user wishes to edit one or more files. In lieu of a command, the 
            string "sudoedit" is used when consulting the sudoers file.  If the 
            user is authorized by sudoers the following steps are taken:

               1.  Temporary copies are made of the files to be edited with the 
                   owner set to the invoking user.

               2.  The editor specified by the Sudo_EDITOR, VISUAL or EDITOR 
                   environment variables is run to edit the temporary files.  
                   If none of Sudo_EDITOR, VISUAL or EDITOR are set, the first 
                   program listed in the editor sudoers variable is used.

               3.  If they have been modified, the temporary files are copied 
                   back to their original location and the temporary versions 
                   are removed.

上記の環境変数の1つに、たとえばvimgeditなど、使用するエディターの名前を設定することで、エディターをオーバーライドできます。

1
slm