私のsudoersファイル:
cat /etc/sudoers
...
USERHERE ALL = NOPASSWD: /bin/cp /home/USERHERE/foo/in.csv /home/anotheruser/in.csv
...
またよさそうだ:
USERHERE@notebook:~/foo$ sudo -l
Matching Defaults entries for USERHERE on this host:
env_reset, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User a may run the following commands on this host:
(root) NOPASSWD: /bin/cp /home/USERHERE/foo/in.csv /home/anotheruser/in.csv
(ALL : ALL) ALL
USERHERE@notebook:~/foo$
しかし、試してみると、パスワードの入力を求められます。なぜですか?
USERHERE@notebook:~$ sudo /bin/cp /home/USERHERE/foo/in.csv /home/anotheruser/in.csv
[sudo] password for USERHERE:
Ubuntu 12.04を使う
答え1
visudoを使用して、以下のようにsudoersファイルを編集します。
USERHERE ALL= (root) NOPASSWD: /bin/cp /home/USERHERE/foo/in.csv /home/anotheruser/in.csv
パスワードを求められません。さらに情報が必要な場合は、回答を確認してくださいここ。
テスト
私のコンピュータで次のことを行いました。ファイルをvisudo
編集するには、まずrootユーザーとしてコマンドを実行します。sudoers
次に、ユーザーが許可するように次の項目を追加しました。ラメッシュネットワーク再起動コマンドを実行します。
ramesh ALL = (root) NOPASSWD: /etc/init.d/network restart
次に、su ramesh
そのユーザーとしてログインします。これでコマンドを実行しましたが、/etc/init.d/network restart
パスワードの入力を求められません。