продолжение перевода статьи Linux Fundamentals Part 3 начало...
Управления аккаунтамиto Linux
Введение в /etc/passwd

В этой части, мы рассмотрим механизм управления аккаунтами Linux, начнем с файла /etc/passwd которые определяют всех пользователей существующих в Linux системе. Вы можете просмотреть свой файл /etc/passwd  напечатав /etc/passwd Каждая строка в /etc/passwd определяет аккаунт пользователя. Ниже представлена одна из таких строка из моего /etc/passwd

drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash

Как вы можете увидеть, здесь совсем не много информации. Каждая строка включает несколько полей, которые разделяются между собой символом «:» . Первая строка, это имя пользователя (drobbins ), следующее поле содержит символ «х». В старых системах Linux это поле содержит пароль пользователя в зашифрованной форме для индентификации, но практически все Linux системы хранят паспорт в другом файле. Третье поле (1000) определяет пользовательское id ассоциированный с определенным пользователем, и четвертое поле (1000) ассоциирует этого пользователя с определнной группой; далее мы рассмотрим, где и как определяется группа 1000. Пятое поле включает текстовое описание этого аккаунта — в данном случае, имя пользователя. Шестое поле содержит название домашней директории, и седьмое определяет пользовательскую программу shell , которая автоматически запустится когда пользователь войдет в систему.

Типы и уловки /etc/passwd

Вы, вероятно, заметили, что существует много больше пользовательских аккаунтов, которые в данный момент находятся в системе. Причина этого в том, что различные компоненты Linux используют пользовательские аккаунты для соблюдения мер безопасности. Обычно, id (“ uid”)этих аккаунтов больше 100, и много из них имеют записи подобные /bin/false для shell по умолчанию. Поскольку /bin/false код ничего не делает, но завершает работу с сообщением об ошибке, это эффективно предотвращает этот аккаунт от использования как пользовательский – а только для внутреннего пользования.

/etc/shadow

Таким образом, пользовательские аккаунты – это все, кто определен в /etc /passwd Система Linux содержит парный /etc/passwd файлу файл называемый /etc/shadow Этот файл, в отличии от /etc /passwd является читаемым только для пользователя root и содержит зашифрованную информацию о паролях. Давайте взглянем на образец строки из фала /etc/shadow

drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

Каждая строка определяет информацию для одного конкретного аккаунта, и опять таки, каждое поле разделено с помощью «:». Первое поле – это название пользовательского аккаунта с которым ассоциирована эта запись. Второе поле содержит зашифрованный пароль. Остальные поля описываются в таблице ниже:

поле 3 # количество дней с 1/1/1970 до последней модификации пароля
поле 4 # количество дней после, которого можно менять пароль (если 0, то в любое время)
поле 5 # количество дней после, которых система заставит пользователя изменить пароль (-1 никогда)
поле 6 # количество дней между истечением действия времени пароля и напоминанием о нем (-1 без предупреждения)
field7 # количество дней после истечении, которых произойдет дезактивации аккаунта системой (-1 никогда)
поле 8 # количество дней как аккаунт дезактивирован (-1 аккаунт активен)
поле 9 зарезервировано для последующего использования

/etc/group

Далее, мы рассмотрите файл /etc/group который определяет все группы в системе Linux. Ниже приведен примет строки из такого файла:

drobbins:x:1000:

Формат этой записи следующий; по-порядку, название группы, пароль в зашифрованной форме (как отмечалось ранее, в нынешних системах поле не используется), id группы и четвертое поле, в этом примере пустое место после символа» :», перечисляет всех пользователей этой группы. Напомню вам, что строка в нашем примере относится к группе с id 1000 . Это оказывает эффект на размещение пользователя drobbins в группу drobbins, не смотря на то, что этого имени нет в четвертом поле файла.

Заметки о группах

Заметки о связывании пользователей и группы: в некоторых системах, вы можете заметить, что новый аккаунт связывается с одноименной группой (и обычно с идентичным номером). В других системах, все пользовательские аккаунты будут принадлежать одной группе. Подход к тому, как вы будете организовывать администрируемую вами систему, исходит от вас. Создание соответствующих групп для каждого пользователя имеет то преимущество, что позволяет проще контролировать доступ к файлам этих пользователей, размещая доверенных пользователей в их персональные группы.

Добавление пользователей и группы вручную

