Реферат по предмету "Информатика, программирование"


Управление учетными записями пользователей

Содержание
Введение
1.        Отделение обычныхпользователей от системных
2.        Определение кодовUID и GID
3.        Создание учетнойзаписи пользователя командой USERADD
4.        Создание учетнойзаписи пользователя командой ADDUSER
5.        Изменение учетнойзаписи пользователя
6.        Удалениепользователя
7.        Блокировка учетныхзаписей
8.        Управлениепаролями
9.        Создание группкомандой GROUPADD
10.     Удаление группкомандой GROUPDEL
11.     Созданиесистемного пользователя
12.     Созданиесистемных групп командой ADDGROUP
13.     Изменениепринадлежности к группам
14.     Проверкацелостности файлов паролей
15.     Серийноедобавление новых пользователей
16.     Серийная заменапаролей
17.     Серийноевключение пользователей в группы
18.     Временноеиспользование привилегий ROOT
19.     Временноепредоставление привилегий ROOTкомандой SUDO
20.     Пароли. Службатеневого хранения паролей
21.     Дополнительныемодули аутентификации
Список использованной литературы
Выводы

Введение
В системе Linux как «живым»пользователям, так и системным процессам назначаются учетные записи (accounts),необходимые для управления привилегиями и правилами доступа.
Два важнейших принципабезопасности Linux:
1. Всегда используйтеминимальный уровень привилегий, необходимый для выполнения работы.
2. Используйте сильныепароли.
В Linux входит наборутилит для выполнения операций с пользователями и группами: useradd, groupadd, userdel, groupdel, usermod, groupmod,passwd, chfn и chsh.
Они входят в семейство «ShadowSuite», разработанное Джулианом Фрэнсисом Хо (Julianne Frances Haugh) дляулучшения защиты паролей и упрощения операций управления учетными записями.Когда-то все файлы приходилось редактировать по отдельности, а шифрованныепароли хранились в файле /etc/passwd.
Но поскольку файл/etc/passwd должен оставаться доступным для чтения, хранение паролей в нем,пусть даже в зашифрованном виде, чревато потенциальными неприятностями.Скопировав этот файл, любой желающий теоретически сможет вычислить пароли.Перемещение зашифрованных паролей в файл /etc/shadow, доступный только дляпривилегированного пользователя root, создает полезный дополнительный уровеньзащиты.
Команда useraddпо-разному работает в разных системах. Традиционно она включала всех новыхпользователей в одну группу users(lOO). Все домашние каталоги становилисьобщедоступными, потому что все пользователи принадлежали к одной группе. В RedHat эта схема была заменена схемой «User Privacy Group».
Команда useradd в Red Hatсоздает для каждого нового пользователя приватную группу, идентификатор которой(GID) совпадает с идентификатором пользователя (UID). Разумеется, разные пользователиобладают разными потребностями, некоторые из них могут предпочесть, чтобы ихкаталоги были открытыми. Фундаментальный принцип безопасности гласит: «сначалавсе запретить, потом разрешать по мере необходимости».
Adduser и addgroup,сценарные Perl-обертки для команд useradd и groupadd, появились относительнонедавно. Эти сценарии полностью руководят вашими действиями при создании новогопользователя. Они очень удобны для создания отдельных учетных записей, но недля серийных (batch) операций (разве что если вы самостоятельно внесетеизменения в сценарии adduser и addgroup). В разделе 15 приведен сценарий длясерийного создания новых пользователей и изменения паролей.

