Главная страница
Навигация по странице:

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

  • 4.3. Управление пользователями

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

  • 4.3.2. Изменение настроек по умолчанию

  • 4.3.3. Редактирование пользователя

  • 4.3.4. Удаление пользователя

  • 4.3.5. Настройка процедуры добавления пользователей

  • Листинг 4.1. Файл /etc/login.defs

  • Михаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69


    Скачать 3.69 Mb.
    НазваниеМихаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69
    Дата13.03.2022
    Размер3.69 Mb.
    Формат файлаpdf
    Имя файлаlinux_glazami_xakera_3-e_izd.pdf
    ТипДокументы
    #394477
    страница11 из 35
    1   ...   7   8   9   10   11   12   13   14   ...   35
    4.2.2.
    Редактирование
    группы
    Для редактирования параметров группы можно напрямую изменять файл
    /etc/group, но я рекомендую лучше использовать команду groupmod
    . У этой команды такие же ключи, что и у groupadd
    , но она не добавляет группу, а
    изменяет параметры уже существующей.
    4.2.3.
    Удаление
    групп
    Теперь рассмотрим, как можно удалить группу. Для этого используется команда groupdel
    : groupdel имя
    При выполнении этой команды вы должны самостоятельно проверить все файлы
    , владельцем которых является удаляемая группа, и при необходимо- сти изменить собственника, иначе к таким файлам сможет получить доступ только администратор.
    Надо еще заметить, что группу нельзя удалить, если в ней есть пользователи.
    Сначала их нужно вывести из группы, и только потом выполнять команду groupdel
    4.3.
    Управление
    пользователями
    Для добавления пользователя используется команда useradd
    . С ее помощью также можно изменить значения по умолчанию, которые будут присваивать- ся учетной записи.
    Команда useradd выглядит следующим образом: useradd параметры имя

    Управление
    доступом
    117
    Параметров очень много, большинство из них вам знакомо по файлу
    /etc/passwd, который мы рассматривали в главе 3. Вот наиболее часто исполь- зуемые аргументы:
    ˆ
    -c комментарий
    — простое текстовое описание, которое может быть любым
    ;
    ˆ
    -d каталог
    — домашний каталог пользователя;
    ˆ
    -e дата
    — дата отключения учетной записи, после которой пользователь станет неактивным, вводится в формате ГГГГ-ММ-ДД;
    ˆ
    -f число
    — количество дней до отключения записи навсегда. Если ука- зать
    0, то учетная запись будет считаться некорректной сразу после уста- ревания пароля;
    ˆ
    -g группа
    — основная группа, которой будет принадлежать пользователь.
    Можно указывать как имя, так и идентификатор. В Red Hat каждый поль- зователь принадлежит какой-либо группе;
    ˆ
    -G группа[,…]
    — дополнительные группы, в которых будет включен пользователь
    . Имена групп перечисляются через запятую;
    ˆ
    -m
    — ключ для создания домашнего каталога пользователя. В созданную директорию будут скопированы все файлы из /etc/skel;
    ˆ
    -M
    — не создавать домашний каталог;
    ˆ
    -r
    — если указать этот параметр, то в качестве идентификатора будет вы- брано число из системной области;
    ˆ
    -p пароль
    — зашифрованный пароль, который можно получить с по- мощью команды crypt
    ;
    ˆ
    -s программа
    — командный интерпретатор, который будет обрабатывать директивы пользователя;
    ˆ
    -u идентификатор
    — идентификатор, который должен быть уникальным.
    Если его не устанавливать, то система выберет свободное значение.
    Самый последний параметр — имя создаваемой учетной записи. Давайте рассмотрим
    , как можно добавить нового пользователя по имени robert, для которого все значения будут установлены по умолчанию: useradd robert cat /etc/passwd
    В
    первой строке мы создаем нового пользователя по имени robert. Вторая строка выводит на экран содержимое файла /etc/passwd, где хранится инфор- мация обо всех учетных записях. Заключительная строка в нем будет выгля- деть следующим образом: robert:x:501:501::/home/robert:/bin/bash

    Глава
    4
    118
    Вспомните формат этого файла, который мы рассматривали в разд. 3.3.1.
    Первый параметр — это имя. Затем стоит пароль, который спрятан в теневом файле
    , поэтому здесь указано x
    . Далее следуют идентификаторы пользовате- ля и группы. Так получилось, что в обоих случаях свободными оказались но- мера
    , равные 501, поэтому идентификаторы одинаковы, но это далеко не все- гда так. Потом идет домашний каталог пользователя. По умолчанию все директории создаются в папке /home и соответствуют имени пользователя.
    Давайте посмотрим файл /etc/shadow. Обратите внимание, что в строке поль- зователя robert стоит два восклицательных знака, мы не указывали пароль и
    войти в систему не можем. Я и не советую его задавать при создании поль- зователя
    . Это лишние мучения, потому что нужно шифровать его функцией 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 cha- racters from at least 3 of these 4 classes, or a 7 character long pass- word 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 noone 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 знакомит нас с основными правилами создания сложных паролей и даже предлагает пример, который достаточно длинный

    Управление
    доступом
    119
    и содержит различные символы. Но я не стал бы его использовать, потому что он состоит из вполне читаемых слов. Злоумышленник может запустить подбор паролей по словарю, где различные слова объединяются, как это де- лает 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
    Обратите внимание, что в директории 5 файлов и одна директория. Самое интересное находится в третьей и четвертой колонках, где располагаются имя и группа владельца файла соответственно. В обоих столбцах почти везде указано имя robert. Если пользователя с таким именем мы только что созда- ли
    , то группу — вроде бы не создавали. Но вспомните, в разд. 4.2 мы говори- ли
    , что если при создании пользователя не указывается группа, то автомати- чески формируется группа с таким же именем, что и учетная запись, и туда сразу же помещается все необходимое о новом пользователе.
    Еще один нюанс. Папка с именем из двух точек (..), указывающая на роди- тельский каталог, принадлежит root. Почему? Пользователь robert — владе- лец текущей директории /home/robert (он здесь хозяин), но каталог выше,
    /home, вне его прав, он принадлежит пользователю root, так что папка .. также имеет владельца root.

    Глава
    4
    120
    Все файлы и папки, которые принадлежат учетной записи robert, доступны для чтения и записи. Пользователи группы robert и все остальные могут только просматривать информацию, а разрешения на изменение у них нет.
    4.3.1.
    Файлы
    и
    папки
    нового
    пользователя
    Откуда берутся файлы в папке нового пользователя? При формировании учетной записи в соответствующую домашнюю папку копируются все файлы и
    подкаталоги из /etc/skel. Давайте создадим свой файл в этой директории и
    посмотрим, попадет ли он в папку нового пользователя? Чтобы ничего не выдумывать
    , выполним следующую директиву: ls >> /etc/skel/text
    Здесь задается команда ls для просмотра содержимого текущего каталога.
    Потом идут два символа
    >>
    и имя файла text в папке /etc/skel. Такая запись означает
    , что результат выполнения команды должен быть помещен в ука- занный файл. Если файл не существует, то он будет создан. Таким образом, мы подготовили в нужной директории новый файл, содержимое которого нас не особо волнует.
    Теперь добавляем нового пользователя и просматриваем содержимое его папки
    : useradd Denver ls -al /home/Denver
    В
    результате вы увидите, что созданный нами в каталоге /etc/skel файл был скопирован в папку нового пользователя. Но в директориях уже существую- щих пользователей этого файла не появится.
    Эту полезную особенность я использую достаточно часто, чтобы сразу наде- лить нового пользователя правилами нахождения в системе, необходимыми ему файлами, документацией. Например, когда я работал на фирме в торго- вой компании, то в каталог пользователей автоматом помещался файл с пра- вилами пользования компьютером, где я собрал наиболее часто задаваемые пользователями вопросы и ответы на них.
    Среди файлов, копируемых в каталог нового пользователя, есть bash_profile.
    Это профиль командного интерпретатора /bin/bash. В нем можно настраивать некоторые параметры, в том числе и маску. В разд. 4.1 мы говорили о правах, которые назначаются всем новым файлам пользователя (далеки от идеала), и
    научились понижать их с помощью команды umask
    Зайдите под учетной записью robert и посмотрите ее маску с помощью команды umask
    . Обратите внимание, что она равна 0002. То есть мы в разд. 4.1 изменили свою маску, а robert получил другую, которую надо изменить. Если

    Управление
    доступом
    121
    вы забудете это сделать, то могут возникнуть проблемы. Чтобы этого не про- изошло
    , я рекомендую добавить в конец файла .bash_profile строку: umask 0077
    Лучше всего это сделать в файле /etc/skel/.bash_profile, потому что он копи- руется во все папки новых пользователей, и можно быть уверенным, что все они получат нужную маску.
    Для повышения безопасности я не рекомендую присваивать директориям имена учетных записей. При добавлении пользователя robert по умолчанию для него будет создан каталог /home/robert. Такое соответствие может сыг- рать злую шутку. Если злоумышленник узнает директорию, то он легко смо- жет определить имя пользователя, которому она принадлежит, и наоборот.
    При создании пользовательских директорий достаточно даже просто доба- вить к имени какой-либо префикс, и это уже может усложнить задачу зло- умышленнику
    . Да, я бы не назвал данную проблему большим упущением в
    безопасности, но все же, любая предсказуемость не есть хорошо.
    4.3.2.
    Изменение
    настроек
    по
    умолчанию
    Давайте теперь посмотрим, откуда берутся значения по умолчанию. Все это хранится в файле /etc/default/useradd. Взглянем на содержимое этого файла:
    # useradd defaults file
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    Единственный комментарий, который я хочу сделать сейчас, — это параметр
    GROUP
    . Он равен
    100
    , и по идее все новые пользователи должны попадать в
    эту группу. Но, как мы видели, это не так. В разд. 4.3 мы создали пользова- теля robert, и его идентификатор пользователя и группы был равен 501.
    В
    Red Hat этот параметр игнорируется, и по умолчанию создается новая группа
    , именно это мы и наблюдали. В других дистрибутивах этот параметр может работать, поэтому проверьте эту возможность, чтобы не оказаться в
    неудобном положении.
    Номер
    100
    присваивается пользовательской группе, у которой по умолчанию очень мало прав. Это как гостевой пароль, который позволяет только про- сматривать файлы.

    Глава
    4
    122
    Файл
    /etc/default/useradd можно редактировать вручную или воспользоваться командой useradd для изменения значений по умолчанию. Чтобы внести из- менения с ее помощью, нужно сразу после имени команды указать ключ
    -D
    После этого могут идти следующие опции:
    ˆ
    -g
    — изменить группу;
    ˆ
    -b
    — установить домашний каталог;
    ˆ
    -f
    — время до отключения;
    ˆ
    -e
    — дата отключения;
    ˆ
    -s
    — оболочка (интерпретатор команд).
    Я
    советую вам не игнорировать возможность указания времени действия учетной записи. Допустим, что к вам пришли с инспекцией и просят дать доступ к базе данных или определенным файлам. Создайте для проверяющих нового пользователя и установите время жизни в 1 день (или более, если ин- спекция приехала надолго). Теперь вам не надо напрягать память или фикси- ровать в блокноте, что в определенный день требуется удалить такую учет- ную запись, потому что она сама станет неактивной.
    Некоторые администраторы плодят временных пользователей, забывая их удалить
    . А ведь это достаточно большая дыра в безопасности, так как эти учетные записи чаще всего имеют простой пароль. Действительно, зачем за- поминать
    (на один-два дня) что-то типа opihvgdjwbe. Отключив запись (ав- томатически или вручную), вы закрываете один из проходов в вашу систему и
    сокращаете количество лазеек. Когда вы возвращаетесь домой, то обяза- тельно закрываете за собой дверь для собственной безопасности. В случае с
    ОС нужно поступать таким же образом, и, проводив временного гостя, нужно обязательно запереть дверь или замуровать ее (удалить из системы).
    4.3.3.
    Редактирование
    пользователя
    Для редактирования параметров учетной записи можно напрямую корректи- ровать файл /etc/passwd, но я советую лучше использовать команду usermod
    У
    нее такие же ключи, что и у useradd
    , но она не создает пользователя, а из- меняет параметры уже существующего.
    С
    помощью usermod вы можете добавлять уже имеющегося пользователя в
    ранее созданную группу. Давайте проделаем такую процедуру с учетной записью robert и определим ее в группу root. Это позволит пользователю ro- bert выполнять некоторые административные функции: usermod -G root robert

    Управление
    доступом
    123
    Здесь мы выполняем команду с ключом
    -G
    . Этот ключ позволяет указать, членом каких групп должен быть пользователь. Можно указать несколько групп
    , разделенных запятыми. В данном случае только одна группа root. Для получения более подробной информации о команде usermod выполните команду
    : man usermod
    4.3.4.
    Удаление
    пользователя
    Для удаления пользователя применяется команда userdel
    . В качестве пара- метра передается только имя учетной записи, которую надо удалить, и можно распрощаться с ней навсегда. Например: userdel Danver
    Если пользователь в этот момент находится в системе, будет выдано сообще- ние об ошибке.
    Необходимо учитывать, что удаление пользователя не уничтожает его до- машний каталог, вы должны сделать это вручную. Если же указать в команде ключ
    -r
    , то вместе с пользователем будут удалены и его файлы в домашней директории
    : userdel -r Danver
    Никогда не указывайте этот ключ. Выполняйте операцию только вручную, просмотрев содержимое каталога и убедившись, что там нет нужных файлов.
    К
    тому же, если для пользователя была автоматически создана группа и в ней никого больше нет, то можно удалить и ее, выполнив команду groupdel
    4.3.5.
    Настройка
    процедуры
    добавления
    пользователей
    Для полного понимания процесса создания учетных записей нам нужно по- знакомиться еще с файлом /etc/login.defs. В нем хранятся настройки, которые будут использоваться при добавлении пользователей. Содержимое файла можно увидеть в листинге 4.1.
    Листинг
    4.1.
    Файл
    /etc/login.defs
    # *REQUIRED*
    # Directory where mailboxes reside, _or_ name of file, relative to the
    # home directory. If you _do_ define both, MAIL_DIR takes precedence.
    # QMAIL_DIR is for Qmail

    Глава
    4
    124
    #
    #QMAIL_DIR Maildir
    MAIL_DIR /var/spool/mail
    #MAIL_FILE .mail
    # Password aging controls:
    #
    #PASS_MAX_DAYS Maximum number of days a password may be used.
    #PASS_MIN_DAYS Minimum number of days allowed between password changes.
    #PASS_MIN_LEN Minimum acceptable password length.
    #PASS_WARN_AGE Number of days warning given before a password expires.
    #
    PASS_MAX_DAYS 99999
    PASS_MIN_DAYS 0
    PASS_MIN_LEN 5
    PASS_WARN_AGE 7
    #
    # Min/max values for automatic uid selection in useradd
    #
    UID_MIN 500
    UID_MAX 60000
    #
    # Min/max values for automatic gid selection in groupadd
    #
    GID_MIN 500
    GID_MAX 60000
    #
    # If defined, this command is run when removing a user.
    # It should remove any at/cron/print jobs etc. owned by
    # the user to be removed (passed as the first argument).
    #
    #USERDEL_CMD /usr/sbin/userdel_local
    #
    # If useradd should create home directories for users by default

    Управление
    доступом
    125
    # On RH systems, we do. This option is ORed with the -m flag on
    # useradd command line.
    #
    CREATE_HOME yes
    Ряд содержащихся здесь настроек можно использовать для повышения безо- пасности
    . Рассмотрим основные параметры файла:
    ˆ
    MAIL_DIR
    — директория, в которой будет храниться почта пользователей;
    ˆ
    PASS_MAX_DAYS
    — максимальный срок жизни пароля;
    ˆ
    PASS_MIN_DAYS
    минимальный срок жизни пароля;
    ˆ
    PASS_MIN_LEN
    — минимальная длина пароля (используется только в коман- де passwd и игнорируется в useradd
    ). В большинстве дистрибутивов здесь будет стоять 5, но я рекомендую поставить 8. В этом случае нельзя будет установить любимый большинством пользователей пароль типа qwerty;
    ˆ
    PASS_WARN_AGE
    — срок (в днях) до окончания действия пароля, когда об этом нужно предупредить пользователя;
    ˆ
    UID_MIN
    — минимальный идентификатор пользовательских учетных записей
    ;
    ˆ
    UID_MAX
    — максимальный идентификатор пользовательских учетных записей
    ;
    ˆ
    GID_MIN
    — минимальный идентификатор пользовательских групп;
    ˆ
    GID_MAX
    — максимальный идентификатор пользовательских групп;
    ˆ
    CREATE_HOME
    — признак создания пользовательской директории (значение параметра
    YES
    используется по умолчанию).
    1   ...   7   8   9   10   11   12   13   14   ...   35


    написать администратору сайта