Как создать пользователя с ограниченной оболочкой

Я знаю, что есть и другие подобные вопросы, и я уже читал некоторые из них. Но это не решило мою проблему. Я хочу создать пользователя, который имеет доступ по 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, То же самое происходит, если я устанавливаю оболочку на bash.

Мой 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,

1 ответ

Решение

Я решил это путем копирования /bin/bash в /home/userdirectory/bin/bash,

После этого я перечислил необходимые библиотеки с

ldd /bin/bash

и скопировал их все в соответствующие каталоги под chroot /home/userdirectory,

Если вы хотите иметь дополнительные команды в оболочке, вы должны скопировать их из /bin в /home/userdirectory/bin также и добавить свои библиотеки.

Другие вопросы по тегам