Файловая структура относительно sshd jail root
Я устанавливаю sshd jail для некоторых пользователей в моей системе (archlinux). Не вдаваясь в подробности, я бы хотел, чтобы объем вопроса был минимальным.
настройка /etc/ssh/sshd_config
:
Match group jaileduser
ChrootDirectory /var/jailedusers
X11Forwarding no
AllowTcpForwarding no
и система /etc/password
запись похожа на:
testuser1:x:2001:2000::/home/testuser1:/bin/bash
Итак, вопрос в том, является ли домашний каталог /home/testuser1
относительно sshd_config
запись /var/jailedusers
т.е. должна быть запись passwd /var/jailedusers/home/testuser1
или же /home/testuser1
с каталогом в /var/jailedusers
из /home/testuser1
- И это оболочка в той же лодке - это запись passwd /var/jailedusers/bin/bash
или просто /bin/bash
,
Наконец при входе в систему /etc/passwd
читать или /var/jailedusers/etc/passwd
читать согласно sshd_config
запись.
1 ответ
На основании справочной страницы:
Specifies the pathname of a directory to chroot(2) to after
authentication. All components of the pathname must be root-
owned directories that are not writable by any other user or
group. After the chroot, sshd(8) changes the working directory
to the user's home directory.
Так /etc/passwd
должен содержать пути относительно корня системы (т.е. /bin/bash
а также /home/testuser1
) и корень системы после chroot будет /var/jailedusers
(означающий, что /var/jailedusers/home/testuser1
будет фактическим домом и /var/jailedusers/bin/bash
фактическая оболочка).
Чтобы ответить на вторую часть вопроса, sshd
буду читать /etc/passwd
выполните аутентификацию и затем chroot
в /var/jailedusers
,
Обратите внимание, что /var/jailedusers
также необходимо будет содержать дополнительные файлы, такие как общие библиотеки, необходимые для bash
и минимальный набор /dev
записи (например, /dev/null
).