Недавно мы нашли обходной путь, который выглядит так:
/ И т.д. / SSH / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
права доступа к каталогу:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Теперь /home
удовлетворяет требованиям ChrootDirectory
и не может быть перечислено ограниченными пользователями, но sftponly
пользователи не смогут войти в систему, если их домашние каталоги настроены как обычно ( /home/$LOGNAME
): в среде chrooted их домашние каталоги находятся не внутри, /home
а непосредственно под root ( /
).
Обходной путь 1
Установите дома пользователей с ограниченным доступом так, как они выглядят в chroot:
root@server:~ # usermod -d /username username
предостережение 1
Если кто-либо из неограниченных пользователей или какой-либо сценарий администрирования использует расширение тильды bash, ~username
оно будет расширяться до /username
сих пор, а это не то, что подразумевается.
Также администратор, который создает sftponly
пользователей, должен помнить, чтобы использовать нестандартный дом. Решается с помощью сценария. Который админ должен помнить, чтобы использовать.
Обходной путь 2
Это альтернатива предыдущей, которую мы в итоге использовали:
root@server:~ # ln -s . /home/home
То есть создайте символическую ссылку внутри /home
своего собственного dirname. Теперь под chroot /home/username
указывает на тот же каталог, что и без chroot. Для пользователя с ограниченными правами, вошедшего в систему с помощью sftp, это будет выглядеть как /username
. Этот каталог доступен для записи его владельцу (пользователю с ограниченными правами). Пользователь с ограниченными правами не может перечислить свои родительские или домашние каталоги ни одного из братьев по имени.
Единственное, что особенного в sftponly
пользователе - это его участие в sftponly
группе. Нам было легче иметь дело, чем обходной путь 1.
пещеры 2
- Вы не можете иметь пользователя с именем «home» с домашним каталогом
/home/home
- Вы должны быть осторожны со скриптами, которые пересекают
/home
иерархию и следуют по символическим ссылкам.
chroot
пользователь edChrootDirectory
? Могут ли они получить к нему доступ?