1. Отделение обычных пользователей от системных
В любой системе Linux,наряду с учетными записями обычных пользователей, существуют системные учетныезаписи (root, uucp, daemon и т. д.). В файле /etc/passwd эти две категории неотделяются друг от друга. Как отделить учетные записи «живых»пользователей от системных учетных записей?
Воспользовавшись схемойнумерации идентификаторов пользователей в Linux (UID) и возможностью сортировкипо полям или столбцам в awk.
Пример для системы набазе Debian или Slackware:
$ awk -F: '$3 > 999 {print $0}' /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/bi n/sh
carla:x:1000:1000::/home/carl a:/bin/bash
foober:x:1001:1001::/home/test:/bin/false
bitchkat:x:1002:1002::/home/test2/:bin/bash
Colby:x:1003:1003::/home/test3:/bin/bash
Отображение подмножествазаписей:
$ awk -F: '($3 >-1000) && ($3
Для систем Red Hat иSuSE:
* awk -F: '$3 > 499 {print $0}' /etc/passwd
Алфавитная сортировкарезультата:
$ awk -F: '$3 > 499 {print $0}' /etc/passwd | sort
Описанный прием особенноудобен тогда, когда схему нумерации UID в группах удается спроектироватьзаранее.
Например:
·         Trainers1000-1100;
·         Coaches1101-1200;
·         Players1200-2000.
Если придерживатьсяподобной схемы, в нашем распоряжении появится простой инструмент для сортировкипользователей и их последующего разбиения на группы.
2. Определение кодов UID и GID
Если необходимо узнатькод UID пользователя и выяснить, к каким группам он принадлежит, воспользуйтесь командой id:
$ id carl a
uid-lOOO(carla)gid=1000(carla)
groups=1000(carla).20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),
105(windows),432(usb).lOOl(cdrecording)
Ключи команды id:
-u — вывод только кодовUID;
-g — вывод только кодовGID;
-gn — вывод именипервичной группы пользователя вместо GID.
3. Создание учетной записи пользователя командой USERADD
Для создания учетнойзаписи можно воспользоваться командой useradd -m для создания именипользователя, его домашнего каталога и других переменных окружения, затемназначьте пароль командой passwd -e. До создания пароля учетная запись остаетсянеактивной. Далее приводится простейший вариант вызова. С флагом –m команда создает домашний каталог и копирует в него файлы из /etc/skel:
# useradd -m имяпользователя
Как правило, в командутакже включается полное имя пользователя с флагом — с (Comment, то есть комментарий).Поставьте четыре запятые после имени пользователя, чтобы остальные полякомментария (рабочий телефон и т. д.) остались пустыми.
# useradd -m -с GraceHopper ghopper
Имя пользователя должнобыть уникальным.
Можно выполнить командуpasswd -e. Флаг -е означает, что пароль становится недействительным после первого входа, что заставляетпользователя сменить его:
# passwd -e ghopper
Enter new UNIX password:
Retype new UNIX password:
passwd: password updatedsuccessfully
Окружение пользователяформируется на основании стандартного содержимого /etc/default/useraddи/etc/skel. Конфигурация useradd по умолчанию отображается командой
# useradd -D
Любые значения поумолчанию могут переопределяться в командной строке —
например, UID и командныйпроцессор:
# useradd -u 1500 -s tcshghopper
Также существуетвозможность расширения стандартной конфигурации —
например, включитьпользователя в дополнительные группы:
# useradd -Gusers,cdrecord.dialout ghopper
Useradd, в отличие отсвоего родственника adduser, прекрасно работает в сценариях (например, всценарии mass_useradd из раздела 15).
Поля комментария такжеизвестны под названием данных GECOS. Данные GECOS состоят из пяти полей,разделенных запятыми. Если вы собираетесь использовать поле комментария,включите все четыре запятые, даже если значения соответствующих атрибутов неуказываются. В долгосрочной перспективе это окупится, особенно при выполнениисерийных операций и при поиске. Традиционно в данные GECOS входит полное имя,номер комнаты, рабочий телефон, домашний телефон и прочее (произвольнаяинформация). Полное имя используется многими внешними программами — вчастности, почтовыми серверами, однако другиеполя можно использовать так, как вы сочтете нужным. Например, они позволяюторганизовать произвольное деление пользователей на группы и их сортировку (см.раздел 17).
4. Создание учетной записи пользователя командой ADDUSER
Использование adduserвместо useradd помогает ввести все данные конфигурации нового пользователя —пароль, данные GECOS и т. д.
Введите команду adduserимя_пользователя и введите запрашиваемые данные:
# adduser anitab
Adding user anitab...
Adding new group anitab(1008).
Adding new user anitab(1008) with group anitab.
Creating new homedirectory /home/anitab.
Copying files from/etc/skel
Enter new UNIX password:
Retype new UNIX password:
passwd: password updatedsuccessfully
Changing the userinformation for anitab
Enter the new value, orpress ENTER for the default
Full name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the informationcorrect [y/n] у
В командной строкеadduser можно указать код UID, переопределяя значение по умолчанию:
# adduser --uid 1500anitab
Стандартная конфигурацияadduser задается в файле /etc/adduser.conf.
5. Изменение учетной записи пользователя
Иногда требуется внестиизменения в существующую учетную запись — например, сменить имя пользователяили UID, обновить данные GECOS или домашний каталог.
Воспользуйтесь командамиusermod и chfn.
Изменять можно любыеатрибуты, включая имя пользователя и код UID. Чтобы сменить имя, сначалаукажите новое имя, а затем старое:
# usermod -I aborg anitab
Следующая командаизменяет UID (в следующем примере исходное значение 1050 меняется на 1200) безизменения имени пользователя. Сначала указывается новый код UID, затем имя:
# usermod -u 1200 anitab
Принадлежностьпользователя к группам не изменяется. Все файлы в домашнем каталогепользователя автоматически обновляются новым кодом U1D. Тем не менее вампридется вручную найти и изменить все файлы за пределами домашнего каталога(crontab, почтовые каталоги, временные файлы /tmp и файлы в общих каталогах).
Для поиска файлов можновоспользоваться командой find с указанием исходного кода UID, если вы хотитепросмотреть список файлов перед внесением изменений:
# find / -uid 1050
/usr/src/include/lber.h
/usr/src/include/1 dap.h
/usr/src/include/ldbm.h
Смена владельца файловосуществляется командой chown:
# chown 1200/usr/scr/include/lber.h
Последовательная сменавладельца для каждого файла — занятие довольно утомительное. Команды chown иfind могут выполнить эту работу за вас:
# find / -uid 1050 -execchown -v 1200 {} \;
changed owner of'/usr/src/include/lber.h' to 1200
changed owner of'/usr/src/include/ldap.h' to 1200
changed owner of'/usr/src/include/ldbm.h' to 1200
Следующая командаперемещает домашний каталог пользователя со всем содержимым. Если новый каталогне существует, он автоматически создается. Сначала указывается новый каталог, азатем имя пользователя. Обязательно используйте флаги -d и -m:
# usermod -d/serverl/home/aborg/ -m aborg
Изменение данных GECOS:
# chfn aborg
Пользователь можетпередать при вызове chfn данные GECOS по своему усмотрению. Исключениесоставляют два поля: полное имя и «прочее». Содержимое этих полейможет редактироваться только суперпользователем.
6. Удаление пользователя
Иногда требуется удалитьиз системы учетную запись пользователя и найти все файлы, принадлежащие этомупользователю.
Учетная запись удаляетсякомандой userdeL. Поиск файлов, принадлежащих пользователю, осуществляетсякомандой find.
Удаление учетной записи:
# userdel aborg
Чтобы команда userdelсработала, пользователь не может находиться в системе, и под его именем недолжны быть запущены процессы.
Команда userdel удаляетданные пользователя из всех системных файлов (/etc/passwd, /etc/shadow,/etc/group), но не трогает файлы, принадлежащие этому пользователю. Чтобы удалитьдомашний каталог пользователя и почтовый ящик, добавьте флаг -r:
# userdel -r aborg
Другие файлы приходитсяискать отдельно:
# find / -uid 1200
7. Блокировка учетных записей
Блокировка учетной записьи временный запрет пользователю на вход в систему, но без удаления учетнойзаписи, осуществляется при помощи ключа –l(lock):

# passwd -I aborg.
Password changed.
Следующая команда снимаетблокировку с учетной записи:
# passwd -u aborg
Еще один способзаблокировать учетную запись — вставить восклицательный знак в начало поляпароля в файле /etc/shadow:
foobar:!$l$wiD1Qr34$mitGZA76MSYCY04AHIYl:12466:0:99999:7:::
Также можно заменить х вполе пароля в файле /etc/passwd звездочкой (*):
foober:*:1025:1025:FooberSmith..,:/home/foober:/bin/bash
Наконец, можно лишитьпользователя доступа к командному процессору:
# usermod -s /bin/falsefoober
8. Управление паролями
Операции назначения инастройки паролей осуществляются командой passwd.
Сброс или изменениепароля:
# passwd aborg
Пользователь также можетсменить свой пароль:
aborg@server04:~$ passwd
Следующая командаограничивает срок действия пароля aborg шестью месяцами, с выдачейпредупреждения за пять дней:
# passwd -х 180 -w 5 -i l aborg
Чтобы просмотреть паролипользователя, воспользуйтесь командой

# passwd -S option
aborg P 02/18/2004 0 10 51
Пароль может содержатьцифры, буквы и знаки препинания, при этом они чувствительны к региструсимволов. Пробелы и функциональные клавиши не допускаются. Рекомендуетсяиспользовать сильные пароли, то есть не выбирать в качестве пароля имена, словаиз словаря, дни рождения или адреса. Пароли рекомендуется записывать и хранитьв надежном месте. Пароли Linux не восстанавливаются. При потере пароля следуетобратиться к суперпользователю для получения нового пароля.
9. Создание групп командой GROUPADD
Воспользуйтесь командойgroupadd. Команда создает новую группу по системным значениям, настроенным в/etc/default/useradd и /etc/skeL/:
# groupadd newgroup
Системная группасоздается с ключом -r:
# groupadd -r newgroup
Ключ -r является специфическим для Red Hat.Если в вашей версии groupadd он не поддерживается, укажите следующий доступныйномер системной группы:
# groupadd -g 127newgroup
Следующий доступный номергруппы можно узнать из файла /etc/group.
Рекомендуется использоватьлогически последовательную схему нумерации групп. С точки зрения Linux этонесущественно, но зато такая схема избавит вас от многих хлопот. В Red Hatномера системных групп лежат в диапазоне 0-499, а в Debian — в диапазоне100-999.

