我试图更好地了解 selinux 并在 Centos7 上配置本地 ftp 存储库。
我安装vsftpd
在我的主机上。
我在我的主机上创建了一个存储库:
/var/ftp/pub/centos7
EFI
EULA
GPL
images
isolinux
LiveOS
Packages
repodata
RPM-GPG-KEY-CentOS-7
RPM-GPG-KEY-CentOS-Testing-7
TRANS.TBL
当我尝试列出可用存储库时,我的来宾虚拟机上出现错误:
# yum repolist
Loaded plugins: fastestmirror
ftp://X.X.X.X/pub/centos7/repodata/repomd.xml: [Errno] FTP Error 550 - Server denied you to change to the given directory
Trying other mirror/
ftp://X.X.X.X/pub/centos7/repodata/repomd.xml: [Errno] FTP Error 550 - Server denied you to change to the given directory
Trying other mirror/
repo id repo name status
local-repo Centos7 Repository 0
repolist: 0
但是,如果我setenforce 0
或setsebool ftpd_full_access 1
我的存储库有效。
repo id repo name status
local-repo Centos7 Repository 3,723
repolist: 3,723
显然不建议保留,但是否保留setenforce
设置为配置本地 ftp 存储库的正确方法?我想问的是,是否有正确的方法来配置运行 selinux 的 ftp 存储库?0
setsebool ftpd_full_access
1
如果有人能指出我正确的方向,我将不胜感激。
答案1
在弄乱 ftp 目录的标签后,我遇到了同样的问题,并且必须手动设置 SELinux 类型以允许 FTP 用户查看文件:
sudo chcon -Rt public_content_t /var/ftp/
答案2
我遇到过同样的问题。 [ftp://192.168.122.1/repodata/repomd.xml:[Errno 14] FTP 错误 550 - 服务器拒绝您更改至给定目录]
最初认为这是一个许可或某种安全问题,但事实并非如此。
当我尝试使用 wget [wget 从客户端计算机下载repomd.xml 文件时ftp://192.168.122.1/repodata/repomd.xml]它说找不到文件。
就我而言,问题是,在配置文件 /etc/vsftp.conf 中,我的 repodata 目录应该是 /var/ftp (anon_root=/var/ftp/pub)但我一直保存在/var/ftp/下。它期望根据 vsftp.conf 中的设置将“repodata/repomd.xml”放置在“/var/ftp”下
然后我将我的子目录移到 /var/ftp::
root@uday-linux:/var/ftp# pwd
/var/ftp
root@uday-linux:/var/ftp# ls
openstack-queens-rdo-repo
root@uday-linux:/var/ftp# ls openstack-queens-rdo-repo/
openstack-queens rdo-qemu-ev repodata rhel-7-server-extras-rpms rhel-7-server-optional-rpms rhel-7-server-rh-common-rpms rhel-7-server-rpms
root@uday-linux:/var/ftp# ls
openstack-queens-rdo-repo
root@uday-linux:/var/ftp# mv openstack-queens-rdo-repo/* .
root@uday-linux:/var/ftp# rmdir openstack-queens-rdo-repo
root@uday-linux:/var/ftp# ls
openstack-queens rdo-qemu-ev repodata rhel-7-server-extras-rpms rhel-7-server-optional-rpms rhel-7-server-rh-common-rpms rhel-7-server-rpms
root@uday-linux:/var/ftp#
root@uday-linux:/var/ftp#