Назад | Перейти на главную страницу

Невозможно поместить пользователей SSH в тюрьму в любую папку, кроме их домашней папки

Мне нужна помощь в этом.

Я пытаюсь поместить пользователей SSH в тюрьму в их собственные папки, чтобы они могли подключаться по SFTP к серверу, не видя файловую систему.

Я следовал простому онлайн-руководству и мне удалось поместить пользователя в его домашнюю папку по умолчанию (/ home / user). Однако, если я попытаюсь изменить их домашнюю папку, пользователь не сможет войти в систему.

У меня 2 пользователя: kevin и default

cat /etc/passwd показывает

kevin:x:500:500::/home/kevin:/bin/false
default:x:501:500::/var/www/vhosts/default:/bin/false

и мой файл sshd_config выглядит как

Subsystem sftp internal-sftp

Match Group sftponly
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

и cat /etc/group показывает

sftponly:x:500:default,kevin
kevin:x:501:
default:x:502:

Кто-нибудь знает, почему пользователь kevin работает так, как ожидалось, но пользователь по умолчанию не может войти в систему.

Спасибо.

РЕДАКТИРОВАТЬ

Я отредактировал свой файл passwd и изменил default:x:501:500::/var/www/vhosts/default:/bin/false к default:x:501:500::/home/default:/bin/false и пользователь по умолчанию теперь может войти в систему.

Проблема возникает только в том случае, если я хочу изменить дом пользователя на / var / www / vhosts / user.

Не только домашний каталог пользователя, но и все его компоненты должны принадлежать root. В вашем случае это все эти каталоги: {/var, /var/www, /var/www/vhosts/default, /var/www/vhosts/default}. Кроме того, эти каталоги не могут быть доступны для записи другим пользователям или группам.

Наконец, если у вас есть selinux работает в принудительном режиме, убедитесь, что в домашнем каталоге пользователя задан правильный контекст. Самый простой способ сделать это - использовать chcon инструмент (непостоянное изменение) или с semanage (стойкое изменение).

Я предполагаю, что это SELinux его блокирует.

Чтобы временно отключить его и проверить, не проблема, выполните setenforce 0 чтобы установить его в разрешающий режим. Он снова включится после перезагрузки или после переключения флага обратно на 1.

Чтобы навсегда установить его в разрешающий режим, отредактируйте /etc/selinux/config и установить SELINUX=permissive. Если это целевой компьютер для конечных пользователей, я предлагаю оставить его включенным. Установите пакет под названием setroubleshoot и найдите несколько руководств по использованию прилагаемой к нему команды sealert. Он пытается сделать для вас разумные предложения о том, как обрабатывать элементы, которые блокируются SELinux. Он также пишет и компилирует политики для вас, поэтому он довольно удобен для новичков.

Домашний каталог пользователя должен быть владельцем root