вторник, 16 апреля 2013 г.

Добавление пользователя FreeBSD


Добавление пользователя



    В unix системах действует определенная иерархия пользователей. Следует понять, что в системе существует главный пользователь обладающий всеми правами - root. Остальные пользователи так или иначе ограничены в своих правах. Отсюда существует правило - работать в системе под ограниченным пользователем, и только для выполнения административных задач переключаться в суперпользователя root. У каждого пользователя в системе существует свой домашний каталог, в котором хранятся все личные настройки в виде конфигурационных файлов, по умолчанию этот каталог располагается в /usr/home, на который ведет символическая ссылка /home. Грубо говоря, для того чтобы установить ПО, управлять системными процессами, вносить изменения в системные файлы, настраивать сеть, монтировать диски, нужно будет переключаться в суперпользователя root. А для обычной повседневной деятельности (работа с документами, интернет, мультимедия и т.д.) достаточно простого пользователя. Если игнорировать это правило и использовать аккаунт root для повседневной деятельности, на порядок повышается уязвимость системы, так как все процессы будут запущены с правами суперпользователя, к примеру - браузер запущенный таким образом - грубейшее игнорирование правил безопасности системы. Злоумышленник, используя какую-либо уязвимость браузера, теоретически сможет получить полный доступ к управлению системой. К примеру, такой неправильный подход к безопасности - как работа интернет браузера с полными правами, реализован в операционных системах семейства Windows (собственно, там фактически нет нормального разделения прав пользователей), что приводит к простому механизму поражения системы, при помощи простого захода на зараженный сайт. Чтобы свести подобные вероятности к минимуму следует работать в системе в качестве пользователя и только при необходимости переключаться в суперпользователя root.
    Каждый пользователь в системе может принадлежать к одной или нескольким группам. Членство в какой то определенной группе дает пользователю дополнительно те или иные права. К примеру, чтобы наш пользователь смог переключаться в суперпользователя, его следует поместить в группу wheel, это группа системных администраторов системы, к которой принадлежит root. В системе каждый пользователь (и группа) имеет свой идентификационный номер, пользователь root и группа wheel имеют при этом нулевые идентификаторы. В системе так же имеется масса пользователей не имеющих возможности подключиться в систему и не имеющие пароля авторизации, для системных нужд. Пример - пользователь ftp, от его имени выполняется штатный ftp сервер. Таких пользователей несколько.
    Итак, наша задача создать пользователя - системного администратора, с авторизацией по паролю и возможностью входа в систему. Для этого входим в систему как суперпользователь root и набираем команду:

# adduser


После выполнения на дисплее появится следующий диалог для ввода данных. Запросы идут друг за другом, следует вводить необходимые данные и нажимать "enter":

Username: alex
 - набираем имя пользователя (в данном случае "alex"), которое будет использоваться для входа в систему
