Основы Slackware Linux

       

Вспомогательные программы


Самый простой способ манипулирования пользователями- при помощи поставляемых с дистрибутивом вспомогательных скриптов и программ. В Slackware для работы с пользователями есть такие программы: adduser,

userdel(8), chfn(1),chsh(1) и passwd(1). А для работы с группами есть groupadd(8), groupdel(8) и groupmod(8). За исключением chfn, chsh и passwd перечисленные программы могут выполняться только пользователем root и поэтому расположены они в /usr/sbin. chfn, chsh и passwd могут быть выполнены кем угодно, а расположены они в каталоге /usr/bin.

Добавить пользователя можно при помощи программы adduser. Мы начнём с разбора процедуры, комментируя все вопросы, задаваемые программой и кратко описывая, что же всё это означает. Вариант ответа по умолчанию, предлагаемый программой практически на каждый из вопросов, показывается в скобках и может быть использован для ответа практически на все вопросы.

#adduser

Login name for new user (8 characters or less) []: jellyd

Это имя, которое пользователь будет использовать для входа в систему. Оно должно состоять из восьми или менее символов, так как все login утилиты рассчитаны на это. Обычно используются только маленькие буквы, но можно пользоваться и большими.

User id for jellyd [ defaults to next available]:

ID (UID) пользователя, это на самом деле то, с помощью чего в системе Linux определяется принадлежность файлов. Каждый пользователь имеет уникальный номер, начиная с 1000 в Slackware. Вы можете выбрать UID для нового пользователя, или вы можете просто позволить программе adduser присвоить пользователю следующий свободный номер.

Initial group for jellyd [users]:

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



Additional groups for jellyd (seperated with commas, no spaces) []:

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


jellyd's home directory [/home/jellyd]:
Домашние каталоги по умолчанию располагаются в /home каталоге. Если вы работаете в очень большой системе, возможно возникнет необходимость разместить домашние каталоги в другом месте. Эта опция позволяет вам уточнить, где должен располагаться домашний каталог пользователя. Вы можете так же парализовать пользователя, указав его домашним каталогом что-то вроде /usr/bin/false, но мы не рекомендуем пользоваться этим методом.

jellyd's shell [/bin/bash]:
bash это оболочка по умолчанию в Slackware Linux и подойдёт для большинства людей. Если ваш новый пользователь ранее пользовался Unix, он может быть захочет какую-то другую оболочку, к которой привык больше. Вы можете поменять оболочку сейчас, или же пользователь сделает это позже самостоятельно при помощи chsh команды.

jellyd's account expiry date (YYYY-MM-DD) []:
Вы можете задать дату, после которой пользователь не будет больше иметь доступа к системе. По умолчанию, это бесконечность. Например, эта опция может быть полезна для ISP, если они хотят создать пользователя до определённой даты, пока не получать плату за следующий год.

OK, I'm about to make a new account. Here's
what you entered so far:
New login name: jellyd
New UID: [Next available]
Initial group: users
Additional groups: [none]
Home directory: /home/jellyd
Shell: /bin/bash
Expiry date: [no expiration]
This is it... if you want to bail out, hit Control-C.
Otherwise, press ENTER to go ahead and make the account.
Теперь вы видите всю введённую информацию и если что-то не так, вы можете остановиться при помощи Control-C и начать всё сначала. Иначе вы можете нажать ввод, и пользователь будет создан.

Making new account...
Changing the user information for jellyd
Enter the new value, or press return for the default
           Full Name []: Jeremy
           Room Number []: Smith 130
           Work Phone []:
           Home Phone []:
           Other:
<


Вся эта информация дополнительна, она используется для finger. Вы можете оставить пустыми эти поля. Пользователь может так же изменить эту информацию в любой момент при помощи chfn. Но может быть полезно указать по крайней мере имя и телефон, на тот случай, если вы захотите связаться с персоной.

Changing password for jellyd
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
Password changed.
Done...
Вам придётся ввести пароль для нового пользователя. Если новый пользователь не присутствует при создании эккаунта, просто укажите какой-то пароль по умолчанию и скажите пользователю поменять его на что-то более надёжное.

Выбор пароля

Выбор надёжного пароля это первый шаг по защите системы от взлома. Пароль не должен быть легко угадываемым, так как в этом случае шансы несанкционированного проникновения в систему возрастают. Идеальный пароль это случайный набор символов, включая большие и маленькие буквы, числа и другие символы. Имейте ввиду, что tab лучше не использовать, так как он трактуется по разному разными системами, и при удалённом доступе могут возникнуть проблемы.

В общем, руководствуйтесь здравым смыслом: не выбирайте в качестве пароля чей-то день рождения, какую-то общую фразу, что-то что есть у вас на столе, что-то, что тесно связанно с вами. ''secure1'' так же плохой пароль.

Удаление пользователя ещё более простая процедура. Просто запустите

userdel
и имя пользователя, которого вы хотите удалить. Вам необходимо убедиться, что пользователь в этот момент не в системе, и что нет процессов, выполняемых этим пользователем. Так же помните, что если вы удалили пользователя то его больше нет.

#userdel jellyd

Выполнив эту команду, вы удалите ''jellyd'' из вашей системы. Так ему и надо:) Команда удаляет пользователя из файлов /etc/passwd и /etc/group, но не удалит его домашний каталог. Если вы так же хотите удалить и домашний каталог, вы должны воспользоваться следующей командой:



#userdel -r jellyd

