シンボリックリンクディレクトリの権限の問題

シンボリックリンクディレクトリの権限の問題

Ubuntu 14.04で実行されるWebアプリケーションがあります。 AWS のサーバーにアプリケーションをデプロイすると、アプリケーションのデプロイサービスは自動的に個別のユーザー、グループ、および権限を作成します。

nginxアプリケーションは、というグループの一部であるというユーザーとして実行されますnginx。 SSHに接続するときは、他のユーザーとして次の作業を行う必要がありますmichaelmichael。私はnginxそのグループのメンバーではありません。

アプリケーションには、特定の設定を手動で初期化するためにユーザーとして書き込むこと/tmp/cacheができるディレクトリがあります。michaelmichaelこれを試みると、「許可拒否」エラーが発生します。

次のステップは、フォルダに対する権限を確認することでした。状況が混乱し始めます。このディレクトリは、アプリケーションの複数の反復で参照できるようにシンボリックリンクされています。たとえば、私が書こうとしている実際のディレクトリは次のとおりです。このディレクトリに/var/deploy/my-app/web_head/releases/20150221204050/tmp/cacheある場合はls -l、次の内容が表示されます。

lrwxrwxrwx 1 nginx nginx 43 Feb 21 20:40 /var/deploy/my-app/web_head/releases/20150221204050/tmp/cache -> /var/deploy/my-app/web_head/shared/cache

ls -l /var/deploy/my-app/web_head/sharedが見ることができれば、これはcache次の権限を持つディレクトリです。

drwxrwxr-x 14 nginx nginx 4096 Feb 21 20:31 cache

それでは、このディレクトリに書き込むには、ユーザーをmichaelmichaelnginxグループに追加する必要がありますか? Symlinkディレクトリ(dir)またはディレクトリ自体(dir)の/releases/権限を変更する必要がありますかcache

答え1

明らかな答えが時々正しい答えであることもあります。ディレクトリcacheに書き込みが必要なので、cacheそのディレクトリに対する書き込み権限が必要です。これを行うことができるという事実は、ls -lそのディレクトリに必要なすべてのアクセス権があることを示しますreleases

nginxユーザーをグループに追加するか、ディレクトリモードcache(おそらく777)を変更して必要なアクセス権を取得できます。

関連情報