別のユーザーでスクリプトを実行しようとすると、権限が拒否されました。

別のユーザーでスクリプトを実行しようとすると、権限が拒否されました。

ソフトウェア(Etherpad)を起動するために別のユーザーとしてスクリプトを実行しようとしていますが、ルートでは次のように動作します。 su -c "/var/www/etherpad-lite/bin/run.sh" -s /bin/bash etherpadただし、次のエラーが発生します。bash: /var/www/etherpad-lite/bin/run.sh: Permission denied

私が取り組んでいる他のプロジェクトのために多くのものをインストールした後、動作が停止するまでこれはうまくいきました。どちらもイーサパッドには影響しません。

/var/log/auth.log は以下を示しています:

Aug 12 19:59:21 bhs1 su[7289]: Successful su for etherpad by root
Aug 12 19:59:21 bhs1 su[7289]: + /dev/pts/1 root:etherpad
Aug 12 19:59:21 bhs1 su[7289]: pam_unix(su:session): session opened for user etherpad by root(uid=0)
Aug 12 19:59:21 bhs1 su[7289]: pam_unix(su:session): session closed for user etherpad

いくつかの検索を実行して、この問題の考えられる原因をいくつか見つけましたが、私の問題に関連する原因はありません。

  • ファイルは777(-rwxrwxrwx)でchmoddされており、etherpadユーザーが所有しています。 700に類似する前に、権限の問題ではないことを確認するために777に変更しました。
  • ファイルシステムで noexec が有効になっていません。

私は専用サーバーでDebian 7.6を実行しています。

答え1

run.sh に「全員が読み取り」権限を付与できますが、/var/www/ に「root-man read」権限がある場合、「権限が拒否されました」というエラーメッセージが表示されます。

パス内のすべてのディレクトリの権限を確認する

/var/
/var/www/
/var/www/etherpad-lite/
/var/www/etherpad-lite/bin/

関連情報