Временная парализация эккаунта, будет описана в разделе ''Изменение паролей'', так как это требует изменения пароля пользователя. Изменение регистрационной информации пользователя будет описано в разделах ''Изменения пароля'' и ''Изменение информации о пользователе''.

Программы для создания и удаления групп очень просты. groupadd просто создаст ещё одну группу в файле /etc/group, с уникальным group ID, а groupdel удалит указанную группу. Вам надо будет вручную добавить пользователей в созданную группу, путём редактирования /etc/group.

Давайте создадим группу:

#groupadd cvs

Или удалим:

#groupdel cvs

Вручную  

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

Вначале, добавим нового пользователя в файлы /etc/passwd(5), /etc/shadow(5) и /etc/group(5). Файл passwd содержит некоторую информацию о пользователе, но не содержит их паролей. Этот файл должен быть доступен для чтения всем пользователям, но вы не хотите, чтобы пароли, даже закодированные, были доступны для чтения всему миру, так как это будет огромной помощью злоумышленникам. Поэтому закодированные пароли хранятся в теневом файле, который доступен для чтения только root пользователю, а в файле passwd пароли пользователей отображаются, как ''x''. Файл group показывает список всех групп, и кто из пользователей к каким группам относиться.

Давайте рассмотрим /etc/passwd файл и и разберёмся, как добавить кого-то. Типичная строка файла выглядит таким образом:

chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash
Каждая строка, соответствует пользователю. Поля в каждой линии разделены двоеточием. Поля в порядке слева на право: имя для входа в систему, закодированный пароль (''x'' для всех в Slackware системе, так как мы пользуемся пакетом для теневых файлов паролей), ID пользователя, ID группы, дополнительная информация о пользователе, разделённая запятыми, домашний каталог и оболочка. Что вам надо сделать, так это добавить в конец файла строчку, заполнив все перечисленные поля соответствующими новому пользователю значениями.



Убедитесь, что пароль x, что ID пользователя уникален, что пользователь входит в группу 100 (''users'' группа в Slackware) и что выбрана правильная оболочка.

Теперь добавим строку в /etc/shadow, который содержит пароли. Типичная строка этого файла выглядит вот так:

chris:$1$w9bsw/N9$UWLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::
Опять таки, каждая строка соответствует одному пользователю, и поля разделены двоеточием. Поля: имя входа в систему, закодированный пароль, количество дней со дня Эпохи (1 Января 1970) до дня, когда пароль был изменён последний раз. количество дней, после которых пароль может быть изменён, количество дней после которых пароль должен быть изменён, количество дней до истечения эккаунта, время когда пользователь получит сообщение о закрытии его эккаунта, дни после истечения эккаунта,после которых эккаунт полностью блокируется, дни с момента Эпохи, когда эккаунт должен быть заблокирован и зарезервированное поле.

Как вы видите, это в основном информация об истечении эккаунта. Если вы не пользуетесь информацией об истечении эккаунта, вам надо только заполнить некоторые из полей со специальными значениями. Иначе, вам понадобится произвести вначале некоторые вычисления и принять некоторые решения, до того, как вы сможете заполнить все эти поля. Для нашего нового пользователя впишите какой-то мусор в поле пароля. Не волнуйтесь о том, какой именно сейчас установлен пароль, так как через минуту мы изменим это. В пароле могут быть использованы любые символы кроме двоеточия. Оставьте ''количество дней, с момента изменения пароля'' пустым. Введите 0, 99999 и 7 как это указанно в примере выше (в те же поля), и оставьте остальные поля пустыми.

Для тех из вас, кто увидев мой пароль в этом примере, и думает, что вы можете взломать его, продолжайте, пожалуйста. Вы теперь знаете пароль к тестовой системе, находящейся за firewall. Это очень вам поможет :)

Так как все являются членами ''users'' группы по умолчанию, вам не надо добавлять нового пользователя в неё. Если вы захотите создать новую группу или добавить нового пользователя в другие группы, вам необходимо будет отредактировать /etc/group. Вот типичная строка файла:



cvs::102:chris,logan,david,root
Поля: имя группы, пароль группы, ID группы и члены группы. Создание новой группы, это всего лишь добавление ещё одной строчки, с уникальным ID и указанием списка пользователей, которых вы хотите включить в группу, в этот файл. Все из перечисленных пользователей, если они в данный момент в системе, вынуждены будут выйти и снова войти в систему, чтобы изменения вступили в силу.

Теперь давайте вернёмся к команде passwd, чтобы создать пароль для созданного нами пользователя. Затем воспользуемся mkdir, чтобы создать домашний каталог там, где мы указали, что он будет расположен в /etc/passwd файле.

Если вы установили sendmail(8), вам необходимо будет создать новый файл с соответствующими правами, принадлежащий новому пользователю в /var/spool/mail каталоге. Вот пример:

#touch /var/spool/mail/jellyd
#chown jellyd.users /var/spool/mail/jellyd
#chmod 660 /var/spool/mail/jellyd25

Эти команды создадут файл очереди почты (mail spool файл) для нового пользователя ''jellyd'' и установят правильные права и принадлежность файла.

Для удаления пользователя, просто удалите всё, что вы вводили при создании. Удалите упоминания о пользователе из /etc/passwd и /etc/group. Удалите его login имя, из всех групп в /etc/group, удалите его очередь почты, если таковая имеется, и так же не забудьте удалить домашний каталог пользователя, если есть необходимость.

Удаление групп проще. Просто удалите строку, определяющую группу из файла /etc/group.


Содержание раздела