10. Удаление групп командой GROUPDEL
Сначала, еслипотребуется, переназначьте номера групп редактированием файла
/etc/grou p. Простоскопируйте данные пользователей и вставьте их в другую группу. Затем удалитегруппу командой groupdel, после чего воспользуйтесь командами find и chgrp дляпоиска и передачи права владения файлами другой группе.
Удаление группы:
# groupdel имя_группы
Удаление группы считаетсяхлопотной операцией, потому что не существует утилит для автоматическогопереноса/удаления файлов или пользователей, входящих в группу. Вам придется самостоятельно найти их и изменитькоды GID вручную:
# find / -gid 750
/usr/src/i nclude/1ber.h
/usr/src/include/ldap.h
/usr/src/include/ldbm.h
Изменения можно вноситьпоследовательно:
# chgrp 800/usr/src/include/lber.h
А можно выполнить заменуодновременно посредством совместного использования find и chgrp:
# find / -gid 750 -execchgrp -v 800 {} \;
11. Создание системного пользователя
Если есть необходимость создатьсистемного пользователя для таких программ, как Postfix, Apache или Squidрекомендуется назначить собственные учетные записи пользователей вместо того,чтобы на скорую руку «свалить» их на универсального пользователяnobody.
Задача может быть решенакак командой adduser, так и useradd. С adduser это делается примерно так:
# adduser --system--no-create-home --group squid
Adding system usersquid...
Adding new group squid(109).
Adding new user squid(109) with group squid
Not creating homedirectory
Проверьте результат:
# cat /etc/passwd | grepsquid
squid:x:109:109::/home/squid:/bin/false
Хотя подстрока/home/squid присутствует, домашний каталог не создается.
А вот как то же самоеделается в useradd:
# useradd -d /dev/nuil -gsquid -s /bin/false squid
Многие демоны и процессы,которым необходима системная учетная запись, по умолчанию используют nobody, новсе больше приложений требует создания собственной уникальной учетной записи.Старайтесь использовать уникальную учетную запись там, где это возможно, потомучто это повышает уровень безопасности системы. Учетная запись nobody чаще всегостановится объектом хакерских атак, поэтому собирать разнообразные процессы идемонов в единую цель для атаки не стоит.
12. Создание системных групп командой ADDGROUP
Создание системных группсценарием addgroup происходит следующим образом:
# addgroup — — systemгруппа
В командной строке можнопередать код GID, переопределяя значение по умолчанию.
Не забудьтепридерживаться схемы нумерации групп, принятой в вашем дистрибутиве Linux:
# addgroup --system --gid300 группе
13. Изменение принадлежности к группам
Бывает, что требуетсявключить пользователей в некоторую группу или исключить их из этой группы, для этого отредактируйте файл /etc/groups вручную.Просто скопируйте и вставьте записи, это самый быстрый способ.
Для решения задачи такжеможно воспользоваться командами add user и usermod, но будьте осторожны:adduser позволяет за один вызов включить пользователя только в одну группу, акоманда usermod, позволяющая перечислить несколько групп, стирает прежниеданные о принадлежности пользователя к группам.
14. Проверка целостности файлов паролей
Файлы паролей(/etc/group, /etc/passwd, /etc/shadow и /etc/gshadow) интенсивно используются впроцессе администрирования, и вам нужно какое-нибудь средство для проверкиправильности их синтаксиса.
Файлы /etc/passwd и/etc/shadow проверяются командой pwck, а файлы /etc/group и /etc/gshadow —командой grpek:
# pwck
# grpek
Если команда завершаетсябез выдачи сообщений, значит, ошибки не обнаружены. В противном случае командавыводит перечень ошибок. Ошибки нужно будет исправить, иначе работа программызавершится. Чтобы ограничиться просмотром всех ошибок, запустите программу врежиме «только чтения»:
# pwck -r
# grpek -r
Программа pwck проверяетлогическую целостность файлов /etc/passwd и /etc/shadow.
Она последовательноанализирует записи и проверяет, что каждая запись содержит:
·         правильноеколичество полей;
·         уникальное имяпользователя;
·         действительныеидентификаторы пользователя и группы;
·         действительнуюпервичную группу;
·         действительныйдомашний каталог;
·         действительныйкомандный процессор.
Pwck сообщает обо всехзаписях, не имеющих пароля. Когда pwck обнаруживает ошибку, вы можете либоудалить учетную запись, либо проигнорировать ее. Во втором случае pwckпрекращает работу и не проверяет новые строки (за одним исключением: обнаруживповторяющееся имя, программа продолжит проверку даже в том случае, если вы неудалите учетную запись).
Программа grpckанализирует файлы/etc/group и/etc/gshadow и проверяет, что каждая записьсодержит:
·         правильноеколичество полей;
·         уникальное имягруппы;
·         действительныйсписок членов и администраторов.
15. Серийное добавление новых пользователей
Для серийного добавленияновых пользователей системный администратор может воспользоваться сценариемmass_useradd(листинг 1). Это сценарий командного процессора, поэтому он долженработать практически везде. Также понадобится сценарий mass_passwd(листинг 2). Необходимосохранить эти два сценария в одном каталоге. Также следует установить утилитуpwgen, генерирующую пароли.
Создаем список имен ипаролей в формате:
имя_пользователя: имяфамилия
Также можно добавитьдополнительные данные GECOS:
dawns:Dawn MarieSchroder,,123-4567,trainers
Затем запустите сценарийmass_useradd. Сценарий создает записи в /etc/passwd, /etc/group и /etc/shadow,домашние каталоги, персональные группы и пароли, которые становятсянедействительными после первого использования.
Следующая командаприказывает mass_useradd использовать список новых пользователей из файлаnewusers с заменой/созданием выходного файла newLogins.txt:
sh mass_useradd newlogins.txt
Присоединение новых имени паролей к файлу newlogins.txt:
sh mass_useradd> newlogins.txt
Помимо выходного файла, которыйпредставляет собой обычный список, mass_passwd создает для каждого пользователяотдельный файл с инструкциями. Инструкции распечатываются и раздаютсяпользователям. Эти файлы, а также файл журнала хранятся в домашнем каталоге
пользователя, запустившегосценарий (обычно root):
# ls /root/mass_passwds
dawns.passwd.txtnikitah.passwd.txt mass_passwd.log rubst.passwd.txt
В сценариях используютсястандартные средства Shadow Suite, поэтому они легко настраиваются посредствомрегулировки параметров утилит, задействованных в их работе.

