|
| ||||||||||||
| ||||||||||||
Введение в POSIX'ивизм(C) Алексей Федорчук, 2005Опубликовано на сайте LinuxCenter Интермедия: средства управления акаунтамиРазговор о пользовательских акаунта логично завершить описанием средств управления ими, позволяющими создавать учетные записи, объединять их в группы, изменять атрибуты и так далее. Однако разговор на эту тему требует знаний об атрибутах процессов, описанных в главе 7, атрибутах файлов, рассмотренных в главе 8, а представления о принципах работы в командной строке, составляющих предмет главы 12. Которые и рекомендуется предварительно прочитать совсем начинающему пользователю. Средства для управления акаунтами несколько отличаются в Linux и в BSD-системах. Причем BSD-утилиты администрирования пользователей и групп являются существенно более мощными, разнообразными, удобными и универсальными, почему и сконцентрируем на них основное внимание, делая соответствующие оговорки относительно аналогичных по назначению средств Linux. Начнем с создания пользователей. Самое простое на сей предмет средство - команда $ adduserВ ответ она в диалоговом режиме последовательно запросит следующую информацию:
После честного и откровенного ответа на все поставленные вопросы будет выведено сообщение такого рода: Username : exp Password : ***** Full Name : Uid : 1002 Class : russian Groups : exp Home : /home/exp Shell : /bin/sh Locked : no OK? (yes/no): Если с этим согласиться. последует сообщение об успехе процедуры и предложение создать еще один Акаунт: adduser: INFO: Successfully added (exp) to the user database. Add another user? (yes/no): Однако, если планируется создание серии однотипных учетных записей, целесообразно сначала выполнить настройку команды $ adduser -C После чего последуют запросы о некоторых общих атрибутах, которые будут в дальнейшем распространяться по умолчанию на все создаваемые учетные записи. А именно:
Определенные таким образом общие атрибуты сохраняются в файле К сказанному остается добавить только, что команда Кроме диалогового режима, команда $ man 8 adduser Команда $ mkdir /home/username Да еще и позаботиться о установке его принадлежности пользователю и группе: $ chown -R username /home/username && \ chgroup -R users /home/username Впрочем, это можно сделать и в один прием: $ chown -R username:users /home/username Использование Другая крайность - внесение всех данных пользователя в файл
$ pwd_mkdb -p /etc/master.passwd внесет соответствующие изменения в остальные три файла, имеющие отношение к акаунтами. При этом поле пароля следует оставить пустым, поскольку любой набор символов в нем развертыванию в реальный пароль не поддается. И в дальнейшем не забыть определить пароль специальной командой Далее, существует программа Наконец, самое мощное средство для управления учетными записями пользователей вообще - команда $ pw useradd username после чего она сама подберет подходящие (то есть ближайшие по порядку свободные) идентификаторы пользователя и группы, поля общих сведений, домашнего каталога и командной оболочки заполнит некими значениями по умолчанию (User ID, $ pw useradd username -m во исполнение которой заодно будут скопированы и "скелетные" файлы. Кроме этого, команда $ pw useradd -D В первозданном виде он будет содержать все те же сведения по умолчанию. Однако его легко отредактировать в текстовом редакторе для внесения всех необходимых данных, которые отныне и будут выступать в качестве "умолчальных" для команды pw. К слову сказать (и это - очень ценное свойство данной команды) - учетные записи ранее созданных пользователей могут быть приведены в соответствие с новой их "скелетной" схемой с помощью команды $pw useradd -D username Ничто не мешает и задать несколько таких конфигурационных файлов
(например, $ pw adduser username -C /etc/pw1.conf она создает учетную запись нового пользователя с именем newuser и его домашним каталогом Некоторые атрибуты учетной записи пользователя, будучи раз созданными, могут быть изменены в дальнейшем, причем некоторые - и самим пользователем (не только root-оператором). Наиболее часто такая необходимость возникает в отношении пароля. Во-первых, как уже было сказано, не всегда он задается при создании учетной записи. Во-вторых, менять пароль время от времени рекомендуется и из соображений безопасности. Для смены пароля предназначена команда Администратор системы с помощью команды $ passwd username может поменять пароль любого пользователя. старый пароль его при этом не запрашивается - да, в общем случае, администратор его и не знает (и восстановить из базы пользовательских записей простым способом не может). Далее, пользователь может изменить еще два атрибута - общие сведения о себе (то есть поле комментария) и командную оболочку. Для этого он вправе использовать команду #Changing user database information for alv. Shell: /bin/csh Full Name: Alex Fedorchuk Office Location: Office Phone: Home Phone: Other information: По завершении их модификации и выходе из редактора внесенные изменения будут зафиксированы в базах данных автоматически. Нетрудно догадаться, что для этого команда $ ls -l /usr/bin/chpass -r-sr-xr-x 6 root wheel 32324 Jan 28 16:12 /usr/bin/chpass Кроме этого, для изменения командной оболочки пользователя во всех POSIX-системах служит команда Другие изменения учетной записи требуют вмешательства администратора, который может обратиться к той же команде $ chpass username Login: alv Password: lhBESi9NHbsrg Uid [#]: 1000 Gid [# or name]: 1000 Change [month day year]: Expire [month day year]: Class: russian Home directory: /home/alv Shell: /bin/csh Full Name: Alex Fedorchuk Office Location: Office Phone: Home Phone: Other information: Можно видеть, что root-оператору предоставлено гораздо больше возможностей для изменения атрибутов акаунта. Что, прочем, не значит, что он может использовать их все. Так, изменение идентификатора пользователя эквивалентно созданию пользователя нового, а изменение имени просто поставит ему в соответствие тот же идентификатор. Ни то, ни другое не вызовет ничего, кроме путаницы. Идентификатор основной группы, вероятно, изменить можно, хотя трудно представить необходимость этого. Ну а о пароле уже говорилось достаточно. Так что фактически из недоступных пользователю полей изменению подлежат только класс и временные атрибуты акаунта. Почему последние подведомственны администратору - понято. Отношение же к классу выведено из сферы компетенции пользователя, так как через его определение возможен очень широкий круг настроек, в том числе и связанных с разделением доступа, степенью безопасности, и т.д. Теоретически, для изменения учетных записей в разных POSIX-системах применяются также команды Внести изменение в учетную запись можно и командой $ adduser -shell shell для изменения командной оболочки, $ adduser -class login_class для изменения класса пользователя, и т.д. - список возможностей можно получить по команде $ adduser --help Кроме этого, для изменения учетных записей может применяться и универсальная команда $ man 8 pw Удаление учетной записи пользователя, на первый взгляд, задача очень простая: достаточно удалить соответствующую строку из файла Поэтому для бесследного истребления следов жизнедеятельности удаленного пользователя их следует сначала отыскать. Все принадлежащие ему файлы могут быть найдены командой $ find / -user username А добавив в конец строки опцию $ grep -e username /* Однако ради чистоты исполнения в обоих случаях поиск должен проводиться, начиная с корневого каталога (о чем сигнализирует символ Поэтому может оказаться целесообразным прибегнуть к команде $ rmuser username она удалит не только учетную запись из базы данных, но также и домашний каталог, почтовый ящик, имя в списках принадлежности групп ( И конечно, ту же работу в состоянии сделать и палочка-выручалочка администратора - команда $ pw userdel username -r Где следует обратить внимание на опцию Разумеется, существуют и средства для управления записями групп. Как уже говорилось, новая группа автоматически создается при заведении нового пользовательского акаунта. По умолчанию ее имя и численное значение идентификатора совпадают с именем и идентификатором пользователя. И для последнего эта группа в дальнейшем остается основной - то есть только о ней содержится информация в учетной записи пользователя. Однако пользователь может принадлежать и к иным, дополнительным, группам: для этого его имя или идентификатор должен быть приписан к списку таких групп в файле В полномочиях root-оператора также и создание новых дополнительных групп - просто добавив строку по образу и подобию любой существующей, записав в последнее ее поле имена тех пользователей, которые должны быть ее членами. Тем же способом группа может быть и удалена. И конечно, для управления группами можно применить универсальное средство - $ pw group add groupname она создаст новую группу, $ pw group del groupname удалит существующую, а посредством $ pw group mod groupname -m username1 username2 или $pw group mod groupname -M username1 username2 дополнит или полностью перепишет списков членов группы, соответственно. Наконец, с помощью $ pw usermod username -G groupname можно приписать пользователя к указанной группе в индивидуальном порядке. |
|
CITForum © 1997–2025