Как я могу создать пользователя SFTP в CentOS?

8

Я хотел бы дать временный доступ SFTP парню поддержки. Как мне создать пользователя SFTP? И как я могу удалить его после завершения работы?

Кроме того, как мне указать домашний каталог для них? Могу ли я запретить им доступ к определенным подкаталогам в их домашнем каталоге?

Мы используем CentOS 6.3 и fzSftp

OC2PS
источник
Это зависит от вашей конфигурации, предоставляя нам ваш файл конфигурации может помочь.
Kiwy
Какие конкретные настройки я должен опубликовать?
OC2PS
один из вас ftp deamon
Kiwy
Вы уверены, что хотите FTP или SFTP? Причина, по которой я спрашиваю, заключается в том, что вы перечислили fzsftp (filezilla sftp), который является клиентом, который Filezilla использует для соединений SFTP.
SLM
Ах! Я подключился через FileZilla к SFTP, поэтому в списке fzsftp ... думал, что это мой сервер. SFTP было бы хорошо, если бы вы могли мне помочь с этим. Спасибо!
OC2PS

Ответы:

14

Доступ не в chroot

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

CentOS Wiki поддерживает простую инструкцию под названием: Простая настройка SFTP, которая делает это довольно безболезненным.

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

Если sshdеще не запущено:

$ /etc/init.d/sshd start

Чтобы добавить пользователя:

$ sudo useradd userX
$ sudo passwd userX
... set the password ...

Когда вы закончите с учетной записью:

$ sudo userdel -r userX

Chroot доступ

Если, с другой стороны, вы хотите ограничить этого пользователя указанным каталогом, SFTP-сервер, включенный в SSH (openssh), предоставляет конфигурацию, которая также упрощает его включение. Это немного больше работы, но не слишком много. Шаги описаны здесь в этом руководстве под названием: Как настроить Chroot SFTP в Linux (Разрешить только SFTP, а не SSH) .

Сделайте эти изменения в вашем /etc/ssh/sshd_configфайле.

Subsystem       sftp    internal-sftp

## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config

Match Group sftpusers
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp

Теперь вам нужно создать корневое дерево каталогов, в которое этот пользователь будет заблокирован.

$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}

Разрешения должны выглядеть следующим образом:

$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing

Каталоги верхнего уровня как это:

$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser

Не забудьте перезагрузить sshdсервер:

$ sudo service sshd restart

Теперь создайте учетную запись userX:

$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...

Вы можете проверить, что учетная запись была создана правильно:

$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin

Когда вы закончите с учетной записью, удалите ее так же, как указано выше:

$ sudo userdel -r userX

... и не забудьте удалить изменения файла конфигурации, которые мы сделали выше, а затем перезапустить, sshdчтобы сделать их активными еще раз.

SLM
источник
Ницца! Как я могу ограничить пользователя определенным каталогом и запретить пользователю доступ к нескольким подкаталогам в этом каталоге?
OC2PS
привязать пользователя в его домашней папке и добавить символическую ссылку внутри в разные каталоги, которые вы хотите разрешить
Kiwy
@ OC2PS - выше показан один из способов привязки пользователей к ним, вы также можете привязать их к домашнему каталогу. Обычно я разбиваю этих пользователей на определенные области, чтобы было очевидно, когда я просматриваю, /home/...кто на самом деле является пользователем системы. Хотя я использую настоящий SFTP-сервер для работы, поэтому мои потребности немного отличаются.
СЛМ
Когда я делаю sudo useradd -D userX, я получаю Использование: useradd [опции] ВХОД
OC2PS
@ OC2PS попробуй useradd userX. Извините, что неправильно прочитал справочную страницу useradd.
SLM