新しいユーザーがsudo
を実行できるようにする必要があります このユーザーはcrontab
にいるため、パスワードを要求する必要はありません。 .sh
sudo
を使用します 一部のコマンドの場合。
ubuntuサーバー16.04x64で新しいユーザーを作成しました
adduser my-user sudo
gpasswd -a my-user sudo
次に、visuo
を使用します この質問に基づいて、この行を追加しました
my-user ALL=(ALL) NOPASSWD : ALL
その後、再起動しました
再起動後、my-user
を使用してログインしました sudo clearを実行しようとしましたが、sudoパスワードを要求されます。
注 :crontab -e my-user
を使用してcrontabを追加しました したがって、スクリプトはmy-user
として実行されると思います。 。実際、crontabbedスクリプトがクラッシュし、ログにsudo
について通知されます。 パスワードの要求。 my-suer
でファイルを作成できるようにするには、この方法でスクリプトを実行する必要があります。 所有者として。
いくつかの手順/行が不要かどうか、およびmy-user
を有効にする方法を教えてください sudo
を実行します パスワードリクエストなし。
ありがとう
PS:この質問を見ましたが、機能させることができないので、状況が異なるため、より正確な説明が必要です。crontabスクリプトを実行していて、sudoパスワードを要求しないようにする必要があります
承認された回答:
ルートのcrontab
からプロセスを実行する場合があります 初期ファイルの所有権とrwx
で問題が発生する可能性があります モード;それらは正しく保存されない可能性があります。
いずれにせよ:
1)新しいユーザーを作成するには、シンプルに保ちます:
$ sudo deluser my-user # if "my-user" is a regular user
$ adduser my-user
$ sudo gpasswd -a my-user sudo
2)NOPASSWD
を含む新しいエントリを含める sudoersまたはファイル内のタグ(例:/etc/sudoers.d/60_my-user_rules
)、コロンをタグに貼り付けます。つまり、 NOPASSWD:
スペースが点在しているので、これまで見たことがありません。年のルールは次のようになります。
my-user my-host = NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]
(ALL)
を追加する NOPASSWD:
の前 ルールのデフォルトは(ALL:ALL)
であるため、オプションです。 とりあえず。ただし、root権限でcmd / scriptを実行するだけでなく、特定のユーザー(spec-user
)として実行することもできます。 )または特定のグループのメンバーとして(spec-group
) または両方。その場合、ルールは次のようになります。
my-user my-host = ([spec-user][:spec-group]) NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]
これにより、実際には、パスワードなしのsudo処理が1人のユーザー、1つのホスト、および1つのコマンドに制限されます。そのコマンドにオプションのパラメーターを指定することで、このルールを強化できます。その場合、ルールはその/それらの正確なパラメータにのみ適用されます。
スクリプトの場合、スクリプトが変更されていない場合にのみルールが適用されるようにすることで、このルールをさらに強化できます。 。これは、スクリプトの乗っ取りを回避する方法です。これは、cmd-aliasingと/etc/sudoers.d/60_my-user_rules
でのSHA-sumの指定によって行われます。 。
HTH。その回答で問題が発生した場合は報告してください。
関連:iTunesなしで完全なiPhoneバックアップ?