[Ubuntu] FTP サーバーにアップロードできないとき

以前 Ubuntu に FTP サーバーを構築したことを書いた。

Docker で複数のサイトを立てる方法についても書いた。

さて、新たに別のサイトを追加で立てようと思い、docker-compose.yml を編集し新サイトの情報を追加した。そして、以下のコマンドを実行することで、docker-compose.yml の内容が反映され、新サイト用のコンテナが新規に起動した(docker を一旦止める必要はない)。

$ sudo docker-compose up -d

これで docker-compose.yml に記述した設定で新サイト用のディレクトリが自動作成される。

次に Mac の FTP クライアントの FileZilla でファイルをアップロードしようかと思ったら、エラーが出てアップロードができない。

最初はディレクトリのパーミッションを疑ったが、調べた限り問題なさそうだ。

しかし lftp でのアップロードを試してその原因が分かった。lftp に 553 エラーが表示されていたからだ。

環境:
・VMware vSphere Hypervisor 7.0U3g(英語環境)
・Ubuntu Server 20.04

553 エラーは書き込み権限が不足しているときに表示される。試しに以下のコマンドを実行してみると、対象ディレクトリの所有者がユーザーもグループも root になっていた。docker-compose で作成されるディレクトリは所有者が root になるようだ(最初に作ったサイトは手動でディレクトリを作成したのかもしれない)。

$ ls -l

そこで以下のコマンドで、対象ディレクトリのユーザー所有者およびグループ所有者を現在のユーザーに変更した。

$ sudo chmod {ユーザー名}:{ユーザー名} ./{ディレクトリ名}

これで FTP でのアップロードができるようになった。

つまりパーミッションのみでなく所有者情報も確認する必要があるということを学んだ。

参考:
Dockerfile、docker-compose.ymlを更新した後にやること #Docker - Qiita
https://qiita.com/nasuB7373/items/523f1392d87dffb5521d

Docker Composeにおける各種ファイルの変更時の反映 #Docker - Qiita
https://qiita.com/subretu/items/5857628534b53f29f5a3

パーミッションを理解する | [ ls -l ] Linuxコマンド - BioErrorLog Tech Blog
https://www.bioerrorlog.work/entry/what-is-file-permissions

アクセス権と状態の表示 (ls -l) (Solaris ユーザーズガイド (上級編))
https://docs.oracle.com/cd/E19683-01/816-3946/files-26/index.html

[Linux] 553エラーが出る時の対応|FTPクライアント -スグラボ-
http://blog.sugulab.com/?p=1646

FFFTP で 553 Could not create file. エラーがでたら | masomi79の日記
https://massumifukuda.work/wp/ffftp-で-553-could-not-create-file-エラーがでたら/

Linuxコマンド【 chown 】ファイルの所有者やグループを変更 - Linux入門 - Webkaru
https://webkaru.net/linux/chown-command/

[chown]ファイルやディレクトリの所有者を変更する方法 #Rails - Qiita
https://qiita.com/ren0826jam/items/d93770016e7d931a5983


この記事が気に入ったらサポートをしてみませんか?