質問: パスワードなしで別のユーザーとしてスクリプトを実行する方法 user2として実行する必要があるscript.shがあります。ただし、このスクリプトは私のアプリケーションのuser1でしか実行できません。次のコマンドを実行してください。su user2 -c script.sh しかし、パスワードなしで実行することができます。user1ではuser2の下でのみscript.shを実行できるだけで、他には何も実行できないため、これも非常に制限的にする必要があります。私はsudoersファイルを使ってこれをやろうとしました、そして、何時間もの試みの後にたまたま混乱しました。誰かがこれをどのように達成できるかの明確な例を(use sudoersのような一般的なものではなく)提供できれば、それは大いに感謝されるでしょう。
回答: `su -c "your command right here" -s /bin/sh username` 上記のコマンドは正しいですが、red hatではselinuxがそれを強制している場合、cronが別のユーザーとしてスクリプトを実行することを許可しません。例execl: couldn't exec /bin/sh execl: permission deniedsetroubleshootとsetoolsをインストールし、それを可能にするために以下を実行する必要がありました。yum install setroubleshoot setools sealert -a /var/log/audit/audit.log grep crond /var/log/audit/audit.log | audit2allow -m mypol semodule -i mypol.p