Сегодня возникла надобность добавить нового ftp-пользователя используя шелл. На самом деле задача эта достаточно тривиальная, но все-таки поделюсь с теми, кто возможно не знает как это сделать.

Для начала стоит создать нового пользователя, испольуя стандартные средства useradd:

useradd -d /home/ftp/myuser/ -s /dev/null myuser > /dev/null 2>&1

Домашней принята директория /home/ftp/myuser (в общем-то это стандартно), можно естественно использовать любую другую директорию, хотя лучше все же делать не извращаясь.

В большинстве случаев, доступ к шеллу должен быть закрытым для пользователя, поэтому мы использовали флаг “-s /dev/null”, т.е. как shell у пользователя будет использована псевдо-оболочка /dev/null. Стоит заметить, что у меня (на CentOS) подключиться через фтп удалось только при использовании /bin/false, /dev/null же перекрывал доступ как к шеллу, так и к фтп. В чем дело разбираться не захотел, возможно именно так это и должно работать на этой дистре (хотя в RedHat изначально добавленна псевдо-оболочка /dev/null в /etc/shells вроде как именно для этих целей).

После создания пользователя, задаем пароль:

passwd myuser

Далее, следует убедиться что /dev/null (в случае с CentOS /bin/false) присутсвуют в /etc/shells. Если наша псевдо-оболочка не найдена, добавляем ее.

И последнее, для удобства пользователя, заходящего через фтп, стоит по-определению открывать именно директорию его аккаунта. Как это сделать? ЛеХко! Для этого редактируем /etc/passwd:
вместо

myuser:x:10010:10010::/home/ftp/myuser/:/bin/false

вставляем

myuser:x:10010:10010::/home/ftp/./myuser/:/bin/false

таким образом при входе в систему, пользователь попадет в каталог myuser.

Вот, в общем-то, и все! Удачного начала рабочей недели.

  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Reddit
  • Technorati
  • email
  • Print
  • DZone
  • eKudos
  • LinkedIn
  • StumbleUpon
  • Tumblr
  • Twitter
Trackback

only 1 comment untill now

  1. [...] Everything is pretty much simple, probably except for pasv ports. In a nutshell, passive mode means server handles which ports are used for data transfers, and we are using ports in range of 50000-50100. Now any system user should be able to login into your server via ftp. If you need further info regarding laying down the user accounts read my previous post. [...]

Add your comment now