Файл выходных данныхвыглядит так:
dawns shabaefi 1002
nikitah gohbinga 1003
rubst ahtoohaa 1004
В файл /etc/passwdдобавляются записи вида
dawns:x:1002:1002:DawnMari Schroder,.123-4567,trainers:/home/dawns:/bin/bash
nikitah:x:1003:1003:NikitaHorse..123-4567,equine:/home/nikitah:/bin/bash
rubst:x:1004:1004:RubsThe Cat.101,,234-5678.,test:/home/rubst:/bin/bash
Листинг 1. Программаmass_useradd
#!/bin/sh
##
## Использование:
# # shmass_useradd > new-passwords.txt
##
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:$PATH
# Чтение строки входныхданных.
# Формат входного файла:
# имя_пользователя: имяфамилия
# Чтобы в качестверазделителя использовалась запятая, замените
# IFS=":$IFS"на IFS=",$IFS"
while IFS=":$IFS"read username realname: do
# Сначала удаляем пустыестроки и комментарии
case«Susername» in
'' | \#*) continue ;
esac
# Чтение /etc/passwd и/etc/group и вычисление
# следующих свободныхзначений UID and GID.
# Программа начинает с{id=1000}, измените для своей системы
id=$({ getentpasswd; getent group: } | cut -f3 -d: | sort -un
awk 'BEGIN { id=1000 }
$1 == id { id++ }
$1 > id { print id:exit }')
# Добавление новыхпользователей в /etc/group и /etc/passwd.
# Создание домашнихкаталогов командой chmod 700
# Все параметры groupadd,useradd и chmod
# можно изменить всоответствии со спецификой системы.
groupadd -g$id $username
useradd -m -c"$realname" -g $username -u $id $username
chmod 700 /home/$username
# Назначение пароля. Дляэтой цели вызывается другой сценарий
# mass_passwd, которыйможет использоваться независимо.
# Сценарий mass_passwdвыводит имя пользователя, пароль
# и идентификаторпользователя.
$(dirname$0)/lmass_passwd -M $username
done
Листинг 2. Программа mass_passwd
#! /bin/sh
## Каталог для сохраненияфайлов «username.passwd.txt»
## Если каталог несуществует, он будет создан.
text_file_dir=$HOME/mass_passwds
log_file=mass_passwd.log
## Минимальныйидентификатор для «обычных» пользователей
min_uid=1000
## Длина генерируемых паролей
pass_len=8
## Срок действия паролей(в днях)
pass_expire=90
## Получение именипрограммы (скорее всего, «mass_passwd»)
prog=${0##*/}
usage () {
echo «usage: $prog[-v] [-n] username ...»
echo " $prog [-v][-n] [-g] groupname ..."
echo " $prog [-v][-n] [-a]"
echo " -g changepasswords of everyone in a group"
echo " -a changeeveryone's password"
echo " -vverbose"
echo " -n don't do it. just simulate (implies -v)"
e x i t 0
}
short_usage (){
echo >&2«usage: $prog [-v] [-g] [-a] name...»
echo >&2 "$prog -h for help"
e x i t 1
# echo something, butonly i f in verbose mode
vecho () {
test -n"$verbose" && echo "$@"
}
# Построение случайногопароля.
# Если программа pwgenдоступна, используем
# Если программанедоступна, читаем /dev/urandom и отфильтровываем все
# символы, не являющиесяалфавитно-цифровыми, пока количество символов
# не окажется достаточнымдля пароля. Символы в «tr -d» определяют
# ASCII-коды (ввосьмеричной записи) диапазонов удаляемых символов.
randompass () {
pwgen $pass_len 12>&- ||
tr -d'[\000-\057][\072-\100][\133-\140][\173-\377]'
dd bs=$pass_len count=l2>&-
}
# Функция интерпретируетрежим (пользователи / группы / серийная замена)
# и возвращает списокимен пользователей
get_users () {
if [ -n"$all_mode" ]: then
getent passwd | awk -F:'{if ($3 >= '$min_uid') (print $1}}'
return
fi
if [ -z"$group_mode" ]: then
echo "$@"
return
while [ -n "$1"]: do
g_ent=$(getent group"$1" 2>&-)
i f [ -z"$g_ent" ]: then
echo >&2«warning: $1: group not found»
continue
fi
members=${g_ent##*:}
gid=${g_ent%:*}
gid=${gid##*:}
echo "$members"| tr '.' ' '
getent passwd | awk -F:'{if ($4 == '$gid') { print $1 } }'
shift
done
}
## Основной код
group_mode=:verbose=: all_mode=: simulate=: eol =:
while [ -z"$eol" ]: do
case "$1" in
-g) group_mode=l: shift::
-v) verbose=l: shift ;:
-a) all_mode=l: shift ::
-n) simulate=true:verbose=l: shift ::
-M) mass_out=l:shift :: # we're called from mass_useradd
-h | -? | --help) usage ::
--) eol-1; shift ::
-*) short_usage ::
*) eol=l ::
esac
done
# Настройка безопасногоокружения и каталога для текстовых файлов.
# предназначенных длявывода на печать.
PATH=/usr/sbin:/usr/bin:$PATH
umask 077
mkdir -р $text_file_dir
cd $text_file_dir
processed=0
for u in$(get_users "$@"): do
vecho -n «generatingpassword for $u...»
pass=$(randompass)
echo"$u:$pass" | eval $simulate chpasswd
vecho -n "."
eval $simulatechange -M $pass_expire -d 2003-01-01 $u
vecho -n "."
rm -f $u.passwd.txt
echo > $u.passwd.txt"\
------------------------------------------------------------------------------------------------------------------------
Login name: $u
Password: $pass
Please log inand change your password: the system should prompt you to do this when you login. You can change your password at any time with the 'passwd' command. Choosea strong password — everyday words, birthdays, names of people or animals, allthese are too easy to guess.
Also, DO NOT give yourpassword to anyone, ever. The IT staff will never ask you for your password, andneither should anyone else. You will be held responsible for all activity donevia your account.
--------------------------------------------------------------------------------------------------------------------------
printf >>$log_file"$(date) %-12s %s\\n" $u $pass
vecho "$pass"
if [ -n"$mass_out" ]: then
uid=$(getentpasswd $u | cut -f3 -d:)
echo -e"$u\\t$pass\\t$uid"
processed=$(expr$processed + 1)
done
i f [ $processed -gt 0 ]: then
test -z"$mass_out" &&
echo>&2 "$processed password(s) reset — see$text_file_dir/$log_file"
else
echo >&2 «nousers specified — see '$prog -h' for help»
fi

16. Серийная замена паролей
Для серийной сменыпаролей можно воспользоваться сценарием mass_passwd из раздела 15. Сценарийпозволяет задать состав пользователей тремя разными способами:
# mass_passwdпользователь1 пользователь2 ...
# masspasswd -g группагруппа...
# mass_passwd -a
В первом случаепередается список имен пользователей, разделенных пробелами.
Во втором случаеизменяются пароли пользователей, входящих в указанные группы.
В третьем случаеизменяются все пароли из /etc/passwd.
Сценарий mass_passwdгенерирует для каждого пользователя отдельный файл с указанием новых паролей иинструкциями, которые вы сочтете нужным включить. Это позволяет легкораспечатать отдельную инструкцию для каждого пользователя.
Ключ -n тестирует команду без еефактического выполнения:
# ./mass_passwd-v -g -n usergroup
generatingpassword for dawns… teivuphu
generatingpassword for nikitah…kohfahsh
2 password(s)reset — see /root/mass_passwd/mass_passwd.log
Пароли остаются прежними,выполнение команды в этом режиме всего лишь проверяетпараметры перед внесением изменений.

