Здесь я описываю одну конкретную задачу, с которой часто приходится сталкиваться в повседневной работе.
Работаем мы в основном с CentOS, а в последнее время именно с CentOS 7, поэтому данная шпаргалка предназначена в первую очередь для данной версии системы. Если она работает и в других дистрибутивах или версиях CentOS - замечательно.
Прежде всего, я допускаю что OpenSSH уже установлен в системе.
Поэтому сразу же идем в редактирование настроек
nano /etc/ssh/sshd_config
Пролистываем до конца файла и дописываем следующие строки
Match User testuser ChrootDirectory /home/testuser AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
Здесь уместно маленькое, но очень важное примечание.
Во-первых, владельцем всех директорий в пути, которые мы указываем в директиве ChrootDirectory должен быть root. В противном случае пользователь просто не сможет зайти по SFTP.
Во-вторых, эти директории не должны быть доступны для записи для каких-либо других пользователей.
Таким образом, нам необходимо проделать еще несколько действий, чтобы ограничение доступа пользователя в свою домашнюю директорию имело смысл.
Есть несколько вариантов. Здесь рассмотрим два из них.
Первый вариант: меняем владельца директории testuser на root и создаем поддиректорию, например public_html, владельцем которой будет уже наш пользователь testuser.
cd /home chown root.root testuser/ chmod 755 testuser/ mkdir testuser/public_html chown testuser.testuser testuser/public_html
Таким образом, наш пользователь по сути теряет свою собственную домашнюю директорию, но при этом имеет права на чтение ее содержимого, а также полный доступ к поддиректории public_html, где он уже сможет создавать все что необходимо.
Второй вариант: в конфиграции SSH сервера указываем базовый путь к директории /home, владельцем которой в любом случае является root и она недоступна для записи другими пользователями.
Match User testuser ChrootDirectory /home AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
В этом случае наш пользователь testuser не теряет свою домашнюю директорию и имеет полные права на запись в своей директории.
Вместе с этим, если у нас в системе будут другие пользователи, при логине будут видны все домашние директории всех пользователей. Но это уже тема для отдельного поста.
Комментариев нет :
Отправить комментарий