Смекни!
smekni.com

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

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:Foober Smith..,:/home/foober:/bin/bash

Наконец, можно лишить пользователя доступа к командному процессору:

# usermod -s /bin/false foober

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 5 1

Пароль может содержать цифры, буквы и знаки препинания, при этом они чувствительны к регистру символов. Пробелы и функциональные клавиши не допускаются. Рекомендуется использовать сильные пароли, то есть не выбирать в качестве пароля имена, слова из словаря, дни рождения или адреса. Пароли рекомендуется записывать и хранить в надежном месте. Пароли Linux не восстанавливаются. При потере пароля следует обратиться к суперпользователю для получения нового пароля.

9. Создание групп командой GROUPADD

Воспользуйтесь командой groupadd. Команда создает новую группу по системным значениям, настроенным в /etc/default/useradd и /etc/skeL/:

# groupadd newgroup

Системная группа создается с ключом -r:

# groupadd -r newgroup

Ключ -r является специфическим для Red Hat. Если в вашей версии groupadd он не поддерживается, укажите следующий доступный номер системной группы:

# groupadd -g 127 newgroup

Следующий доступный номер группы можно узнать из файла /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 -exec chgrp -v 800 {} \;

11. Создание системного пользователя

Если есть необходимость создать системного пользователя для таких программ, как Postfix, Apache или Squid рекомендуется назначить собственные учетные записи пользователей вместо того, чтобы на скорую руку "свалить" их на универсального пользователя nobody.

Задача может быть решена как командой adduser, так и useradd. С adduser это делается примерно так:

# adduser --system --no-create-home --group squid

Adding system user squid...

Adding new group squid (109).

Adding new user squid (109) with group squid

Not creating home directory

Проверьте результат:

# cat /etc/passwd | grep squid

squid:x:109:109::/home/squid:/bin/false

Хотя подстрока /home/squid присутствует, домашний каталог не создается.

А вот как то же самое делается в useradd:

# useradd -d /dev/nuil -g squid -s /bin/false squid

Многие демоны и процессы, которым необходима системная учетная запись, по умолчанию используют nobody, но все больше приложений требует создания собственной уникальной учетной записи. Старайтесь использовать уникальную учетную запись там, где это возможно, потому что это повышает уровень безопасности системы. Учетная запись nobody чаще всего становится объектом хакерских атак, поэтому собирать разнообразные процессы и демонов в единую цель для атаки не стоит.

12.Создание системных групп командой ADDGROUP

Создание системных групп сценарием addgroup происходит следующим образом:

# addgroup - - system группа

В командной строке можно передать код GID, переопределяя значение по умолчанию.

Не забудьте придерживаться схемы нумерации групп, принятой в вашем дистрибутиве Linux:

# addgroup --system --gid 300 группе

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 Marie Schroder,,123-4567,trainers

Затем запустите сценарий mass_useradd. Сценарий создает записи в /etc/passwd, /etc/group и /etc/shadow, домашние каталоги, персональные группы и пароли, которые становятся недействительными после первого использования.

Следующая команда приказывает mass_useradd использовать список новых пользователей из файла newusers с заменой/созданием выходного файла newLogins.txt:

sh mass_useradd < newusers > newlogins.txt

Присоединение новых имен и паролей к файлу newlogins.txt:

sh mass_useradd < newusers >> newlogins.txt

Помимо выходного файла, который представляет собой обычный список, mass_passwd создает для каждого пользователя отдельный файл с инструкциями. Инструкции распечатываются и раздаются пользователям. Эти файлы, а также файл журнала хранятся в домашнем каталоге

пользователя, запустившего сценарий (обычно root):

# ls /root/mass_passwds

dawns.passwd.txt nikitah.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:Dawn Mari Schroder,.123-4567,trainers:/home/dawns:/bin/bash

nikitah:x:1003:1003:Nikita Horse..123-4567,equine:/home/nikitah:/bin/bash

rubst:x:1004:1004:Rubs The Cat.101,,234-5678.,test:/home/rubst:/bin/bash

Листинг 1. Программа mass_useradd

#!/bin/sh

##

## Использование:

# # sh mass_useradd < inputfile >> new-passwords.txt

##

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:$PATH

# Чтение строки входных данных.

# Формат входного файла:

# имя_пользователя : имя фамилия

# Чтобы в качестве разделителя использовалась запятая, замените

# IFS=":$IFS" на IFS=",$IFS"