SFTP サーバとして vsftpd を使用するメモです。
Ubuntu 22.04 を仮定しています。
$ sudo adduser ftp-example
※ Ubuntu(や Debian)は adduser
と useradd
は機能が異なります。useradd
はホームディレクトリなどを作成しません。
※ Ubuntu(や Debian)は deluser
と userdel
は機能が異なります。
$ userdel ユーザー名 // ユーザーを削除
$ userdel -r ユーザー名 //ユーザーのホームディレクトリも削除
$ deluser --remove-home ユーザー名 // ↑と同じ
(通常必要ないが)必要があれば sudo を有効化します。
$ sudo gpasswd -a ftp-example adm
$ sudo gpasswd -a ftp-example sudo
Apache/PHP 実行ユーザー:グループが www-data:www-data と仮定します。
$ sudo usermod -g www-data ftp-example
// 確認
$ id ftp-example
uid=1002(ftp-example) gid=33(www-data) groups=33(www-data)
$ sudo apt install vsftpd
/etc/vsftpd.conf
※ FTP 接続をホームディレクトリ以下に制限します。
/etc/vsftpd.chroot_list を作成して、上記制限を受けないユーザーを記載します。
chroot_local_user=YES
chroot_list_enable=YES // chroot_list_file を有効化
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
FTP のウェルノウンポートはコントロール用が 20, データ送信用が 21 です。
SFTP は SSH を使用するので 22 です。
sshd でパスワード認証を有効化します。
鍵認証の場合は必要ありません。
sudo vim /etc/ssh/sshd_config
- PasswordAuthentication no
+ Match User ftp-example
+ PasswordAuthentication yes