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

Пользователь FTP в CentOS с символом '@' в имени пользователя

Наш предыдущий веб-сервер был основан на Windows и размещал несколько доменов. В результате, если пользователь с именем «username» захочет войти через FTP на «example.com», он предоставит свое имя пользователя как «username@example.com».

С тех пор мы кое-что изменили; наш веб-сервер теперь использует CentOS 6, и наше приложение больше ни в чем не полагается на FTP. Тем не менее, все еще могут быть некоторые отставшие, которые не обновились, и мне было любопытно, можно ли настроить некоторых пользователей FTP для имитации старого поведения, вроде небольшой обратной совместимости, пока мы не узнаем, что никто не полагается на это больше. Попытка создать пользователя с символом @ в имени приводит к некоторому предсказуемому результату:

useradd: invalid user name 'username@example.com'

Вероятно, невозможно заставить систему принять такое имя, но я не знаю, есть ли какая-нибудь система для чего-то вроде этих «виртуальных доменов», когда пользователи входят в систему, что-то похожее на то, что мы делали в Windows.

Поскольку вы используете proftpd, вы сможете сделать это, создав виртуальные пользователи а затем с помощью ftpasswd программа для создания ваших имен пользователей.

ftpasswd --passwd -name viain@localhost --uid=10001 --home=/home/viain --shell=/bin/false

что ставит

viain@localhost:$1$nv2Ze6Tv$1EPpzsNBxkiwpAbBV9QMv1:10001:10001::/home/viain:/bin/false

в AuthUserfile

Пользователи FTP в CentOS могут включать @ символ в именах пользователей полностью зависит от демона, обслуживающего FTP. Например, Midnight Commander позволяет @ символ в именах пользователей, если опция правильно включена в .netrc файл. В некоторых демонах FTP @ в имени пользователя разрешен символ, если строка подключения заменяет @ со знаком плюс.


HERP DERP

Это не проблема с proftp, это проблема с именем пользователя, неприемлемым для useradd. Не используй useradd, используйте vipw вместо этого отредактируйте ваш файл passwd и используйте имя пользователя с 2 условное обозначение. FTP не имеет собственной базы пользователей, а использует /etc/passwd список пользователей файла.

Некоторые примечания к именам пользователей, добавляемых с помощью useradd:

Точно так же, если имя пользователя уже существует во внешней базе данных пользователей, такой как NIS или LDAP, useradd отклонит запрос на создание учетной записи пользователя.

Имена пользователей могут содержать не более 32 символов.

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