17. Серийное включение пользователей в группы
Для того чтобы добавитьбольшое количество пользователей в группу нужно вставить список имен прямо вфайл /etc/group. Далее описан быстрый способ построения списка пользователейдля вставки в /etc/group. Он основан на схеме нумерации UID, позволяющей легкоотсортировать нужную группу пользователей. Для примера воспользуемся схемой «Trainers/ Coaches/Players», описанной в разделе 1. Добавим вгруппу Trainers несколько новых членов:
$ awk -F: '($3>= 1050) && ($3
bcool.bkind.fmow.kthxbye.oknodo
Далее копируем ивставляем список в /etc/group.
А если в вашей системенет аккуратной, четкой схемы нумерации UID, то можно воспользоваться даннымиGECOS. Следует выбрать одно из полей для хранения метки.
Поле «прочее»лучше всего подходит для этой цели, поскольку пользователи не могут изменятьего по своему усмотрению. Оно находится в данных GECOS —
пяти полей, разделенныхзапятыми. Данные GECOS выглядят примерно так:
bcool: х:1300:1300:Bob Cool…trainer:/home/bkind:/bin/bash
bkind:x:1055:1055:BevKind....trainer:/home/bkind:/bin/bash
После добавления метоквыборка пользователей легко производится при помощи grep и awk:
$ cat/etc/passwd | grep trainer awk -F: '{ print $1}' | tr '\n' ','
bkind.bcool.

18. Временное использование привелегий ROOT
Когда потребуетсявыполнить какую-нибудь административную операцию, воспользуйтесь командой su(Switch User):
carla@windbag:~$ su
Password:
root@windbag:/home/carla#
Затем вернитесь к своей «основнойличности»:
root@windbag:/home/carla#exit
exit
carla@windbag:~$
Переключение на root свосстановлением конфигурации окружения и командного процессора root:
carla@windbag:~$ su -
Password:
root@windbag:/home/carla~#
Переход на другойкомандный интерпретатор:
$ su — --shell=tcsh
Password:
Доступные командныепроцессоры перечислены в /etc/shells.
Команда su позволяетпереключиться на любую учетную запись, пароль которой вам известен. Дефис после su существенно влияет на результат выполнениякоманды. Без дефиса команда сохраняет старую системную конфигурацию и переменныеокружения — командный процессор, редактор по умолчанию, пути и umask.

19. Временное предоставление привелегий ROOT командой SUDO
Требуется поручитьнекоторые операции администрирования системы другим пользователям или создатьдополнительный уровень безопасности для ваших административных потребностей, ноэто нужно сделать так, чтобы мощь привилегий root использовалась в ограниченномобъеме, не раскрывая пароль root.
Воспользуйтесь sudo —командой, которая предоставляет ограниченные права root
конкретным пользователямдля решения конкретных задач и регистрирует их действия без сообщения пароляroot.
Допустим, имеетсяпользователь jhaugh, которому вы хотите предоставить полные права root.Поскольку пользователи sudo имеют собственные пароли, пароль root остаетсязащищенным. Отредактируйте файл /etc/sudoers командой visudo — файл открываетсяв редакторе по умолчанию.
# visudo
# Файл sudoers
#
# Этот файл ДОЛЖЕНредактироваться командой 'visudo'
# с правами root.
# За дополнительнойинформацией о записи в файл
# sudoers обращайтесь кman-странице.
#
# Спецификацияпсевдонимовхостов
# Спецификацияпсевдонимов пользователей
# Спецификацияпсевдонимов команд
# Спецификация привилегийпользователей
root ALL=(ALL) ALL
Для начала создайтепсевдоним хоста:
Host_Alias LOCALHOST=local host
В секции «Спецификацияпривилегий пользователей» («User privilege specification»)добавляются отдельные пользователи:
jhaugh ALL=(ALL) ALL
Эта строка предоставляетjhaugh привилегии root для выполнения любых операций в системе и наподключенных компьютерах. Допустим, вы хотите предоставить другому пользователюtgwynne привилегии root только на локальном компьютере.
Включите следующуюзапись:
tgwynne LOCALHOST = ALL
А пользователю msmithразрешается только выключение локального компьютера:
msmithLOCALHOST=/sbin/shutdown, /sbin/halt
Предоставление группамобычных пользователей права выключения своих компьютеров:
# Спецификацияпсевдонимов хостов
Host_AliasLOCALHOST = local host
# Спецификацияпсевдонимов пользователей
User_Alias USERS =tgwynne. msmith. jhaugh, \
abyron. jwinters
# Спецификацияпсевдонимов команд
Cmnd_Alias SHUTDOWN — /usr/sbin/shutdown, /usr/sbin/halt. \
/usг/sbin/reboot,/usr/sbin/poweroff
# Спецификация привилегийпользователей
USERS LOCALHOST = SHUTDOWN

Вызов команды sudoвыглядит так:
$ sudo /usr/sbin/halt
Команда запрашивает упользователей их пароли, после чего завершается. Чтобы узнать, выполнение какихкоманд им разрешено, пользователи могут выполнить следующую команду:
$ sudo -1
User jhaugh may run thefollowing commands on this host:
(ALL) ALL
Команда sudo фиксируетошибки в системном журнале и передает сообщение root:
$ sudo/usr/sbin/halt
carla is notin the sudoers file. Thisincident will be reported.
Вы можете определять группысерверов и предоставлять пользователям привилегии для группы:
# Спецификацияпсевдонимов хостов
Host Alias FILESERVERS — hostl. host2. host3
# Спецификацияпсевдонимов пользователей
User_AliasFILESERVERADMINS = jhaugh. abyron. jwinters
# Спецификацияпсевдонимов команд
Cmnd_AliasFILEUTILS = /bin/chgrp, /bin/chmod, \
/bin/chown,/bin/cp, /bin/dd, /bin/df, \
/bin/dir,/bin/dircolors, /bin/du, /bin/install, \
/bin/In,/bin/Is. /bin/mkdir, /bin/mkinfo, \
/bin/mknod,/bin/mv, /bin/rm, /bin/rmdir, \
/bin/shred, /bin/touch,/bin/vdir sync
# Спецификация привилегийпользователей
FILESERVADMIN FILESERVERS= FILEUTILS

