特定のユーザー(root以外のユーザー)でスクリプトを実行するにはどうすればよいですか?それはすべてですか?
sudo su - john /usr/share/script.pl
ユーザージョンに?
答え1
-c
に渡してsu
コマンドを実行できます。次のコマンドを実行できる場合はsudo
機能します。
sudo su - john -c "/usr/share/script.pl"
-
渡される環境はsu
ログイン時と同じであるため、スクリプトが環境変数(現在のパスなど)によって異なる場合は、調整する必要があります。
答え2
他の回答はあなたの特定の質問によく答えることができます。ここにいくつかの有用な説明があります。
su
=ユーザー切り替え
sudo
=ユーザーを切り替えてXを実行します(追加オプションなし、「ユーザー」は「ルート」です)
ほとんどのユーザーにはsu
使用しないと許可されませんsudo
。つまり、通常、パスワードを再入力するように求める前に、ユーザーが2回考えるようにします。
答え3
たとえば、-c オプションを使用します。
sudo su - john -c "/usr/share/script.pl"
または、上記のようにユーザーを定義する代わりに、次のコマンドを使用して特定のユーザーのcronジョブを定義できます。
crontab -u john -e
その後、cronを設定したら、特定のユーザーのcronジョブを追加し、root cronでユーザーを定義することをお勧めします。