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