У меня есть vps, работающая под управлением ОС Debian, и я хотел бы создать на ней учетные записи пользователей.
Я хочу, чтобы, когда пользователь входит в систему с помощью sftp, все в var казалось его домашним каталогом, и они не могли выйти из него.
Например, когда пользователь user3 входит в систему, он имеет доступ ко всему в var (чтение, запись, выполнение), но не может просматривать (cd) личные данные пользователя user1 или user2.
Как бы я это сделал?
Я думаю, мне нужно сделать это в chroot
, но я понятия не имею, как это будет работать.
Спасибо
Проблема №1, с которой люди сталкиваются при использовании chrooted SFTP, заключается в том, что OpenSSH по умолчанию требует, чтобы root владел всем путем к каталогу chroot данного пользователя. Другими словами, если вы хотите chroot кого-то в / home / something, / должен принадлежать root и иметь разрешения не более 0755, / home должен принадлежать root и иметь разрешения не более 0755, и, что, возможно, самое удивительное, / home / кто-то должен принадлежать root и иметь разрешения не более 0755. В вашем случае вы хотите chroot людей в / var (я даже не буду спрашивать), чтобы избежать этой проблемы с разрешениями, но в других случаях случаи, когда это неизбежно, вы можете изучить mount --bind
.
Что касается фактического chroot, у вас есть два варианта, как это сделать: либо по группе, либо по пользователю. В любом случае вы отредактируете файл sshd_config. Для всей группы это будет выглядеть так:
Match group sftponly
ForceCommand internal-sftp
ChrootDirectory /var
AllowTcpForwarding no
Для конфигурации для каждого пользователя это будет просто:
Match user sftpdude
ForceCommand internal-sftp
ChrootDirectory /var
AllowTcpForwarding no
Обратите внимание, что internal-sftp не поддерживался до OpenSSH версии 5 или около того, поэтому вам, возможно, придется скомпилировать собственную копию OpenSSH, если у вас нет доступа к пакету v5.
В зависимости от используемого FTP-сервера это должно быть относительно легко. И proftpd, и vsftpd, которые как пакеты в Debian поддерживают chroot в качестве опции. Документы ProFTPd: Вот.
Для SSH / SFTP посмотрите http://www.debian-administration.org/articles/590
Если вы настроите команду chmod 700 для каждого каталога пользователя, только владелец каталога сможет получить доступ к содержимому этого каталога.
т.е. chmod 700 /home/duke/aa/servers/user2
предотвратит доступ к нему любого пользователя, кроме user2 (и root).
Конечно, user2 должен быть владельцем /home/duke/aa/servers/user2
для доступа к своим файлам.