看板 Linux 關於我們 聯絡資訊
大家好 想請問一個 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. 請問有可能是哪裡設定錯誤呢? 謝謝大家指教~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.187.150 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1550751246.A.9C8.html 結果發現是 SELinux 造成的問題,只是不知道為什麼沒有日誌紀錄,還在研究設定方法
kenwufederer: 其實把SELinux關掉就好… 02/23 12:26
是沒錯,我只是怕這樣會讓系統比較容被入侵…
alan23273850: 我都把 /var/www/html 的user和group設成 www-data 02/24 14:33
alan23273850: 供您參考 02/24 14:34
※ 編輯: dream1124 (1.162.167.94), 02/24/2019 16:22:39
pizzahut: 如果會因為關掉SELinux被入侵那表示外面的防火牆就有問 02/25 15:22
pizzahut: 題了.. 02/25 15:22
holishing: 你可以把selinux設定成permissive啊,如果出問題也找得 02/25 20:08
holishing: 到log,之後要啟用也比較知道哪邊可能會因此需要調整 02/25 20:09
holishing: selinux 相關的 log 沒記錯的話應該都在/var/log/audit 02/25 20:10
holishing: 那邊 02/25 20:10
lantw44: 如果你有裝 setroubleshoot 可以設定當 SELinux 發出警告 02/28 22:53
lantw44: 的時候主動寄信通知,同時也會解釋問題發生原因 02/28 22:55
lantw44: 相關 man page 像是 httpd_selinux 和 ftpd_selinux 通常 02/28 22:57
lantw44: 也會有些提示,雖然不見得跟你的使用情境完全相同 02/28 23:01
lantw44: 再來就是 semanage / sesearch / audit2why 自己處理了 02/28 23:01