Как я могу сделать нового пользователя SSH для Linux (Ubuntu), который позволит пользователю получать доступ только к этой папке, а не возвращаться в другую папку, я искал много учебников / поддержки для этого, но все они не помогли мне как он работал при первом входе в систему по SSH, и когда я возвращаюсь в другую папку и отключаю ftp и снова подключаюсь, это не приводит меня к установленному файлу.

1 ответ1

0

Стандартный способ справиться с этим - настроить окружение 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).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .