План перехода с Windows на Linux: Часть 4. Администрирование пользователей

Пароли, группы и их тени

e-business архитектор IBM Крис Волден -- ваш гид по всем девяти частям серии пособий от developerWorks, помогающих перенести навыки работы с Windows® в Linux®. Он осветит темы от процедуры входа в систему до работы в сети и от приемов использования командной строки до доступа к справочным системам -- вплоть до компиляции пакетов из доступных исходных кодов. В этой части вы научитесь добавлять и удалять пользователей и группы, узнаете о теневом пароле и группах файлов.

Крис Волден, e-business архитектор, IBM

Крис Волден (Chris Walden) -- e-business архитектор в IBM Developer Relations Technical Consulting, Остин, штат Техас, он занимается образовательской деятельностью, внедрением и консультированием среди бизнес-партнеров IBM. Он -- официальный местный фанатик Linux и распространяет хорошие новости среди тех, кто их слушает. Помимо исполнения обязанностей архитектора он управляет всеми Linux-серверами инфраструктуры, которые содержат файловые сервисы, сервисы печати и другие прикладные сервисы в кроссплатформенном пользовательском окружении. Имеет десятилетний опыт работы в компьютерной отрасли от осуществления поддержки до разработки Web-приложений и консалтинга.



04.04.2007

Администрирование пользователей в 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.

Рисунок 1. Экран программы Webmin Create User (Создать пользователя)

Впишите подробности про пользователя и нажмите Create. Будет создан пользователь.

Добавление пользователей посредством инструментария GUI также описано в "Basic tasks for new Linux developers".


Изменение паролей

Из консоли пользовательский пароль меняется командой 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

Каталог /etc

Запомните, что большинство конфигурационных файлов у Linux живет в каталоге /etc.

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

userid:x:75000:75000::/home/userid:/bin/bash

В первой колонке находится имя пользователя. Во второй -- его пароль. В третьей -- пользовательский числовой id. В четвертой -- id основной группы пользователя. В пятой -- полное имя пользователя. В шестой -- расположение пользовательского каталога. Обычно этот каталог живет в /home и называется по имени пользователя. Седьмая колонка содержит shell по умолчанию.

Структура файла паролей
Login IDПарольID пользователяID группыКомментарийДомашний каталогОболочка по умолчанию
useridx7500075000 /home/userid/bin/bash

Заметьте, что в приведенном выше примере, в колонке с паролем стоит "x". Это вовсе не означает, что у пользователя такой пароль. Одно время пароли хранились внутри файла в виде обычного текста. Такая конфигурация возможна и сейчас, но встречается редко из-за последствий. Решено было создать нечто под названием теневой пароль. На месте пароля в файле /etc/passwd записывается "х", а закодированная версия пароля идет в файл /etc/shadow. Такая технология улучшает безопасность посредством разделения информации о пользователе и пароля. Алгоритм кодирования паролей MD5 еще улучшил безопасность, позволяя только надежные пароли. Ниже приведен пример записи теневого пароля:

Теневые пароли и права пользователя

Одна из отличительных особенностей управления пользователями в Linux -- наследие стиля UNIX в файле паролей. Пользователь, который регистрируется, должен быть в состоянии прочитать файл /etc/password, чтобы посмотреть, что его имя существует в системе. Хранение паролей в том же файле даст возможность потенциальным взломщикам узнать их; они могли бы запустить файл /etc/passwd и получить имена и зашифрованные пароли, чтобы дальше работать с отдельной программой прямого подбора. Файл с теневым паролем не обязательно должен быть читаемым, поэтому взломщики не получат пароли в какой бы то ни было форме для работы с ними.

Этот подход, тем не менее, тоже не оптимален, поскольку предоставляет некоторую информацию о пользователе потенциальным взломщикам. Лучший выбор -- хранить пользователей в отдельном репозитории, таком как LDAP.

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.

Осторожность при редактировании файла passwd

Реальную опасность при прямом редактировании файлов /etc/passwd и /etc/group представляет случайное дублирование идентификационного номера. Все ресурсы предпочитают использовать не имя пользователя или группы, а именно id номер. Если вы случайно продублируете его, то дадите доступ туда, куда не собирались. Например, если изменить id номер пользователя на 0, который соответствует пользователю root, то войдя в систему он окажется суперпользователем! Также если удалить в файле строку с пользователем или группой, этот пользователь или группа удалятся.

Это все ошибки, которые может совершить человек. Программа же все делает правильно. Однако, иногда быстрое редактирование файла /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
  • Ознакомьтесь с другими частями этой серии на английском Windows-to-Linux roadmap (developerWorks, ноябрь 2003) или на русском План перехода с Windows на Linux языках.
  • IBM Directory Server реализует Lightweight Directory Access Protocol (LDAP) для доступа к сервисам каталогов, особенно основанным на X.500. Подробности читайте в "Authenticating Linux users with IBM Directory Server" (developerWorks, февраль 2005).
  • Полномочия доступа к файлу и безопасность описаны в Части 3 руководства Introduction to Linux в проекте Linux Documentation Project.
  • Университет Мэрилэнда делятся словами мудрости в выборе безопасных паролей.
  • Документация Red Hat Linux Manual предлагает подробности об использовании Файла теневого пароля.
  • Linux Shadow Password HOWTO дает предпосылки и разумное обоснование теневой системы и пошаговое руководство для выполнения.
  • Безопасность системы -- это обширная и сложная тема, но во взаимосвязанном мире она касается каждого. К счастью, никогда не рано и не поздно начать заниматься ею. Документация Adding Security to Common Linux Distributions и Strategies for Keeping a Secure Server поможет вам сделать именно это.
  • "Addressing security issues in Linux" (developerWorks, июлб 2001) поможет начать изучать основы безопасности.
  • Дополнительная информация о переходе на Linux ожидает вас на странице developerWorks New to Linux.
  • Другие ресурсы для разработчиков Linux ищите на developerWorks Linux zone, включая наши новейшие учебники how-to.
  • Отточите свои знания основ Linux и системного администрирования с нашими руководствами для сертификационных экзаменов. Захотите вы сдавать экзамен или нет, наши серии Linux skill-building tutorial погрузят вас и в основы Linux, и в более продвинутые темы.
  • Узнайте, как заполучить исходник ядра, настроить и загрузить его, добавить функуцию, исправить недостаток или просто поразвлекаться с исходным кодом операционной системы в нашей серии учебников Hacking the Linux kernel. Будьте свободны в своих действиях.
  • IBM developerWorks technical events and Webcasts -- прекрасный способ узнать больше о Linux, а также о продуктах IBM, которые работают в этой операционной системе.
  • Сайт Linux at IBM предлагает программное обеспечение, ссылки, конечные Linux решения и др.
  • The Linux Documentation Project является репозиторием документации Linux, включающий документацию по программному обеспечению, HOWTO, FAQ и многое другое.
  • Linux Online! предлагает объективные Linux-новости и справочную информацию.
  • The O'Reilly Network -- прекрасный источник технической литературы по Linux.

Получить продукты и технологии

  • Постройте свой следующий проект разработки для Linux с использованием IBM trial software, загрузив его непосредственно с developerWorks.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=206988
ArticleTitle=План перехода с Windows на Linux: Часть 4. Администрирование пользователей
publish-date=04042007