Администрирование пользователей в Linux одновременно очень похоже и не похоже на администрирование в Windows. Обе системы многопользовательские и контроль доступа к ресурсам основан на идентификации пользователя. Обе системы позволяют группировать пользователей так, что контроль доступа упрощается и не приходится для внесения каждого изменения затрагивать много пользователей. А дальше начинаются различия.
Суперпользователь
В Linux Суперпользователь (Super User) называется root. Пользователь root может контролировать каждый процесс, имеет доступ к каждому файлу и может выполнить любую функцию в системе. Ничего не может быть спрятано от root’а. Говоря административным языком, root — это высшее существо. Поэтому очень важно, чтобы учетная запись root была защищена секретным паролем. Не стоит использовать root’а для выполнения обычных задач.
Другим пользователям можно дать привилегии суперпользователя, но делать это надо с осторожностью. Обычно вы будете настраивать отдельные программы, чтобы определенные пользователи могли выполнять их как root, вместо того, чтобы предоставлять всем суперпользовательский доступ.
Создание новых пользователей
Новых пользователей можно создавать либо из консоли, либо с помощью инструментария типа программы Webmin. Пользователь добавляется командой useradd. Из консоли это делается, например, так:
useradd -c "normal user" -d /home/userid -g users\
-G webadm,helpdesk -s\ /bin/bash userid
Эта команда создает нового пользователя по имени “userid” (последний параметр в команде). Дается комментарий, который говорит, что “userid” — “normal user” (обычный пользователь). Для него будет создан домашний каталог “/home/userid”. Его основной группой будет users, но он также будет входить в группы “webadm” и “helpdesk”. В качестве обычного консольного окружения новый пользователь из примера будет использовать оболочку “/bin/bash”.
Webmin позволяет создать нового пользователя легко и наглядно. Войдите в Webmin своим любимым браузером и зайдите в раздел System. Выберите инструмент “Users and Groups”, а затем щелкните на Create a new user
.
Впишите подробности про пользователя и нажмите Create. Будет создан пользователь.
Изменение паролей
Из консоли пользовательский пароль меняется командой passwd :
passwd userid
Изменить пароль другого пользователя таким способом может только root. После ввода команды вам будет предложено ввести и подтвердить устанавливаемый пароль. Если они совпадут, то данные пользователя будут обновлены, а пароль изменен. Пользователь также может изменить свой собственный пароль, написав в командной строке консоли passwd; в этом случае прежде чем вводить новый пароль, необходимо будет ввести старый.
Большинство дистрибутивов Linux устанавливаются с модулем password cracker, который вызывается для изменений пароля. Этот модуль проверяет, насколько пароль хорош. Если не очень, то появляется предупреждение, что у пользователя плохой пароль. В зависимости от конфигурации, у него могут потребовать придумать безопасный пароль, а только потом принять его. Root’а же могут просто известить, когда пароль уже установлен.
В Webmin’е пароль меняется с помощью модуля “Change Passwords” из раздела System. Выберите пользователя из списка и введите новый пароль в пустые поля формы.
Удаление пользователей
Из консоли пользователи удаляются командой userdel.
userdel -r userid
Необязательный ключ -r удалит, кроме пользователя, его домашний каталог со всем содержимым. Если каталог хочется оставить, не пишите -r. Этот ключ не будет автоматически удалять все файлы в системе, которые принадлежат пользователю, только его домашний каталог.
Как организованы пользователи
Конфигурация Linux имеет в своей основе текст. Поэтому все пользователи в Linux расположены в файле под названием /etc/passwd. Командой more вы можете постранично просмотреть этот файл:
more /etc/passwd
Структура этого файла вполне доходчива. Каждая строка содержит нового пользователя с параметрами, разделенными двоеточием.
userid:x:75000:75000::/home/userid:/bin/bash
В первой колонке находится имя пользователя. Во второй — его пароль. В третьей — пользовательский числовой id. В четвертой — id основной группы пользователя. В пятой — полное имя пользователя. В шестой — расположение пользовательского каталога. Обычно этот каталог живет в /home и называется по имени пользователя. Седьмая колонка содержит shell по умолчанию.
Структура файла паролей
Login ID | Пароль | ID пользователя | ID группы | Комментарий | Домашний каталог | Оболочка по умолчанию |
userid | x | 75000 | 75000 | /home/userid | /bin/bash |
Заметьте, что в приведенном выше примере, в колонке с паролем стоит “x”. Это вовсе не означает, что у пользователя такой пароль. Одно время пароли хранились внутри файла в виде обычного текста. Такая конфигурация возможна и сейчас, но встречается редко из-за последствий. Решено было создать нечто под названием теневой пароль. На месте пароля в файле /etc/passwd записывается “х”, а закодированная версия пароля идет в файл /etc/shadow. Такая технология улучшает безопасность посредством разделения информации о пользователе и пароля. Алгоритм кодирования паролей MD5 еще улучшил безопасность, позволяя только надежные пароли. Ниже приведен пример записи теневого пароля:
userid:$1$z2NXZR19$PZpyL84DmPKBXMeURaXXM.:12138:0:186:7:::
Вся функция теневого пароля остается за кадром, а вам редко потребуется делать что-нибудь большее, чем включать ее.
Группы
Группы в Linux почти то же самое, что и в Windows. Вы создаете группу и добавляете в ее список участников. Ресурсы могут иметь права, приписанные группе. Члены группы имеют доступ к ресурсу, ассоциированному с этой группой.
Создание группы выполняется просто, консольной командой groupadd:
groupadd mygroup
Эта команда создаст группу без участников с названием “mygroup”. Группы живут в файле с названием /etc/group. Каждой группе отводится отдельная строка, как написанная ниже:
mygroup:x:527:
Первая колонка показывает имя группы. Вторая — пароль. Опять-таки “x” означает, что настоящий пароль хранится в теневом файле /etc/gshadow. Третья колонка будет содержать разделенные запятыми идентификаторы участников группы.
Чтобы добавить члена группы, используйте команду gpasswd с ключом -a и id пользователя, которого вы хотите добавить:
gpasswd -a userid mygroup
Удалить пользователей из группы можно той же командой, но с ключом -d вместо -a:
gpasswd -d userid mygroup
Вносить изменения в группы можно также прямым редактированием файла /etc/group.Группы могут быть созданы, отредактированы и уничтожены в программе Webmin тем же самым инструментом, который использовался выше для работы с пользователями.
Пользовательские и групповые приложения
Покуда здесь мы не говорим подробно о контроле доступа, вам потребуется некое понимание того, как пользователи и группы соотносятся с файлами. Если посмотреть на расширенный вывод списка файлов в каталоге, можно увидеть что-то вроде следующего.
-rw-r--r-- 1 userid mygroup 703 Jun 23 22:12 myfile
Не обращая пока что внимания на остальные колонки, посмотрите на третью, четвертую и последнюю. В третьей колонке находится имя владельца файла, userid. Четвертая колонка содержит группу, ассоциированную с файлом, mygroup. Последняя колонка — это имя файла. Каждый файл имеет только одного владельца и одну группу. Можно дать права Other (Остальным), пользователям, которые не попадают ни в какую категорию. Считайте Other эквивалентом группы Everyone в Windows.
Единственный владелец файла — это обычно для операционных систем, но единственная группа-владелец кажется ограничением администраторам, не знакомым с технологией. Это не так. Поскольку пользователи могут быть членами любого количества групп, можно легко создавать новые и новые группы для сохранения безопасности ресурса. В системе Linux определения группы скорее основываются на необходимом доступе к ресурсам, нежели на подразделениях компании. Если ресурсы организованы в системе логично, то создайте побольше групп, чтобы потом настраивать доступ к ресурсам.
Более полную информацию о связи пользователей и групп можно найти в разделе Ресурсы в конце этой статьи. За подробностями о том, как менять полномочия доступа к файлу, обращайтесь к man chmod.
Заключение
В принципе, пользователи и группы в Linux работают так же как и в Windows, с той лишь разницей, что только одна группа может соответствовать ресурсу. Имея дело с группами в Linux, считайте их “дешевыми” и не бойтесь создавать их много для сложного окружения. Создавая группы, основывайтесь на необходимостях доступа к ресурсам, нежели на подразделениях компании.
Информация о пользователе и группе хранится в файлах /etc/passwd и /etc/group, соответственно. Ваша система возможно также содержит файлы /etc/shadow и /etc/gshadow, в которых находятся зашифрованные пароли для большей безопасности. Можно работать с пользователями и группами, непосредственно редактируя файлы, однако делать это надо с большой осторожностью.
Все операции с пользователям и группам можно выполнять из консоли, что дает возможность включать эти операции в скрипты. Существуют также программы, например, Webmin, предоставляющие графический интерфейс для работы с пользователями и группами.
Оригинал на developerWorks IBM
One Comment