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
それでは、このディレクトリに書き込むには、ユーザーをmichaelmichael
nginxグループに追加する必要がありますか? Symlinkディレクトリ(dir)またはディレクトリ自体(dir)の/releases/
権限を変更する必要がありますかcache
?
答え1
明らかな答えが時々正しい答えであることもあります。ディレクトリcache
に書き込みが必要なので、cache
そのディレクトリに対する書き込み権限が必要です。これを行うことができるという事実は、ls -l
そのディレクトリに必要なすべてのアクセス権があることを示しますreleases
。
nginx
ユーザーをグループに追加するか、ディレクトリモードcache
(おそらく777)を変更して必要なアクセス権を取得できます。