KnigaRead.com/

Михаил Флёнов - Linux глазами хакера

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Михаил Флёнов, "Linux глазами хакера" бесплатно, без регистрации.
Перейти на страницу:

4.2.3. Удаление групп

Теперь рассмотрим, как можно удалить группу. Для этого используется команда groupdel:

groupdel имя

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

Надо еще заметить, что группу нельзя удалить, если в ней есть пользователи. Сначала их нужно вывести из группы, и только потом выполнять команду groupdel.

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 и все остальные могут только просматривать информацию, а разрешения на изменение у них нет.

4.3.1. Файлы и папки нового пользователя

Откуда берутся файлы в папке нового пользователя? При формировании учетной записи в соответствующую домашнюю папку копируются все файлы и подкаталоги из /etc/skel. Давайте создадим свой файл в этой директории и посмотрим, попадет ли он в папку нового пользователя? Чтобы ничего не выдумывать, выполним следующую директиву:

ls >> /etc/skel/text

Здесь задается команда is для просмотра содержимого текущего каталога. Потом идет два символа ">>" и имя файла "text" в папке /etc/skel. Такая запись означает, что результат выполнения команды должен быть помещен в указанный файл. Если файл не существует, то он будет создан. Таким образом, мы подготовили в нужной директории новый файл, содержимое которого нас не особо волнует.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*