Книга: Linux глазами хакера
4.3. Управление пользователями
Для добавления пользователя используется команда useradd
. С ее помощью также можно изменить значения по умолчанию, которые будут присваиваться учетной записи.
Команда выглядит следующим образом:
useradd параметры имя
Параметров очень много, большинство из них вам знакомо по файлу /etc/password, который мы рассматривали в гл. 3. Рассмотрим каждый аргумент:
? -с
— простое текстовое описание, которое может быть любым;
? -d
— домашний каталог пользователя;
? -e
— дата отключения учетной записи, после которой пользователь станет неактивным, вводится в формате ГГГГ-ММ-ДД;
? -f
— количество дней до отключения. Похоже на параметр -е, только указывается период относительно текущей даты. Если запись нужно отключить сразу после создания, то используйте значение 0. По умолчанию устанавливается -1, что соответствует бесконечности, т.е. запись будет активной всегда;
? -g
— основная группа, которой будет принадлежать пользователь. Можно указывать как имя, так и идентификатор. В Red Hat каждый пользователь принадлежит какой-либо группе;
? -G, [...]
— дополнительные группы, в которых будет существовать пользователь. Имена групп перечисляются через запятую;
? -m
— ключ для создания домашнего каталога пользователя. В такую директорию будут скопированы все файлы из /etc/skel;
? -M
— не создавать домашний каталог. По умолчанию директория формируется в /home/ИмяПользователя
, чтобы этого избежать, нужно явно прописать в команде запрет;
? -r
— если указать этот параметр, то в качестве идентификатора будет выбрано число из системной области;
? -p
— зашифрованный пароль, который можно получить с помощью команды crypt
;
? -s
— командный интерпретатор, который будет обрабатывать директивы пользователя;
? -u
— идентификатор, который должен быть уникальным. Если его не устанавливать, то система выберет свободное значение.
Самый последний параметр — имя создаваемой учетной записи. Давайте рассмотрим, как можно добавить нового пользователя по имени robert, для которого все значения будут установлены по умолчанию:
useradd robert
cat /etc/passwd
В первой строке мы создаем нового пользователя по имени robert. Вторая строка выводит на экран содержимое файла /etc/passwd, где хранится информация о всех учетных записях. И заключительная строка в нем будет выглядеть следующим образом:
robert:x:501:501::/home/robert:/bin/bash
Вспомните формат этого файла, который мы рассматривали в разд. 3.3. Первый параметр — это имя. Затем стоит пароль, который спрятан в теневом файле, поэтому здесь x
. Далее следуют идентификаторы пользователя и группы. Так получилось, что в обоих случаях свободными оказались номера, равные 501, поэтому идентификаторы одинаковы, но это далеко не всегда так. Потом идет домашний каталог пользователя. По умолчанию все директории создаются в папке /home и соответствуют имени пользователя.
Давайте посмотрим файл /etc/shadow. Обратите внимание, что в строках пользователей robert и Denver стоит два восклицательных знака, мы не указывали пароль и войти в систему не можем. Я и не советую его задавать при создании пользователя. Это лишние мучения, потому что нужно шифровать его функцией crypt
, при этом нет гарантии сложности пароля. Лучше изменить его после создания пользователя с помощью команды passwd
:
passwd robert
В ответ на это вы увидите приглашение ввести пароль и пояснения о необходимости делать его сложным. Сообщение, которое выдает программа, выглядит следующим образом:
Changing password for user robert.
You can now choose the new password or passphrase.
A valid password should be a mix of upper and lower case letters,
digits and other characters. You can use an 8 character long
password with characters from at least 3 of these 4 classes,
or a 7 character long password containing characters from all
the classes. Characters that form a common pattern are discarded by the check.
A passphrase should be of at least 3 words, 12 to 40 characters
long and contain enough different characters.
Alternatively, if no one else can see your terminal now, you can
pick this as your password: "trial&bullet_scare".
Что по-русски звучит примерно следующим образом:
Изменяется пароль для пользователя robert.
Сейчас вы можете выбрать новый пароль или идентификационную фразу.
Хороший пароль должен состоять из комбинации заглавных и прописных
букв, цифр и других знаков. Вы можете ввести пароль длиной в 8 символов
с использованием значений 3 и 4 типов или пароль из 7 символов,
сочетающий знаки всех классов. Символы из часто используемых шаблонов будут отвергнуты.
Идентификационная фраза должна состоять из 3 слов общей длиной от 12 до
40 символов и содержать разнообразные знаки.
В качестве альтернативы, если в данный момент никто не смотрит
на ваш терминал, можно использовать пароль trial&bullet_scare.
Как видите, команда passwd
знакомит нас с основными правилами создания сложных паролей и даже предлагает пример, который достаточно длинный и содержит различные символы. Но я не стал бы его использовать, потому что он состоит из вполне читаемых слов. Злоумышленник может запустить подбор паролей по словарю, где различные слова объединяются, как это делает passwd
. Такая процедура займет значительно больше времени, чем подбор пароля из одного слова, но зато намного меньше, чем для шифра типа OLhslu_9&Z435drf. Для нахождения этого пароля словарь не поможет, а полный перебор всех возможных вариантов отнимет годы.
А давайте посмотрим, что сейчас находится в домашнем каталоге нового пользователя. Вы думаете, что там ничего нет? Проверим. Перейдите в каталог /home/robert или выполните следующую команду:
ls -al /home/robert
Ключ -a
заставляет отображать все файлы (в том числе и системные), а -l
— выводит подробную информацию. Результат выполнения такой команды должен выглядеть примерно следующим образом:
drwx------ 3 robert robert 4096 Nov 26 16:10 .
drwxr-xr-x 5 root root 4096 Nov 26 16:21 ..
-rw-r--r-- 1 robert robert 24 Nov 26 16:10 .bash_logout
-rw-r--r-- 1 robert robert 191 Nov 26 16:10 .bash_profile
-rw-r--r-- 1 robert robert 124 Nov 26 16:10 .bashrc
-rw-r--r-- 1 robert robert 2247 Nov 26 16:10 .emacs
-rw-r--r-- 1 robert robert 118 Nov 26 16:10 .gtkrc
drwxr-xr-x 4 robert robert 4096 Nov 26 16:10 .kde
Обратите внимание, что в директории 6 файлов и один подкаталог. Самое интересное находится в третьей и четвертой колонках, где располагаются имя и группа владельца файла соответственно. В обоих столбцах почти везде указано имя robert. Если пользователя с таким именем мы только что создали, то группу — нет. Вспомните разд. 4.2. При отсутствии параметров настройки автоматически формируется группа с таким же именем, что и учетная запись, и туда сразу же помещается все необходимое о новом пользователе.
Еще один нюанс. Папка с именем из двух точек (..), указывающая на родительский каталог, принадлежит root. Почему? Пользователь robert — владелец текущей директории /home/robert, (он здесь хозяин), но каталог выше /home вне его прав.
Все файлы и папки, которые принадлежат учетной записи robert, доступны для чтения и записи. Пользователи группы robert и все остальные могут только просматривать информацию, а разрешения на изменение у них нет.
- 6.3. Управление пользователями
- Получайте обратную связь из тестирования с пользователями и заказчиками
- Управление файлами и каталогами
- Управление пользователями и средства безопасности с помощью программы SQL Server Enterprise Manager
- Глава 6. Управление пакетами: репозитории
- Управление пользователями и разрешениями узла
- 8.7. Центральное управление пользователями
- 8.7.4. Управление пользователями в CUA
- 21.7.2. Управление пользователями
- 1.5.1 Управление пользователями