Proftpd用户不能在主目录中写入/删除

我想在/ var / www / html目录中设置一个可以读/写/删除/ etc文件的centos用户。 在这里有一些帮助,我得到了用户能够login和查看文件,但现在他们不能上传/删除等。

我创build了一个UID / GID为500的用户“ftpuser”,一个有效的shell / bin / sh和一个/ var / www /

我把/ var / www / html的所有者改为了ftpuser.ftpuser [&也试过了0777]

该用户应该能够在/ var / www / html /目录中读取/写入/删除文件。

这里是proftpdconfiguration:

ServerName "ProFTPD server" ServerIdent on "FTP Server ready." ServerAdmin root@localhost ServerType standalone DefaultServer on VRootEngine on #DefaultRoot ~ !adm DefaultRoot /var/www/ VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf AuthPAMConfig proftpd AuthOrder mod_auth_pam.c* mod_auth_unix.c #PersistentPasswd off UseReverseDNS off User nobody Group nobody MaxInstances 20 UseSendfile off LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" # Global Config - config common to Server Config and all virtual hosts # See: http://www.proftpd.org/docs/howto/Vhost.html <Global> Umask 022 AllowOverwrite yes <Limit ALL SITE_CHMOD> AllowAll </Limit> </Global> <Directory /var/www> AllowOverwrite yes <Limit ALL> AllowAll </Limit> </Directory> <Limit LOGIN> AllowUser ftpuser DenyALL </Limit> 

我不知道为什么这不起作用。 有没有人看到我在做什么错了?

这听起来像是SELinux在这里的方式。 如果您不希望SELinux阻止ftp在系统的任何位置写入文件,则需要打开allow_ftpd_full_access布尔值。 首先,运行以下命令来检查当前是启用还是禁用:

getsebool allow_ftpd_full_access

如果它告诉你它已经closures,使用这个命令启用它(整个系统可能需要一分钟左右的时间,所以要耐心等待):

setsebool -P allow_ftpd_full_access = 1

另外,因为您将用户的homedir设置为/ var / www,您还需要将ftp_home_dir设置为On。

setsebool -P ftp_home_dir = 1

设置homedir时, user_home_t安全上下文可能也设置在/ var / www上。 将其设置为更公开的内容,如httpd_sys_content_tpublic_content_rw_t 。 你可以用chcon这个。

chcon -R -t httpd_sys_content_t / var / www

应用这些设置后重新启动您的FTP服务器,你应该很好去。

如果您需要更深入的信息,请参阅本文档 。