Назад | Перейти на главную страницу

Пользователи тюрьмы в каталоге

У меня есть 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 для доступа к своим файлам.