Full name: Alexey - набираем полное имя, это имя будет фигурировать в личном профиле пользователя, его можно пропустить просто нажав "enter"
Uid (Leave empty for default): - в этой строке можно принудительно указать идентификационный номер пользователя, в нашем случае мы просто нажимаем "enter", представляя системе самой присвоить свободный идентификатор
Login group [alex]: wheel - в эту строку следует ввести группу к которой будет принадлежать пользователь в системе, по умолчанию имя группы аналогично имени пользователя, такая группа не будет обладать никакими дополнительными правами, а наша задача состоит в том, чтобы создать системного администратора, поэтому мы вводим имя группы системных администраторов "wheel" и нажимаем "enter"
Login group is wheel. Invite alex into other groups? []: - данный запрос мы тоже пропускаем, это запрос о том, стоит ли сделать пользователя членом еще каких либо групп в системе, в нашем случае достаточно лишь одной группы "wheel", которую мы уже указали выше
Login class [default]: - этот запрос мы тоже пропускаем, изменение этого параметра мы будем рассматривать ниже в статье о русификации, фактически в этой строке можно сразу задать класс пользователя "russian" для определения локали - раскладки и языка пользователя
Shell (sh csh tcsh nologin) [sh]: - этот запрос означает выбор командного процессора консоли, который собственно интерпритирует команды набранные на клавиатуре, по умолчанию командный процессор для пользователя - sh, поэтому пропускаем этот параметр нажимая "enter", изменение командного процессора мы рассмотрим в дальнейших статьях на сайте
Home directory [/home/test]: - в этой строке можно принудительно указать домашний каталог пользователя, в данном случае нас устраивает это размещение, поэтому снова нажимаем "enter"
Home directory permissions (Leave empty for default): - в этой строке можно принудительно задать права доступа для директории пользователя, в нашем случае так же оставляем все "по умолчанию" нажимая "enter"
Use password-based authentication? [yes]: - использовать ли пароль для авторизации пользователя в системе, по умолчанию стоит "yes" (да), если ответить "no" (нет) то штатным образом в систему войти мы не сможем, поэтому нажимаем "enter" тем самым отвечая "да"
Use an empty password? (yes/no) [no]: - оставить ли пустой пароль для авторизации пользователя, в данном случае если ответить "да", то в систему возможно будет войти без пароля, что является неприемлимым, поэтому нажимаем "enter" тем самым отвечая "нет", т. к. по умолчанию указан ответ "no" (нет)
Use a random password? (yes/no) [no]: - присвоить ли пользователю случайный пароль, в нашем случае тоже пропускаем этот вопрос нажимая "enter" и тем самым отвечая "no" (нет), т.к. пароль мы зададим самостоятельно
Enter password: - в данной строке следует ввести пароль пользователя, который будет ему присвоен, при этом ввод символов никак не отобразится в строке
Enter password again: - следует повторить ввод пароля
Lock out the account after creation? [no]: - на этот вопрос следует так же ответить "no" (нет), т.к. вопрос гласит "Заблокировать ли аккаунт после создания?", нажимаем "enter"

После чего на экране появится профиль пользователя с запросом:

Username   : alex

Password   : *****
Full Name  : Alexey
Uid        : 1001
Class      : 
Groups     : wheel
Home       : /home/alex
Home Mode  : 
Shell      : /bin/sh
Locked     : no
OK? (yes/no): 

На вопрос следует набрать "yes" (да) и нажать "enter", если набрать "no" (нет), то пользователь создан не будет. Итак набираем "yes" и нажимаем "enter":
OK? (yes/no): yes
adduser: INFO: Successfully added (alex) to the user database.
На дисплее появится следующий запрос:
Add another user? (yes/no): no - на него уже следует ответить отрицательно, он гласит "Добавить ли еще одного пользователя?".
Goodbye!

    Теперь в систему можно будет войти набрав логин - "alex" и пароль указанный в процессе создания пользователя. Для того, чтобы пользователю состоящему в группе wheel переключиться в режим суперпользователя root, следует набрать команду:
$ su
Password:
И после набора пароля суперпользователя root, аккаунт переключится. Возврат из режима суперпользователя в данном случае выполняется по команде:
# exit
Так же повторный набор этой команды уже из режима пользователя приведет к выходу из системы.

    На этом процесс добавления пользователя закончен.

    P.S. Для удаления пользователя существует команда "rmuser" действующая по аналогии.




По умолчанию root-доступ через SSH в FreeBSD закрыт. Это сделано для обеспечения безопасности сервера. Существуют три способа для открытия root-доступа через SSH:
  1. включение обычного пользователя в группу администраторов
  2. разрешение подключения root через SSH
  3. команда sudo
Первый способ
Открыть файл /etc/group
Добавить пользователя user в группу wheel
wheel:*:0:root,user
После этого пользователь user может получить права root с помощью команды su.
Второй способ
Открыть файл /etc/ssh/sshd_config
Добавить PermitRootLogin yes


Комментариев нет:

Отправить комментарий