Пользователь SSH в папку, но может ли nano в любую верхнюю папку?

Я сделал useradd -s /bin/rbash -d /var/www/html/directory USRNAME

и при входе по ssh с USRNAME (включая ключ ssh) он переходит к directoryи cd не возвращается. Так что работает... но

если они используют nano /var/www/html/.env(перед каталогом) он скажет

Unable to create directory /var/www/html/directory/.local/share/nano/: Permission denied
It is required for saving/loading search history or cursor positions.

Press Enter to continue

Если они нажмут enterэто позволит им читать любой файл с помощью nano.. в любом месте системы!

Любая помощь, чтобы разрешить этому пользователю только этот конкретный каталог, используя только облако Google?

1 ответ

Решение

Rbash не является безопасным методом ограничения пользователей оболочки. Он ограничивает только вводы оболочки, но не доступ к файловой системе для исполняемых файлов. В стандартной системе Linux есть множество инструментов, доступных в $PATH для обхода этих ограничений, не только nano.

Правильный ограниченный доступ осуществляется путем создания среды chroot или тюрьмы, но для этого также требуется предоставление всех необходимых исполняемых файлов и, возможно, даже жестких ссылок /dev, /sys или /proc.

Вы можете изменить $PATH, чтобы включить только безопасные команды, но это минное поле и, по сути, также требует от вас создания отдельной коллекции исполняемых файлов.

Ошибка, которую вы видите, скорее всего, связана с тем, что пользователю не разрешено писать в каталог /var/www/html/, но не связана с реальной проблемой.

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