Команда sudo также можетприменяться для запуска пользователями сценариев (например, сценариевархивации). Следует быть очень осторожными со сценариями, а также с командами, предоставляющими доступ к командному процессоруили запускающими текстовые редакторы, так как с ихпомощью пользователи могут выйти за пределы своихпривилегий.
20. Пароли. Служба теневого хранения паролей
В Linux каждый пользовательимеет свой уникальный числовой идентификатор, по которому он идентифицируется всистеме. Этому идентификатору для более удобной работы соответствует имяпользователя. Например, для привилегированного пользователя root зарезервированнулевой идентификатор. Все имена пользователей Linux и соответствующие имидентификаторы хранятся в специальном файле passwd. Этот файл располагается вкаталоге etc, который, в свою очередь, находится в корневом каталоге системы /.Файл имеет обычную текстовую форму.
Пример файлапользовательских имен passwd.
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
Каждая запись в этомфайле разделена двоеточиями на 7 частей:
1. Имя пользователя. Этополе содержит имя пользователя. Для операционной системы не важно, какое имяимеет пользователь, система ориентируется на идентификатор, а имя играет,пожалуй, только информационное значение для человека, работающего в системе.
2. Поле пароля. Это полев ранних версиях Linux содержало зашифрованный пароль, а теперь, когда былавведена технология теневых паролей, в этом поле просто ставится x.Практического применения это поле не имеет.
3. Идентификаторпользователя (UID). В системе Linux каждый пользователь имеет уникальныйидентификационный номер, который однозначно определяет его в системе. Этотномер используется в различных целях, например, при установке прав доступа нафайлы. Права доступа будут рассмотрены в следующем разделе.
4. Идентификатор группы,к которой принадлежит этот пользователь (GID). Концепция групп будетрассмотрена в следующих разделах.
5. Поле комментария. Вэтом поле может храниться любая дополнительная информация о пользователе,например, его полное имя.
6. Полный путь кдомашнему каталогу пользователя. В ОС Linux для каждого пользователя создается его домашний каталог, в котором он может хранитьсвои документы. Обычно эти каталоги располагаются в директории /home корневогокаталога и по умолчанию имеют имена владельцев.
7. Путь к команднойоболочке. Последнее поле содержит полный путь к рабочей оболочке пользователя(по умолчанию такой оболочкой является bash). Эта оболочка запускается, когдапользователь проходит процедуру аутентификации. В целях безопасности длясистемных пользователей в этом поле очень часто ставится /sbin/nologin. Вприведенном примере пользователь bin имеет как раз такое значение в полекомандного интерпретатора. Сама по себепрограмма nologin не является оболочкой, единственное ее назначение – недопустить вход в систему. Поэтому при попытке входа под именем пользователя, укоторого в качестве рабочей оболочки установлена /sbin/nologin, ничего непроисходит. Обычно такой подход используется при создании пользователей,которые являются системными, то есть от имени которых выполняются какие-то действия внутри системы. А поскольку такимпользователям не нужна рабочая оболочка, хорошим решением, с точки зрениябезопасности, будет установка поля оболочки в /sbin/nologin. Еще однимраспространенным решением в таких ситуациях является установка этого поля взначение /bin/false. Как известно, в Linux, да и в большинстве другихоперационных систем, успешное завершение программы определяется типомвозвращаемого значения. Если возвращается нулевое значение, выполнениепрограммы прошло успешно, если ненулевое – в процессе выполнения программывозникли ошибки. На основе возвращаемого значения система аутентификации делаетвывод о том, пройдена ли аутентификация успешно или она «провалилась».false – программа, которая независимо от внешних факторов всегда возвращаетзначение, отличное от нуля, что в данном случае означает возникновение ошибокпри запуске оболочки, и управление снова возвращается системе аутентификации.При входе в систему программа, предоставляющая доступ, производит чтениеинформации о пользователях как раз из файла passwd. Право на запись в этот файлимеет только привилегированный пользователь root, читать же его могут всепользователи системы. Этот файл никогда не редактируется вручную, хотя, впринципе, это вполне допустимо. Обычно дляредактирования файла пользователей используют специальные программы: useradd,usermod и userdel.
Программа добавленияuseradd позволяет добавить нового пользователя в систему. Для управленияпроцессом создания пользователя эта программа может принимать различныепараметры в командной строке. Например, параметр –s задает используемый пользователемshell, а параметр –g – группу, к которой принадлежит создаваемый пользователь.
Помимо добавления записио пользователе в файл /etc/passwd, программа useradd создает домашний каталогпользователя, который по умолчанию должен размещаться в директории /home. Путьк пользовательскому каталогу может быть определен с помощью параметра –d, закоторым следует полный путь от корневого каталога до каталога пользователя.
Программа usermodпозволяет изменять такие параметры, как рабочая оболочка пользователя, домашнийкаталог, группа, идентификатор пользователя и так далее. Нетрудно догадаться,что выполняет программа userdel. Она удаляет пользователя из системы. Подробнаяинформация об этих программах содержится в соответствующих man-руководствах.
Имя пользователя неявляется секретной информацией, и его могут без проблем узнать другиепользователи системы. Но в таком случае должна существовать опасность входаодного пользователя под именем другого. Однако этого не происходит.Используется такое понятие, как аутентификация.
Аутентификация – этоустановление подлинности пользователя, то есть установление факта того, чтопользователь с таким именем является именно тем, за кого себя выдает.
Для аутентификации в ОСLinux используется уже давно проверенное и доказавшее свою надежность средство– пароль.
Пароль – это наборсимволов (секретное слово), известный только его владельцу и используемый дляудостоверения его подлинности. Каждый пользователь в системе имеет свойсобственный пароль. Наличие пароля – необходимая составляющая политикибезопасности пользователей Linux. Пароль является как бы пропуском пользователяв систему. Без пароля, зная только имя пользователя, проникнуть в системуневозможно.
Пароли хранятся вотдельном файле /etc/shadow. В ранних версиях Linux имена и паролипользователей хранились в одном файле /etc/passwd. Но практика показала, чтодля обеспечения более надежной защиты паролей необходимо создание отдельногофайла для их хранения. Таким образом, технология выделения отдельного файла shadowдля хранения паролей получила название технологии «теневых паролей».

