EC2サーバーに権限がなくてファイルが移動できない時の対処法。【AWS】

エラー画像

・EC2サーバーにファイルをアップロードできない
・ディレクトリに権限付与を行う方法

google adsenceのads.txtをEC2インスタンスにFTP送信しようとしたところ、下記のような権限エラーが出ておけませんでした。

Transmitアップロードできない

こちらのエラーの原因確認と対処法を紹介します。

確認

置き先のファイルの権限情報を確認します。

EC2インスタンスにSSH接続を行い、下記コマンドでファイルを置きたいディレクトリ先(今回の場合html/)の権限を確認します。

ll
linux権限確認画面

見てみると「html」のフォルダ(今回ファイルがおけなかった場所)は所有者とグループがwww-dataであることがわかります。

権限が「drwxr-xr-x」となっており、所有者でないと書き込みができない(ファイルを作れない・置けない)状態になっています。

ついでにFTP送信を行う「ubuntu」ユーザがwww-dataに所属しているか確認してみます。

グループ内のユーザー確認は下記のコマンドを実行します。(はグループ名、今回の場合www-data)

getent group <GROUP_NAME>
グループ確認

確認したところwww-dataグループにはubuntuが入っているようですね。

そのため、www-dataグループに書き込み権限を付与すれば解決しそうです。

対処法

ではwww-dataに権限を付与していきます。

※ちなみにグループにもしユーザーがいなかった場合、グループにユーザを追加する必要があります。「usermod -aG GROUPS USER」でグループにユーザを追加できるので、ユーザがグループにいない場合は左記のコマンドを実行してください。

権限の付与にはchmodを使います。今回は755から775に変換します。※

コマンドは下記を実行します。

sudo chmod 775 <FILE_NAME>
権限確認画面

権限が変更されているのを確認できました。

※数字の意味は以下の図を参考にしてみてください。

権限:数字の意味

最終確認

試しにFTPソフトで実行してみたところ、無事送信できているのが確認できました。

アイキャッチ実行画面

以上です。

誰かの参考になれば幸いです。