Intereting Posts
Текст прокрутки Плимута GNU Parallel – grepping n строк для m регулярных выражений получение последних логинов с $ time nftables ip set несколько таблиц Как я могу прокручивать выходные данные моей команды watch? wget неправильно конвертирует URL-адреса, если указано –convert-links «Настойчивость» замедляет загрузку и завершение работы на USB-Linux? Выясните, какую команду я запускал в последний раз, которая начинается определенным образом? Как найти несколько строк в файлах? Поиск строки во многих файлах на HP-UX Как настроить RTLinux на ноутбуке x64, чтобы вести себя в реальном времени? хром (хром) не загружается домашняя страница автоматически Как скопировать каталог рекурсивно с помощью hardlinks для каждого файла Что такое ядро, «инструменты и утилиты GNU», оболочка и диспетчер окон? Какова скорость сетевого соединения между двумя контейнерами, которые взаимодействуют через виртуальный мост, работающий на одном и том же хосте?

Chrooted sftp дает ошибку «Разрешение отказа»

Я сконфигурировал sshd_conf в своем поле centos, как показано ниже:

Match group pilots ChrootDirectory /home/pilots ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no 

и каталог / home / pilots:

 # ls -al /home/pilots total 12 drwxr-x---. 3 root pilots 4096 Mar 10 14:20 . drwxr-xr-x. 7 root root 4096 Mar 10 14:10 .. drwxrwxr-x. 2 root pilots 4096 Mar 10 15:21 data -rwxrwxrwx. 1 root root 0 Mar 10 14:20 topLevel # 

Если я подключился как пользователь в группе пилотов БЕЗ директивы ChrootDirectory, я могу записать cd в папку / home / pilots (или подкаталог) и выполнить ls или получить без труда. Однако, если я разрешаю директиву ChrootDirectory, но я все еще могу подключиться и могу записывать данные на данные, я не могу сделать ls или попасть в любую директорию. Например, remote readdir("/"): Permission denied ls дает remote readdir("/"): Permission denied ошибка remote readdir("/"): Permission denied от прав File "/topLevel" not found и попытка получить topLevel дает File "/topLevel" not found . Я думал, может быть, меня не было в каталоге, который я ожидал, но способность данных cd показала бы, что chroot действительно работает по назначению. Что я могу сделать неправильно?

Пара потенциально важных заметок:

  • Эти пользователи существуют на удаленном сервере LDAP, доступ к которому осуществляется через sssd
  • Контроль доступа должен выполняться по группам, так как многим пользователям нужен доступ для чтения к этой же папке. Таким образом, владение остается root.

Изменить: я просто заметил это в журнале сообщений:

 type=1400 audit(1394494944.504:50): avc: denied { read } for pid=22758 comm="sshd" name="pilots" dev=dm-0 ino=400504 scontext=unconfined_u:system_r:chroot_user_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=dir 

Итак, есть запись об отрицании. Тем не менее, я не говорю, почему.

Я нашел решение на этой странице . Подводя итог, после настройки sftp в соответствии с приведенной выше конфигурацией необходимо выполнить следующие две команды, чтобы разрешить доступ с включенным SELinux:

 setsebool -P ssh_chroot_rw_homedirs on restorecon -R /home/$USERNAME 

В этом случае второй командой будет restorecon -R / home / pilot. После этого sftp работает так, как ожидалось, даже когда chrooted, без необходимости полностью отключать SELinux.