Пример файла и егоструктура приведены ниже.
root:$1$pOy8fNrf$uOh/dQlI03BMIdEAhWrE.0:12369:0:99999:7:::
bin:*:12245:0:99999:7:::
daemon:*:12245:0:99999:7:::
sync:*:12245:0:99999:7:::
Файл shadow, как и файлpasswd, разделен на несколько частей двоеточиями:
1. Имя пользователя. Этополе просто дублируется из файла passwd.
2. Хэш пароля. Пароль вLinux никогда не хранится в открытом виде, в отличие от имени пользователя. Приустановке пароля до сохранения его в файле он шифруется по специальномуалгоритму. По умолчанию таким алгоритмом является алгоритм одностороннегошифрования DES (Data Encryption Standard).
Использованиеодностороннего алгоритма шифрования исключает возможность расшифровки пароля.Остальные поля содержат различную служебную информацию. Файл паролей имеетправа только на чтение и только для суперпользователя. Его содержимое являетсянедоступным для рядовых пользователей, таким образом, исключается возможностьраскрытия зашифрованного пароля.
Для изменения пароля вLinux изначально включена специальная программа passwd.
В качестве параметра вкомандной строке она получает имя пользователя и при запуске требует вводапароля для этого пользователя. При вводе в целях безопасности пароль неотображается на экране монитора, существует очень высокая вероятность допуститьошибку, особенно когда пароль состоит из цифр и символов различного регистра.Поэтому ввод пароля осуществляется 2 раза для проверкиправильности ввода. После подтверждения пароль шифруется и сохраняется в файле/etc/shadow.
При входе в системупроцедурой получения имени и пароля пользователя управляет программа mingetty.mingetty – это программа, выдающая приглашение для ввода имени пользователя ипароля на виртуальную консоль.
После ее запуска наэкране монитора появляется строка-приглашение ко вводу имени и пароляпользователя. После ввода имени и пароля программа передает управлениепрограмме login. login – это программа-посредник, которая осуществляет проверкусуществования, корректности и соответствия имени пользователя и его пароля всистеме. Пароль с помощью механизмов аутентификации шифруется и сравнивается схэшем из файла. После успешного завершенияпроцедуры аутентификации программа login запускает системную оболочку длявзаимодействия пользователя с операционной системой, так называемый shell (отангл. shell – «оболочка»). Путь к исполняемому файлу shellуказывается в последнем седьмом поле записи файла passwd. Обычно по умолчаниюиспользуется bash (Bourne Shell). Выдается приглашение ко вводу команд ссимволом # или $ в конце (по умолчанию символ # используется в приглашениисуперпользователя, а символ $ — в приглашении обычного пользователя). С этогомомента система готова принимать от пользователя команды на выполнение. Для более удобного управления доступом к ресурсамв Linux все пользователи объединяются в группы. В данном случае группа – этомножество пользователей, объединенных по каким-либо критериям. К какой группепринадлежит пользователь, говорит 4 поле регистрационной записи в файле passwd.Наличие групп позволяет создать гибкую политику безопасности, основанную наразделении доступа к ресурсам.
21. Дополнительные модули аутентификации
PAM (PluggableAuthentication Modules) – подгружаемые модули аутентификации.
PAM является наборомдинамически подключаемых модулей, с помощью которых привилегированныйпользователь может выбирать, как приложение должно осуществлять процессаутентификации. Такая технология оказалась очень полезна, особенно при появленииразличных методов аутентификации пользователя в системе. Эта технология имеетдва основных преимущества. Первым преимуществом является модульностьприложений, поддерживающих PAM. Это означает, что для приложения,поддерживающего PAM, появляется возможность изменить механизм аутентификациипользователей без перекомпиляции программы, как говорят «на ходу»,достаточно изменить конфигурационный файл PAM. Второе преимуществоиспользования PAM заключается в том, что администраторсистемы получает полную свободу в выборе схемы аутентификации для каждогоотдельного приложения, причем эта схема может быть достаточно сложной исостоящей из нескольких этапов.
Единственным неотъемлемымтребованием для использования PAM является наличие изначально встроенных в приложениефункций работы с библиотекой PAM.
Сейчас практически всепопулярные программные продукты имеют встроенную поддержку PAM.
Приложениевзаимодействует с библиотекой PAM, причем приложению неизвестно, какиеалгоритмы аутентификации используются при проверке подлинности пользователя.Все операции по аутентификации, то есть шифрование пароля и его проверку,производит библиотека PAM. Библиотека Linux-PAMпроизводит чтение параметров аутентификации приложения из конфигурационногофайла и загружает необходимые модули в память. Затем загруженные модулипопадают в одну из четырех управляющих групп и помещаются туда в порядкепоявления их в конфигурационном файле. Эти модули при вызове библиотекойLinux-PAM выполняют различные задачи аутентификации для приложения. Дляпередачи текстовой информации, запрашиваемой у пользователя, может бытьиспользована встроенная функция обмена. Все модули PAM по умолчаниюрасполагаются в каталоге /lib/security, а конфигурационные файлы PAM – вкаталоге /etc/pam.d. Имя каждого конфигурационного файла, расположенного вкаталоге /etc/pam.d, совпадает с именем приложения, использующего его.Например, для программы login полный путь к конфигурационному файлу PAM будетиметь вид /etc/pam.d/login.
Содержимое этого файламожет иметь следующий вид:
#%PAM-1.0
auth required/lib/security/pam_securetty.so
auth required/lib/security/pam_stack.so service=system-auth
auth required/lib/security/pam_nologin.so
accountrequired /lib/security/pam_stack.so service=system-auth
passwordrequired /lib/security/pam_stack.so service=system-auth
sessionrequired /lib/security/pam_stack.so service=system-auth
sessionrequired /lib/security/pam_limits.so
sessionoptional /lib/security/pam_console.so
Каждая строчка файлаозначает, что для удачной аутентификации пользователь должен пройти черезуказанный модуль. Формат строки любого конфигурационного файла PAM имеет вид:
тип_модуля флаг_контроляпуть_к_модулю параметры_модуля
Все модули библиотеки PAMпо функциональному признаку делятся на четыре типа:
auth – этот тип модулейпозволяет осуществлять два аспекта аутентификации. Во-первых, он выполняет самуаутентификацию, то есть устанавливает факт того, что пользователь действительнотот, за кого себя выдает. Это может быть запрос пароля или другие методыидентификации. Во-вторых, модуль может разрешить членство в группе (независимоот файла групп пользователей group) или определить другие привилегии,основываясь на информации о пользователе.
account – этот типмодулей выполняет функции, не связанные с аутентификацией напрямую. Обычно ониспользуется для разрешения или запрещения доступа в зависимости отопределенных условий, таких как время дня, количество пользователей,одновременно запросивших ресурс, различные параметры системы и так далее.
sessions – в основномэтот тип используется для определения дополнительных действий, которыенеобходимо выполнить до или после предоставления сервиса пользователю. Сюдаможно отнести протоколирование действий по открытию определенных файлов,монтирование каталогов, удаление временных файлов и так далее.
password – этот последнийтип необходим для обновления опознавательного признака (например, того жесамого пароля), который идентифицирует пользователя.
Наличие четырехуправляющих типов говорит о том, что сама технология аутентификации сиспользованием библиотеки PAM способна предоставить не только «голый»способ установления подлинности пользователя, а еще и широкий спектрдополнительных возможностей по защите системы и предоставлению доступа ксервисам.
Флаг контроля определяет,как система будет себя вести при удачном или неудачном прохождении соответствующего модуля. Поскольку модулизапускаются один за другим, то специальной расстановкой флагов можно определитьзначимость каждого из них.
В качестве флагов могутбыть использованы четыре ключевых слова:
required – этот флагопределяет, что для удачной аутентификации в целом необходимо успешноепрохождение соответствующего модуля. Если при прохождении этого модуля системаполучила отказ, процесс аутентификации продолжается до тех пор, пока все модулине будут обработаны, и только потом выдается сообщение об ошибке.
requisite – эффектдействия этого флага тот же, что и флага required, с одним различием: приполучении отказа управление сразу возвращается приложению, прохождениеостальных модулей не производится.
sufficient – весь процессаутентификации считается успешным, если работа модуля с этим флагом былауспешной и проверка на предшествующих модулях с флагом required не провалилась.Если работа модуля с этим флагом была неудачной, это не считается фатальнойошибкой.
optional – успешностьмодуля с этим флагом является необязательной и его использование не критичнодля аутентификации.
Путь к модулю содержитстроку полного пути к модулю в файловой системе. Все модули хранятся в каталоге/lib/security, поэтому, например, путь к модулю pam_limits будет выглядеть как/lib/security/pam_limits.so.
Параметры модуля являютсяиндивидуальным для каждого модуля и описываются в документации модуля.
Помимо основных конфигурационныхфайлов некоторые модули используют дополнительные файлы конфигурации,находящиеся в каталоге /etc/security.
Каждый файл в этомкаталоге предназначен для конкретной группы настроек:
time.conf – в этом файлеможно ограничить время доступа пользователей с
различных терминалов кразличным сервисам. Эти настройки использует модуль pam_time, поэтому длявступления в силу временных ограничений необходимо добавить модуль pam_time вконфигурационный файл приложения, на которое должны распространяться этиограничения.
pam_env.conf – с помощьюэтого файла можно ограничить возможность изменения некоторых переменных средыпользователями. Этот файл используется модулем pam_env.
limits.conf – этот файлдает возможность ограничить размер core-файла, максимально допустимый размерфайла, максимальное количество одновременно открытых файлов, запущенныхпроцессов, количество одновременно открытых пользовательских сессий и такдалее. Используется модулем pam_limits.
access.conf – с помощьюэтого файла можно определить различные параметры входа пользователя в систему,например, с каких компьютеров пользователь имеет доступ в систему. Этотконфигурационный файл используется модулем pam_access.
group.conf – в этом файлеможно указать, к какой группе будет принадлежать процесс, запущенныйпользователем в определенное время с определенного терминала.
Файл читается модулямиpam_time и pam_group.
console.perms – в этомфайле имеется возможность указать права, назначаемые привилегированнымпользователям при входе в систему и возвращаемые консоли при его выходе. Файлиспользуется модулем pam_console.
Как уже неоднократноупоминалось, все модули располагаются в каталоге /lib/security. Краткорассмотрим, какие модули входят в стандартный пакет PAM, и какие функциивыполняет каждый из них:
1. pam_cracklib — password — Позволяетпроверять пароль на стойкость, не является ли он, например, словом из словаря ит. д. В основном используется программами, задающими пароли. К полезнымпараметрам относятся:
retry=N – задаетколичество попыток на исправление ошибки;
diffok=N – определяетминимальное количество символов, которое должнобыть изменено при смене пароля;
minlen=N – задаетминимальный размер пароля в символах;
dcredit=N ucredit=Nlcredit=N ocredit=N – задает минимальное количество цифр, строчных, прописныхбукв и других |символов, которые должны присутствовать в пароле.
pam_deny любой Основноеназначение этого модуля – запрет доступа при любых условиях.
2. pam_env — auth — Контролируетсохранность переменных среды. С помощью параметраconffile=S можно указать файл конфигурации, отличный от стандартного.
3. pam_ftp — auth — Предназначендля организации анонимного доступа. Получив в качестве имени пользователяпоследовательность ‘anonymous’, модуль в качестве пароля требует строку, похожуюна почтовый адрес. К полезным параметрам относятся:
users=XXX, XXX, … — разрешает анонимный вход для пользователей из этого списка;
ignore – позволяет необращать внимания, похож ли пароль на почтовый адрес.
4. pam_group — auth — Определяетгруппу-владельца процесса, |запущенного аутентифицированным пользователем.
5. pam_lastlog — auth — Сообщаето месте и времени входа в систему. Для протоколирования используется файл wtmp, находящийся в каталоге /var/log. К полезным параметрам можно отнести:
nodate notermnohost silent – позволяют не выводить в сообщении дату, терминал,адрес машины или вообще ничего незаписывать в файл;
never – предоставляетвозможность выдачи приветствия пользователя, впервые вошедшего в систему.
6. pam_limits |session |Позволяет задаватьограничения для пользователя на размер файлов, число одновременно открытыхдескрипторов и т. д. Имеет параметр conf=S для указанияальтернативного конфигурационного файла.
7. pam_listfile — auth — Предназначендля организации доступа на основе конфигурационных файлов наподобие /etc/ftpaccess.Возможные паарметры:
onerr=succeed | fail –задает возвращаемое значение в случае неудачного поиска;
sence=allow | deny –задает возвращаемое значение в случае удачного поиска;
file=filename – позволяетуказать имя файла со списком;
item=user — tty — rhost — ruser — group
shell – определяет типэлементов в списке. Например, значение item=userозначает, что в файле содержится список именпользователей, имеющих возможность входа в систему.
8. pam_mail — auth — Позволяетуведомлять пользователя о вновь пришедшей почте. Полезные параметры:
dir=S – указывает путь ккаталогу почтовых очередей;
noenv – отменяетустановку переменной среды MAIL;
close – разрешаетуведомлять о новых письмах в почтовых ящиках пользователей с аннулированнымибюджетами;
nopen – запрещает выводкакой-либо почтовой информации для вновь заведенного бюджета.
9. pam_nologin — auth — Еслифайл /etc/nologin существует, в систему может войти только привилегированныйпользователь root, остальным же при попытке входа выдается содержимое этогофайла.
10. pam_permit — любой — Этотмодуль дает доступ при любых условиях. Необдуманное использование этого модуля весьма опасно!
11. pam_pwdb — любой — Замещаетмодули серии pam_unix. Этот модуль использует интерфейс библиотеки libpwdb,предназначенный для работы с пользовательскими базами данных, что повышаетнезависимость системы аутентификации от способа хранения пользовательскихданных. Полезные параметры:
nullok – разрешаетиспользование пустых паролей;
md5 shadow bigcrypt –указывает используемые алгоритмы шифрования паролей.
12. pam_radius — bsession — Позволяетосуществлять аутентификацию через сервер RADIUS.
13. pam_rhosts_auth — auth — Механизм работы этого модуля основывается на анализесодержимого файлов hosts.equiv и .rhosts, используемых для аутентификации такими службами, как rlogin и rsh. Полезные параметры:
no_hosts_equiv –позволяет игнорировать содержимое файла hosts.equiv;
no_rhosts — позволяетигнорировать содержимое файла .rhosts;
suppress – позволяетизбежать запись малозначительных сообщений в системный журнал, в частности, прииспользовании флага sufficient.
14. pam_root_ok — auth — Позволяеторганизовать доступ привилегированного пользователя к сервису, минуя процедуру ввода пароля. Пользователь допускается к сервису, только если его системныйидентификатор равен нулю (то есть привилегированный пользователь root).
15. pam_securetty — auth — Позволяет учитывать файл /etc/securetty. В файле /etc/securetty указаны терминалы, с которых привилегированныйпользователь имеет доступ в систему.
16. pam_time — account — Накладываетвременные ограничения на доступ в систему.
17. pam_warn — auth — Производитзаписи в системных журналах при password определенныхдействиях.
18. pam_wheel — auth — Этотмодуль позволяет получить права привилегированного пользователя только пользователямопределенной группы. Полезные параметры:
group=XXX – задаетгруппу, пользователи которой имеют возможность получить права пользователяroot;
deny – этот параметринвертирует действие модуля, другими словами, он запрещает изменение прав направа пользователя root для указанной группы;
trust – избавляетпользователей указанной группы от необходимости ввода пароля при сменеидентификатора на нулевой.
Возможно также созданиесобственных PAM-модулей на основе готовых шаблонов,что позволяет быстро получить необходимый метод аутентификации без особых усилий.

Выводы
В даннойрасчетно-графической работе была освещена тема управления учетными записямипользователей в операционной системе Linux; вопросы создания, удаления учетныхзаписей, блокировка и администрирование доступа пользователей к ресурсам ОС,создание и удаление групп пользователей, управление паролями и работа службытеневого хранения паролей; описана работа дополнительного модуля аутентификацииPAM, рассмотрены вопросы серийного добавления пользователей, создания групп изамены паролей, описана работа вспомогательных утилит mass_add и mass_passwd.
А также рассмотреныкоманды управления учетными записями, формат учетных записей, а такжевозможность временного предоставления пользователям администраторских правпользователя Root.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.