Что, вероятно, происходит, что sshd
выдает chroot()
системный вызов, но тогда, когда система пытается запустить оболочку (которая, вероятно, что-то вроде /bin/bash
), она не существует ... потому что вы в изолированной среде, поэтому нет каталога /bin
.
Вы можете скопировать свою оболочку в /home/user1/bin/bash
, но вам также потребуется скопировать файлы в любых необходимых общих библиотеках. Вы можете получить, запустив ldd /bin/bash
:
# ldd /bin/bash
linux-vdso.so.1 => (0x00007ffc3eff5000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f21ceb47000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f21ce943000)
libc.so.6 => /lib64/libc.so.6 (0x00007f21ce586000)
/lib64/ld-linux-x86-64.so.2 (0x00007f21ced71000)
Вы можете скопировать каждый из этих в соответствующее место в вашей chroot
среде, но если вы хотите запустить любую другую команду, вам нужно будет повторить описанный выше процесс ,
И вы можете обнаружить, что некоторые библиотеки загружаются динамически, и вам также нужно будет их скопировать.
И любые необходимые файлы конфигурации от /etc
. И, возможно, некоторые узлы устройства от /dev
. И т. Д.
Другими словами, это не стоит усилий, если только ваша цель - ограничить доступ к одной команде.
У ошибки 'sshd' в наличии ошибок? – larsks