vsftpd
に問題があります。
ここに私の情報があります:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
# uname -a
Linux ip-10-150-53-42.ec2.internal 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
# rpm -q vsftpd
vsftpd-3.0.2-9.el7.x86_64
# ll -d /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS
drwxr-xr-x. 2 root root 98 Jun 13 20:33 /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS
# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.pam
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
local_root=/var/www/html/$USER
user_sub_token=$USER
hide_ids=YES
nopriv_user=Apache
virtual_use_local_privs=YES
log_ftp_protocol=YES
xferlog_std_format=YES
syslog_enable=YES
# getsebool ftp_home_dir
ftp_home_dir --> on
#
vsftpd
内で仮想ユーザー機能を利用しようとしていますが、認証部分は問題なく機能しますが、残念ながらwrite
は機能しません。
# ls -ld /var/www/html/
drwxr-xr-x. 5 root root 71 Jun 14 13:45 /var/www/html/
# ls -ld /var/www/html/test/
drwxrwxr-x. 2 Apache apache 30 Jun 14 14:45 /var/www/html/test/
# cd /etc/
# ftp 0
Connected to 0 (0.0.0.0).
220 (vsFTPd 3.0.2)
Name (0:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put fstab
local: fstab remote: fstab
227 Entering Passive Mode (127,0,0,1,202,176).
553 Could not create file.
ftp> 221 Goodbye.
#
SELinuxを無効化(許容)および有効化(強制)しようとしましたが、それでも同じ望ましくない結果(
何が足りないのですか?
nopriv_user
がApache
に設定されていても、どういうわけかvsftpd
がftp
に設定されていると考えていたのに、なぜ(おそらくバグ?)わかりません。
# grep ^nopriv_user vsftpd.conf
nopriv_user=Apache
#
...それでも、ファイルをアップロードすると、nopriv_user
がftp
に設定されているようになります。
# ls -ld test test/13924501638_26bbdf9023_o.jpg
drwxrwxr-x. 2 Apache ftp 41 Jun 17 13:01 test
-rw-r--r--. 1 ftp ftp 2885458 Jun 17 13:01 test/13924501638_26bbdf9023_o.jpg
#
したがって、何か問題がない限り、バグとしてvsftpd
に送信する必要があります。