136
$ldd /bin/su
linux-gate.so.1 => (0xb76e8000)
libpam.so.0 => /lib/i386-linux-gnu/libpam.so.0 (0xb76c8000)
libpam_misc.so.0 => /lib/i386-linux-gnu/libpam_misc.so.0 (0xb76c4000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7519000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7514000)
/lib/ld-linux.so.2 (0xb76e9000)
$
Теоретическая концепция пользователя поддерживается соответствующей информационной и управляющей инфраструктурой ОС.
Хотя работа с пользователями предполагает всего три действия: создание, удаление и модификацию, - наличие множества конфигурационных файлов, привязанных к древовидной структуре ФС, превращает сам процесс управления в непростую задачу.
Чтобы упростить этот процесс, используются три команды (утилиты): useradd, userdel и usermod, расположенные обычно в директории /usr/sbin.
Замечание
Прежде чем выполнять любую из этих команд, следует воспользоваться руководством man, а после — предварительно запустить команды с ключем --help.
Общий синтаксис команды создания нового пользователя имеет вид:
useradd [ -A { DEFAULT | method [ ,... ] } ]
[ -c comment ] [ -d home_dir ]
[ -e expire_date ]
[ -f inactive_time ]
[ -g initial_group ]
[ -G group [ ,... ] ]
[ -m [ -k skeleton_dir ] | -M ]
[ -s shell ]
[ -u uid [ -o ]] имя_пользователя [ -r ]
[ -n ]
Команда требует одного обязательного аргумента — имя_пользователя. Многие другие аргументы команды интуитивно понятны и не требуют пояснения.
137
Замечание
Наличие множества параметров команды создания пользователя требует хорошего навыка и знания как пользователь работает. Каждый администратор ОС вырабатывает свои основные правила работы с пользователями, поэтому использует только часть ее возможностей. Следовательно, после ввода, команда может задать вопросы в интерактивном режиме. Естественно имеются графические утилиты, которые создают пользователя по умолчанию и позволяют редактирование их атрибутов в более удобном виде.
Удаление пользователя выполняется командой:
userdell имя_пользователя;
Если пользователь с таким именем существует и, при этом, не находится в системе, то userdell:
•удаляет его домашний каталог со всеми подкаталогами;
•удаляет все записи об этом пользователе из файлов /etc/passwd, /etc/shadow, /etc/group;
•возможно, оставляет временные забытые файлы в директории /tmp.
Изменение параметров пользователя выполняется командой usermod, в которой большинство аргументов совпадают с аргументами команды useradd, но ориентированы на изменение соответствующих параметров.
Особое место в управлении пользователями занимает утилита passwd, которая управляет паролями пользователя и ограничивает его работу на уровне сеанса. Общие правила применения утилиты passwd:
•администратор ОС может изменить пароль любого пользователя;
•работа утилиты, практически всегда происходит в интерактивном режиме; например, новый пароль вводится дважды;
•обычный пользователь может сменить только свой пароль, предварительно
набрав старый.
Общий синтаксис команды:
passwd [параметры] [LOGIN]
Замечание
Обязательно следует изучить параметры команды с помощью руководства man passwd и запуска ее с ключем —help.
Утилита passwd имеет множество опций, поэтому рассмотрим наиболее типичные варианты ее применения.
passwd [ -f | -s ] [ имя ]
138
-f Позволяет изменить поле GEOS в файле /etc/passwd.
-s Позволяет изменить интерпретатор shell, вызываемый при входе пользователя в систему.
passwd [ -g ] [ -r | -R ] группа
-g Переключает passwd в режим работы с паролями групп. -r Удаляет групповой пароль.
-R Закрывает доступ к группе для всех пользователей.
passwd [ -x max ] [ -n min ] [ -w warn ] [ -i inact ] имя
-x max |
Максимальное число дней, в течение которых пароль действителен. |
|
9999 — пароль действителен всегда. |
-n min |
В течение скольких дней пользователь не может изменять свой пароль. |
|
0 — может всегда. |
-w warn |
За сколько дней до истечения срока max пользователю начнут |
|
выдаваться предупреждения о необходимости смены пароля. |
-i inact |
Число дней, свыше max, когда пользователь может сменить пароль, |
|
иначе он будет заблокирован до вмешательства администратора. |
passwd { -l | -u | -d | -S } имя
-l Временно запретить доступ пользователя в систему. -u Восстановить доступ пользователя в систему.
-d Удаление пароля пользователя с разрешением входа в систему (без пароля). -S Получить информацию о пароле пользователя. Например,
$ passwd -S
vgr P 12/21/2012 0 99999 7 -1
$
139
Цель лабораторной работы №5 — практическое закрепление учебного материала по теме «Управление пользователями ОС».
Метод достижения указанной цели — закрепление учебного материала, изложенного в первом разделе пособия посредством утилит ОС, а также выполнение заданий, приведенных в данном разделе.
Чтобы успешно выполнить данную работу, студенту следует:
•запустить с flashUSB ОС УПК АСУ, подключить личный архив и переключиться в сеанс пользователя upk;
•запустить на чтение данное пособие и на редактирование личный отчет;
•открыть одно или несколько окон терминалов, причем хотя бы в одном окне
терминала открыть Midnight Commander, для удобства работы с файловой системой ОС;
•приступить к выполнению работы, последовательно пользуясь рекомендациями представленных ниже подразделов.
Замечание
Многие команды ОС студенту еще не известны, поэтому следует:
•для вывода на консоль руководства по интересуемой команде, использовать: man имя_команды;
•для выяснения сущесвования команды, ее доступности и местоположения, использовать: command -v имя_команды;
•для уточнения правил запуска конкретной команды, можно попробовать один из вариантов: команда --help или команда -h или команда -?.
Впроцессе выполнения лабораторной работы студент заполняет личный отчет по каждому изученному вопросу!.
Прочитайте и усвойте учебный материал подраздела 5.1.
Исследуйте содержимое директорий: /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow. Усвойте структуру и назначение этих файлов.
Прочитайте и усвойте учебный материал подраздела 5.2.
Спомощью руководства man изучите утилиты whoami, id, chown и chmod.
Спомощью учебного материала подраздела 4.5, а также таблиц 4.9 и 4.10, изучите структуру поля дескриптора файлов i_mode.
Усвойте назначение битов SUID и SGID.
В директории ~/src создайте текстовый файл test и включите в него команды id и
140
whoami.
Сделайте файл ~/src/test исполняемым и, запуская его, исследуйте эффективные идентификаторы запускаемого процесса.
Находясь в директории ~/src, уснановите значения битов SUID и SGID командой: sudo chmod 3777 ./test
Запустите команды:
./test sudo ./test
Сравните результаты.
Прочитайте и усвойте учебный материал подраздела 5.3.
Исследуйте содержимое директории /etc/skel и сравните с содержимым рабочей директории пользователя upk.
Изучите содержимое директории /lib/x86_64-linux-gnu/security. Изучите содержимое директории /etc/pam.d и файла /etc/pam.conf.
Изучите утилиту ldd и исследуйте с помощью нее ряд утилит, которые вы считаете, участвуют в контроле прав доступа пользователей.
Прочитайте и усвойте учебный материал подраздела 5.4. Изучите утилиты useradd, userdel и usermod.
Из главного меню рабочего стола откройте окно «Все настройки», выберите и запустите ПО, озаглавленное «Пользователи и группы», как показано на рисунке 5.2.
Добавьте нового пользователя, например с именем mmm.
Исследуйте содержимое директорий: /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow. Запустите Midnight Commander в окне терминала и перейдите в директорию
/home/mmm.
Сравните содержимое директории /home/mmm с содержимым диреткоии /etc/skel. Закройте все окна пользователя upk и выйдите из его сеанса.
Войдите в сеанс пользователя mmm, запустите Midnight Commander в окне терминала и исследуте содержимое директории /home/upk.
Выйдите из сеанса пользователя mmm и зайдите в сеанс пользователя upk. Запустите главное окно работы с пользователями и удалите пользователя mmm. Исследуйте изменения структуры файлов и директорий.
Замечание
Учитывая, что настоящий дистрибутив не содержит графической утилиты управления пользователями, выполните данный пункт лабораторной работы с помощью утилит:
useradd, userdel и usermod.