[問題] 請問ftp存取/var/www/html的權限問題

作者: dream1124 (全新開始)   2019-02-21 20:14:01
大家好
想請問一個 ftp 不能存取 /var/www/html 資料夾內容的問題原因,
以及合適的權限設定建議。
我想在以 apache httpd 提供服務的 centos 7 (3.10.0-957.5.1.el7.x86_64 #1 SMP)
上面架設 Wordpress 網站。
因為我在 Windows 架設 wordpress 時,知道管理者若要 Wordpress 系統代為
下載與安裝擴充套件,那就要提供一個 FTP 帳號給 Wordpress 系統上傳擴充套件
到網站的套件資料夾,所以就參考下面的文章架設了 vsftpd。
http://prolinuxhub.com/configure-ftp-access-on-centos-7-and-grant-
user-access-to-website/
網址很長,因此縮在下面
https://goo.gl/kGjY7S
以下是我有調整到的 vsftp 設定
anonymous_enable=NO
local_enable=YES
write_enable=YES
但是在了解 chroot 和 vsftp 的機制後,還是讓 chroot_local_user 維持 NO
接著為了給 wordpress 的 ftp 帳號存取到 /var/www/html 的內容,我照上面文章的參
考做法,建立了 wordpress 專用的 ftp 帳號以及使用者,
然後也建立了專用的群組 ftp-access-group,並且把 /var/www/html 的群組變更為
ftp-access-group,最後再調整 /var/www 的權限並開放 SGID。
[使用者名稱@centos-7 home]$ sudo ls -al /var/www
total 0
drwxrwsr-x. 4 root root 33 Feb 20 05:44 .
drwxr-xr-x. 20 root root 276 Feb 20 05:47 ..
drwxr-sr-x. 2 root root 6 Nov 5 01:47 cgi-bin
drwxrwsr-x. 2 root ftp-access-group 24 Feb 20 05:47 html
現在遇到的問題是當我遠端到電腦上,本地以 yum 找得到的 ftp client 連到
localhost 之後,
雖然可以看到家目錄裡面的檔案,可是竟然完全看不到 /var/www/html 的內容。
連線的過程如下:
[使用者名稱@centos-7 home]$ ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:使用者名稱): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /var/www/html
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||55575|).
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).
ftp>
照理說,ftp 使用者有該目錄的存取權限,而vsftpd也是以 root 身份執行的系統服務,
應該不會這樣吧~
原本從網路上求解後,以為是 SELinux 設定的問題,可是以
cat /var/log/messages | grep SELinux
調閱 /var/log/messages 卻只有下列訊息。
跟鳥哥說 SELinux 會有的過濾訊息不太一樣。
Feb 20 12:25:57 centos-7 kernel: SELinux: Initializing.
Feb 20 12:26:07 centos-7 kernel: SELinux: Class bpf not defined in policy.
Feb 20 12:26:07 centos-7 kernel: SELinux: the above unknown classes and
permissions will be allowed
Feb 20 12:26:07 centos-7 systemd[1]: Successfully loaded SELinux policy in
311.322ms.
請問有可能是哪裡設定錯誤呢?
謝謝大家指教~
作者: kenwufederer (Nash)   2019-02-23 12:26:00
其實把SELinux關掉就好…
作者: alan23273850   2019-02-24 14:33:00
我都把 /var/www/html 的user和group設成 www-data供您參考
作者: pizzahut (...)   2019-02-25 15:22:00
如果會因為關掉SELinux被入侵那表示外面的防火牆就有問題了..
作者: holishing   2019-02-25 20:08:00
你可以把selinux設定成permissive啊,如果出問題也找得到log,之後要啟用也比較知道哪邊可能會因此需要調整selinux 相關的 log 沒記錯的話應該都在/var/log/audit那邊
作者: lantw44 (#######################)   2019-02-28 22:53:00
如果你有裝 setroubleshoot 可以設定當 SELinux 發出警告的時候主動寄信通知,同時也會解釋問題發生原因相關 man page 像是 httpd_selinux 和 ftpd_selinux 通常也會有些提示,雖然不見得跟你的使用情境完全相同再來就是 semanage / sesearch / audit2why 自己處理了

Links booklink

Contact Us: admin [ a t ] ucptt.com