[问题] 请问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