Как я могу сделать нового пользователя SSH для Linux (Ubuntu), который позволит пользователю получать доступ только к этой папке, а не возвращаться в другую папку, я искал много учебников / поддержки для этого, но все они не помогли мне как он работал при первом входе в систему по SSH, и когда я возвращаюсь в другую папку и отключаю ftp и снова подключаюсь, это не приводит меня к установленному файлу.
1 ответ
Стандартный способ справиться с этим - настроить окружение chroot. Что это делает, так это устанавливает новую базу для файловой системы. В среде chroot пользователь имеет собственные базовые файлы настройки для поддержки среды. Когда они входят в систему, они выполняют chroot и "застревают" в этой ограниченной среде.
Для этого создайте базовый каталог для создания вашей ограниченной среды, затем добавьте каталоги для этой среды.
mkdir -p <base>/{dev,etc,lib,usr,bin}
mkdir -p <base>/usr/bin
chown root.root <base>
Вы можете сделать <base>
тем, что хотите (например, /var/jail
).
Добавьте другие необходимые файлы и любые исполняемые файлы или исполняемые файлы, необходимые пользователю для запуска:
cp /etc/ld.so.cache <base>/etc/
cp /etc/ld.so.conf <base>/etc/
cp /etc/nsswitch.conf <base>/etc/
cp /etc/hosts <base>/etc/
cp /usr/bin/ls <base>/bin/
cp /usr/bin/bash <base>/bin/
Добавьте все необходимые разделяемые библиотеки для запуска любой из необходимых вам команд (запустите ldd <command>
чтобы получить список). cp
их в каталог <base>/lib
.
Последнее ... config sshd (/etc/ssh/sshd_config
) со следующим:
Match group sshusers
ChrootDirectory <base>
X11Forwarding no
AllowTcpForwarding no
Добавьте пользователей, которые будут chroot'd, в группу "sshuser" (или сделайте так, как вам нравится, просто убедитесь, что она соответствует тому, как вы настроили ее в sshd_config
).