Создайте пользователя SFTP для доступа только к одному каталогу. [закрыто]

19

Мне нужно создать пользователя, который может только SFTP в конкретный каталог и взять копию некоторой информации. вот и все. Я продолжаю искать онлайн, и они приносят информацию о chroot и изменяют sshd_config.

До сих пор я мог просто

  • добавить пользователя "useradd sftpexport"
  • создать его без домашнего каталога «-M»
  • укажите свое местоположение для входа «-d / u02 / export / cdrs» (где хранится информация)
  • не позволяет использовать ssh "-s / bin / false"
  

useradd sftpexport -M -d / u02 / export / cdrs -s / bin / false

Может ли кто-нибудь предложить, что мне нужно изменить, чтобы пользователь мог только войти и скопировать файл?

    
задан Alec George Doran-Twyford 16.04.2014 в 06:14
источник
  • возможный дубликат оболочки Linux, чтобы ограничить пользователей sftp их домашними каталогами? –  BMW 16.04.2014 в 09:05
  • Вы обнаружили, что было проблемой с вашей командой useradd? (без создания новой группы пользователей) –  Franck Dernoncourt 08.01.2016 в 19:28

2 ответа

26

Я предпочитаю создать группу пользователей sftp и ограничить пользователей в этой группе их домашним каталогом.

Сначала отредактируйте файл /etc/ssh/sshd_config и добавьте его внизу.

Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no  

Это говорит OpenSSH, что все пользователи из группы sftp должны быть chrooted в свой домашний каталог (который %h представляет в команде ChrootDirectory)

Добавьте новую группу sftp, добавьте своего пользователя в группу, ограничьте его доступ к ssh и определите его домашний каталог.

groupadd sftp
usermod username -g sftp
usermod username -s /bin/false
usermod username -d /home/username

Перезапустить ssh:

sudo service ssh restart

Если у вас по-прежнему возникают проблемы, проверьте правильность разрешений каталога в домашнем каталоге. Отрегулируйте значение 755 для вашей настройки.

sudo chmod 755 /home/username

РЕДАКТИРОВАТЬ. Основываясь на деталях вашего вопроса, похоже, что вы просто не указали часть sshd_config. В вашем случае замените sftp на sftpexport . Также убедитесь, что разрешения файлов доступны в каталоге /u02/export/cdrs .

Еще лучшая настройка (и есть даже лучшие настройки, чем то, что я собираюсь предложить) заключается в том, чтобы символизировать каталог /u02/export/cdrs в домашнем каталоге пользователя.

    
ответ дан csi 16.04.2014 в 06:23
  • вопрос, должен ли каталог принадлежать ему? поскольку он принадлежит другому пользователю. Я добавил его в ту же группу, что и пользователь. –  Alec George Doran-Twyford 16.04.2014 в 06:42
  • Пожалуйста, ознакомьтесь с правами пользователя. Эти 3 номера соответствуют пользователю, группе и другим (миру). Крайне важно, чтобы вы узнали, что это значит и как их безопасно использовать. Сделайте поиск в Google, но вот одно сообщение thegeekstuff.com/2010/04/unix-file-and-directory-permissions –  csi 16.04.2014 в 16:58
2

Вам может понадобиться добавить ограниченную оболочку, чтобы этот пользователь мог поместить туда некоторые файлы. Вы можете использовать rssh для этого.

usermod -s /usr/bin/rssh sftpexport

Включить разрешенные протоколы в config /etc/rssh.conf .

    
ответ дан user3132194 16.04.2014 в 07:28