Proftpd 使用者無法在主目錄中寫入/刪除
我正在嘗試在 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_t
orpublic_content_rw_t
。你可以用chcon
這個。chcon -R -t httpd_sys_content_t /var/www
應用這些設置後重新啟動您的 FTP 伺服器,您應該一切順利。
如果您想要一些更深入的資訊,請參閱此文件。