Управление учетными записями пользователей
Содержание Введение 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. Они входят в семейство "Shadow Suite", разработанное Джулианом Фрэнсисом Хо (Julianne Frances Haugh) для улучшения защиты паролей и упрощения операций управления учетными записями. Когда-то все файлы приходилось редактировать по отдельности, а шифрованные пароли хранились в файле /etc/passwd. Но поскольку файл /etc/passwd должен оставаться доступным для чтения, хранение паролей в нем, пусть даже в зашифрованном виде, чревато потенциальными неприятностями. Скопировав этот файл, любой желающий теоретически сможет вычислить пароли. Перемещение зашифрованных паролей в файл /etc/shadow, доступный только для привилегированного пользователя root, создает полезный дополнительный уровень защиты. Команда useradd по-разному работает в разных системах. Традиционно она включала всех новых пользователей в одну группу users(lOO). Все домашние каталоги становились общедоступными, потому что все пользователи принадлежали к одной группе. В Red Hat эта схема была заменена схемой "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:/nonexi stent:/bi n/sh carl a:x:1000:1000::/home/carl a:/bin/bash foober:x:1001:1001::/home/test:/bi n/false bitchkat:x:1002:1002::/home/test2/:bin/bash Colby:x:1003:1003::/home/test3:/bin/bash Отображение подмножества записей: $ awk -F: '($3 >- 1000) && ($3 <= 1005) { print $0}' /etc/passwd Для систем Red Hat и SuSE: * awk -F: '$3 > 499 { print $0}' /etc/passwd Алфавитная сортировка результата: $ awk -F: '$3 > 499 { print $0}' /etc/passwd | sort Описанный прием особенно удобен тогда, когда схему нумерации UID в группах удается спроектировать заранее. Например: · Trainers 1000-1100; · Coaches 1101-1200; · Players 1200-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 -с Grace Hopper ghopper Имя пользователя должно быть уникальным. Можно выполнить команду passwd -e. Флаг -е означает, что пароль становится недействительным после первого входа, что заставляет пользователя сменить его: # passwd -e ghopper Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Окружение пользователя формируется на основании стандартного содержимого /etc/default/useradd и/etc/skel. Конфигурация useradd по умолчанию отображается командой # useradd -D Любые значения по умолчанию могут переопределяться в командной строке -- например, UID и командный процессор: # useradd -u 1500 -s tcsh ghopper Также существует возможность расширения стандартной конфигурации -- например, включить пользователя в дополнительные группы: # useradd -G users,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 home directory /home/anitab. Copying files from /etc/skel Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for anitab Enter the new value, or press ENTER for the default Full name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct [y/n] у В командной строке adduser можно указать код UID, переопределяя значение по умолчанию: # adduser --uid 1500 anitab Стандартная конфигурация 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 -exec chown -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:
Страницы: 1, 2, 3, 4, 5
|