Далее, я покажу вам, как создавать аккаунт нового пользователя и группу. Лучший способ научится делать это, добавить нового пользователя в систему вручную. Для начала, убедимся, что переменная окружения EDITOR указывает на наш любимый текстовый редактор:

# echo $EDITOR vim

Если это не так вы можете настроить переменную напечатав:

# export EDITOR=/usr/bin/emacs # vipw

Теперь вы сами можете убедится, что файл /etc/passwd открылся в вашем любимом редакторе. Во время модификации системных файлов passwd и  group, очень важно использовать команды vipw и vigr. Они гарантируют , что ваши критические файлы passwd и group заблокированы должным образом и не могут быть испорчены.

Редактирование /etc/passwd

Теперь, после того, как вы открыли файл, напечатайте следующее:

testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false

Вы только что добавили пользователя “testuser” с UID 3000. Вы добавили его с GID( id группы) 3000, которую пока не создали. Соответственно, вы назначили этого пользователя в группу с id 3000. Этот новый пользователь описан как LPI tutorial test user; домашняя директория пользователя /home/ testuser и shell этого пользователя установлен /bin/false по соображениям безопасности . Если бы вы создавали не тестовую запись, то могли бы указать в качестве shell например программу /bin/bash Хорошо, давате пойдем дальше, сохраним изменненную запись и выйдем.

Редактирование /etc/shadow

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

drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

Изменим имя пользователя в скопированной строке на новое имя и удостоверимся, что все поля заполнены согласно вашим предпочтениям:

testuser:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

Сохраним файл и выдем из редактора.

Установка пароля

Вы опять вернетесь к командной сроке. Теперь настало время задать пароль нового пользователя:

# passwd testuser Enter new UNIX password: (введите пароль нового пользователя) Retype new UNIX password: (введите пароль еще раз)

Редактирование /etc/group

Теперь, после того как  /etc/passwd и/etc/shadow файлы отредактированы, настало время сконфигурировать /etc/group. Сделайте следующее:

# vigr

Перед вами появится файл /etc/group, готовый для редактирования. Теперь , если хотите назначить группу по умолчанию для вашего тестового пользователя, вы не должны, что-либо добавлять в файл /etc/groups. Если же вы хотите создать новую группу для этого пользователя, добавьте следующую линию:

testuser:x:3000:

Сохраните файл и закройте редактор.

Создание домашней директории

Вы близки к завершению. Напечатайте следующую команду для создания домашней директории нового пользователя:

# cd /home # mkdir testuser # chown testuser.testuser testuser # chmod o-rwx testuser

Наша домашняя директория уже на месте и готова к использованию. Итак, все готово. Если захотите использовать аккаунт, вам надо будет, используя команду vipw , поменять shell на /bin/bash , для того. Чтобы пользователь мог войти в него.

Утилиты аккаунта администратора

Теперь, после того как вы узнали, как добавлять аккаунт вручную, давайте рассмотрим некоторые полезные утилиты администратора доступные под Linux. Для экономии места и времени , мы не будем детально рассматривать команды. Помните, что вы всегда можете получить необходимую информацию о команде из man страниц. Если вы планируете сдавать LPIC 101 экзамен, то должны потратить некоторое время, для более детального ознакомления с каждой из этих командам.

newgrp

По умолчанию, любой файл созданный пользователем будет доступен пользовательской группе определенной в / etc/passwd Если пользователь принадлежит другой группе, он или она могут напечатать newgrp thisgroup , что бы перенастроить членство в текущей группе на группу thisgroup . Затем, любые вновь созданные файлы будут наследовать членство thisgroup .

chage Команда chage используется для отображения и изменения времени действия пароля хранимого в /etc/shadow.
gpasswd Инструмент администратора для общих целейA general-purpose group administration tool.
groupadd/groupdel/groupmod Используется для добавления, удаления, изменения групп в /etc/group
useradd/userdel/usermod Используется для добавления, удаления, изменения пользователей в /etc/passwd. Эта команда также выполняет некоторые другие функции. Смотрите man страницы для подробной информации.
pwconv/grpconv Используется для конвертирования файлов passwd и group в "новый стиль" shadow passwords. Фактически, все Linux системы уже используют новый стиль хранения паролей в shadow passwords, таким образом, вам нет необходимости пользоваться этой командой.
перевод статьи Linux Fundamentals Part 3 далее...