Я знаю, что существуют другие вопросы как это, и я уже считал некоторые из них. Но это не решило мою проблему. Я хочу создать пользователя, который имеет sftp доступ к его корневому каталогу только и не разрешен видеть файлы/папки выше этого каталога. Он также должен смочь выполнить команды оболочки в этом каталоге. (запуск узла обрабатывает, например),
sftp доступ работает до сих пор. Пользователь ограничивается своим корневым каталогом и может редактировать/удалять файлы.
Я пытался создать символьную ссылку sudo ln -s /bin/bash /bin/rbash
и это говорит file already existing
, таким образом, я установил пользовательскую оболочку на sudo usermod -s /bin/rbash user
но если пользователь регистрируется на пути shh, это показывает текст приветствия Ubuntu и затем /bin/rbash: No such file or directory
. То же происходит, если я установил оболочку для избиения.
Мой sshd_conf похож на это теперь:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
Match group sftp
ChrootDirectory /home/userdirectory
AllowTcpForwarding no
# ForceCommand internal-sftp
Я также пытался создать символьную ссылку из /bin/bash
кому: /home/userdirectory/bin/bash
но затем когда пользователь регистрируется на пути ssh, это говорит Too many symbolic links
.
Я скопировал /bin/bash
кому: /home/userdirectory/bin/bash
и это говорит no such file or directory
.
Я решил это путем копирования /bin/bash
кому: /home/userdirectory/bin/bash
.
После этого я перечислил требуемые библиотеки с
ldd /bin/bash
и скопированный их всех в их соответствующие каталоги под chroot /home/userdirectory
.
Если Вы хотите иметь дальнейшие команды в оболочке, необходимо скопировать их с /bin
кому: /home/userdirectory/bin
также и добавьте их библиотеки.