Я пытаюсь лучше понять selinux и настройку локального ftp-репозитория на Centos7.
Я установил 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
Когда я пытаюсь перечислить свой доступный репозиторий, я получаю сообщение об ошибке на моем гостевом vm:
# 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
на 0
не рекомендуется, но оставляет setsebool ftpd_full_access
установленным на 1
, чтобы правильно настроить локальный ftp репозиторий? Я спрашиваю, есть ли правильный способ настроить репозиторий ftp с запущенным selinux?
Если кто-нибудь может указать мне правильное направление, я буду очень признателен.
У меня была такая же проблема. [ftp://192.168.122.1/repodata/repomd.xml:[Errno 14] Ошибка FTP 550 -Сервер отказал вам в переходе в указанный каталог]
Первоначально думал, что это связано с разрешением или какой-то проблемой безопасности, но это не так.
Когда я попытался загрузить файл repomd.xml с клиентского компьютера с помощью wget [wgetftp://192.168.122.1/repodata/repomd.xml] , он сказал, что файл не найден.
В моем случае проблема заключалась в том, что в файле конфигурации /etc/vsftp.conf мой каталог реподанных должен был быть /var/ftp(anon _root=/var/ftp/pub ), но я хранил под /var/ftp/. Ожидается, что «repodata/repomd.xml» будет помещен в «/var/ftp» в соответствии с настройками в vsftp.conf
.Затем я просто переместил свои подкаталоги внутрь /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#
У меня была та же проблема после того, как я перепутал метки моего ftp-каталога, и мне пришлось вручную устанавливать типы SELinux, чтобы пользователи FTP могли видеть файлы:
sudo chcon -Rt public_content_t /var/ftp/