Как я могу создать пользователей только с удаленным доступом по FTP на сервере Linux?

11

Я использую сервер Ubuntu 10.04 LTS и хочу создать пользователей, которые могут получить доступ к серверу только с FTP.

Что я сделал до сих пор:

  • устанавливать vsftpd
  • Создать нового пользователя с установленной по умолчанию оболочкой входа в систему /bin/false

Все обычные пользователи на сервере могут получить доступ к своей домашней папке через ftp, но пользователи, которым удаленный доступ к оболочке удален путем установки этого параметра /bin/false, также не могут войти по ftp.

Я не понимаю, как оболочка доступа влияет на vsftpdсервер? Как я могу включить доступ по FTP без повторного включения оболочки?

Обновление:
я нашел эту ссылку, в которой говорится, что я должен использовать /sbin/nologin(кажется, /usr/sbin/nologinв Ubuntu) и что это не должно влиять на доступ по FTP, но это не работает в моем случае.

jmbouffard
источник
Может быть, попробуйте установить / bin / true
балки
Я никогда не использовал vsftpd, но я нашел решение, которое делает то, что вам нужно. Я не знаю, является ли это лучшим решением (думаю, оно должно работать, но, может быть, есть что-то лучше).
PBM
Только что попробовал / bin / true и он не работает.
августа
Спасибо @pbm, но это не совсем то, что я ищу, потому что я бы предпочел использовать реальных пользователей.
jmbouffard

Ответы:

12

Я не знаю, является ли хорошей практикой отвечать на мой собственный вопрос, но я нашел простое решение, позволяющее войти по ftp.

Мне нужно было добавить строку

/ USR / SBIN / NOLOGIN

в файл / etc / shells. Сразу после этой модификации ftp-сервер начал принимать логин от пользователей, для которых установлена ​​оболочка / usr / sbin / nologin. Поэтому они не могут войти через ssh, но он работает с ftp именно так, как я хотел.

Спасибо за ваши полезные комментарии.

jmbouffard
источник
Несколько дней назад я читал, что это открывает уязвимость безопасности. Любые эксперты, которые могут прояснить это для меня.
Навнейл
0

Установите пользовательскую оболочку обратно /bin/false(или другую недопустимую оболочку), затем установите /bin/falseв /etc/shells.

Я вижу серьезную проблему безопасности с установкой /usr/sbin/nologinв /etc/shells. Вы предоставляете FTP (и, возможно, другим) доступ ко всем демонам и логинам, которые имеют в /usr/sbin/nologinкачестве оболочки.

Джерри Каллахан
источник
1
Как именно? nologin существует, чтобы позволить, ну, nologin - с дополнительным настраиваемым сообщением, /etc/nologin.txtчтобы пользователь ftp мог знать, что это только ftp или что-то подобное.
Dani_l
vsftpd защищает от несанкционированного доступа, имея собственные списки доступа.
Dani_l