LINUX.ORG.RU

Контекст для vsftpd


0

1

Centos 5.5 + vsftpd

id ftpuser uid=503(ftpuser) gid=100(users) groups=100(users) context=root:system_r:unconfinet_t:SystemLow-SystemHigh

Нужно для vsftpd сделать контекст, чтобы ему разрешили цепляться к /var/www

Не подскажите как сделать?


Я бы вообще вырубил selinux.

power
()

Начнем с простого — «cat /selinux/enforced» что показывает?

context=root:system_r:unconfinet_t:SystemLow-SystemHigh


Я бы не сказал, что сделать su ftpuser и потом id — лучший способ узнать контекст работы фтп-демона. Правильнее таки ps -Zp $(pidof vsftpd).

Вообще, самый простой путь дать vsftpd те же права, что и апачу — запускать его в домене httpd_t. Но более правильным будет создание отдельного модуля, расширяющего полномочия ftpd_t. Какие именно полномочия нужны? Что показывает «cat /var/log/audit/audit.log | grep avc»?

nnz ★★★★
()

Для начала делаем так:

setsebool -P ftp_home_dir=1
разрешаем доступ пользователю по фтп в свою хомедиру.

Далее создаем файл vsftpd.te и пишем туда:

module vsftpd 1.0;

require {
        type ftpd_t;
        type httpd_sys_content_t;
        class dir { write search rmdir remove_name create add_name setattr };
        class file { write rename create unlink append setattr };
}

#============= ftpd_t ==============
allow ftpd_t httpd_sys_content_t:dir { write search rmdir remove_name create add_name setattr };
allow ftpd_t httpd_sys_content_t:file { write rename create unlink append setattr };

Или в общем случае SELinux переводится в Permissive mode, выполняются все действия с vsftpd которые будут необходимы в дальнейшем, затем

audit2allow -a -m vsftpd > vsftpd.te

После создания vsftpd.te в ручном или автоматическом режиме выполняем команды:

checkmodule -M -m -o vsftpd.mod vsftpd.te
semodule_package -o vsftpd.pp -m vsftpd.mod
semodule -i vsftpd.pp
Должно сработать...

P.S. не забыть вернуть Enforcing mode

qw3r
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.