Centos

Proftpd 使用者無法在主目錄中寫入/刪除

  • February 26, 2016

我正在嘗試在 centos 中設置一個使用者,該使用者可以在 /var/www/html 目錄中讀取/寫入/刪除/etc 文件。在這裡的一些幫助下,我讓使用者能夠登錄和查看文件,但現在他們無法上傳/刪除等。

我創建了一個使用者 ‘ftpuser’,其 UID/GID 為 500,一個有效的 shell /bin/sh 和一個 /var/www/ 的主目錄

我將 /var/www/html 的所有者更改為 ftpuser.ftpuser

$$ & tried 0777ing it as well $$ 該使用者應該能夠讀取/寫入/刪除 /var/www/html/ 目錄中的文件。

這是proftpd配置:

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

如果它告訴您它已關閉,請使用此命令啟用它(可能需要一分鐘左右才能在整個系統中應用,所以請耐心等待):

setsebool -P allow_ftpd_full_access=1

此外,由於您將使用者的 homedir 設置為 /var/www,因此您還需要將設置ftp_home_dir設置為 On。

setebool -P ftp_home_dir = 1

當您設置 homedir 時,user_home_t安全上下文可能也在 /var/www 上設置。將其設置為更公開的內容,例如httpd_sys_content_tor public_content_rw_t。你可以用chcon這個。

chcon -R -t httpd_sys_content_t /var/www

應用這些設置後重新啟動您的 FTP 伺服器,您應該一切順利。

如果您想要一些更深入的資訊,請參閱此文件。

引用自:https://serverfault.com/questions/560232