我需要允许用户匿名上传文件到 FTP 服务器。他们不应该能够看到任何其他文件,也不应该下载文件。这是一台 CentOS 5.2 服务器。我有一个单独的分区用于上传区域(安装在 /ftp)。
我尝试设置 vsftpd,并遵循我能找到的所有说明/建议。但是,当用户登录并尝试传输文件时,它会抛出“553 无法创建文件。”错误。如果我执行“pwd”,它会将目录显示为“/”,而不是“/ftp/anonymous”的 anon_root。任何更改远程目录的尝试都会以“550 更改目录失败”结束。我有一个可写入的子目录“/ftp/anonymous/incoming”,用于上传
SELinux 处于宽容模式。
我正在运行 vsftpd 2.0.5 版本 16.el5。
这是 vsftpd.conf 文件:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=002
anon_umask=007
file_open_mode=0666
anon_upload_enable=YES
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=inftpadm
xferlog_std_format=YES
nopriv_user=nobody
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
ftp_username=inftpadm
anon_root=/ftp/anonymous
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
anon_world_readable_only=NO
dirlist_enable=YES
有人可以帮忙吗?
答案1
配置文件非常简单。以下是你出错的地方:
anon_mkdir_write_enable=否 听=是 anon_other_write_enable=否 anon_mkdir_write_enable=否
您有一个重复的条目(这应该不是什么大问题),并且您已将 anon_other_write_enable 设置为 NO。此外,如果您要使用第二行,请确保已在 inetd/xinetd 中禁用该服务。
更改 SELinux 上下文后,您还需要重新启动才能重新标记文件系统。运行状态查看当前上下文。
答案2
我知道这是一个基本问题,但你检查过目录所有权和权限吗?如果检查过,你能用“ls -al”显示它们吗?