Linux - 共通事項 - FTP - vsftpd
- 1. 概要
- 2. インストール
- 3. 有効化・起動
- 4. Firewall の設定
- 5. ドットファイルを表示させるには
- 6. ASCII 転送モードを許可する
- 7. 500 OOPS: priv_sock_get_cmd
1. 概要
設定のたぐいをあちこちに書き散らしていますが、機会があればここにまとめていこうと思っています。
「Linux」では、「FTP」サーバとしては、「vsftpd」を使用するのが一般的なようです。
2. インストール
ディストリビューションによって、あらかじめインストールされている場合もありますが。
インストールするのであれば、「vsftpd」レベルであれば、コマンドでインストールするのが手っ取り早い。
「RedHat」系であれば
yum install vsftpd
「Ubuntu」系であれば
apt install vsftpd
3. 有効化・起動
インストール後に状況を見てみます。
$ systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
「Ubuntu」系では、インストール直後に、有効化して起動されていることの方が多いですが。
「RedHat」系では、有効化・起動が必要なことが多いです。
有効化は
systemctl enable vsftpd.service
起動は
systemctl start vsftpd.service
4. Firewall の設定
「vsftpd」を起動しても外部から接続できないとき。
まずは、「Firewall」の設定を疑います。
「root」ユーザ権限で。
$ systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-02-25 08:02:13 JST; 1h 27min ago
Docs: man:firewalld(1)
Main PID: 699 (firewalld)
Tasks: 2 (limit: 4700)
Memory: 35.5M
CGroup: /system.slice/firewalld.service
mq699 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid
2月 25 08:01:51 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
2月 25 08:02:13 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
この場合は、「Firewall」が起動しています。
「FTP」のポートを空けるのが正式なやり方ですが、手っ取り早く、「FTP」をちょっとだけ通したいなら、止めちゃいます。
$ systemctl stop firewalld.service
5. ドットファイルを表示させるには
デフォルトでは「.」(ドット) で始まるファイルは、リストされないようです。
リストされるようにするには
/etc/vsftpd/vsftpd.conf
に1行
force_dot_files=YES
加えて、再起動すればリストされるようになります。
6. ASCII 転送モードを許可する
漢字コードに関して、クライアントマシンが「Shitf-JIS」で、ホストが「EUC」のとき。
「FFFTP」で、漢字変換して転送した場合、改行コードの面倒を見てくれることになっていますが・・・。
「vsftpd」の場合は、デフォルトの設定のままだと、改行コードが変換されません。
「CentOS 6.8」では
/etc/vsftpd/vsftpd.conf
の
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
を
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES
と変更して再起動することにより、改行コードが変換されるようになります。
7. 500 OOPS: priv_sock_get_cmd
本項は、「vsftpdを設定した - Qiita」を参考にさせていただきました。
いくつかのディストリビューションによっては(例えば「OpenMandriva 4.0」)、クライアントからのコマンドで
500 OOPS: priv_sock_get_cmd
てな感じでエラーになることがあります。
こういうときは、「vsftpd.conf」に、以下の2行を加えます。
seccomp_sandbox=NO
allow_writeable_chroot=YES
|
|