Управление пользователями и группами пользователей

В Linux у каждого обычного пользователя есть учетная запись, включающая в себя имя пользователя, пароль и домашний каталог. Существуют также особые пользователи, созданные для определенных целей, и самым важным специальным пользователем является учетная запись администратора admin с именем пользователя по умолчанию root. Кроме того, в Linux предусмотрены группы пользователей, то есть каждый пользователь принадлежит хотя бы к одной группе, что облегчает управление разрешениями.

Контроль действий пользователей и их групп является ключевым элементом управления безопасностью в openEuler. В этом разделе представлены команды управления пользователями и группами и объясняется, как назначать полномочия обычным пользователям в графическом пользовательском интерфейсе и в командной строке.

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

Добавление пользователя

Команда useradd

Выполните команду useradd от имени пользователя root, чтобы добавить информацию о пользователе в систему. В данной команде options обозначает связанные параметры, а username — имя пользователя.

useradd [options] username

Файлы с информацией о пользователе

Следующие файлы содержат информацию об учётной записи пользователя.

  • /etc/passwd: информация об учётной записи пользователя.

  • /etc/shadow: информация о шифровании учётной записи пользователя.

  • /etc/group: информация о группе.

  • /etc/default/useradd: конфигурации по умолчанию.

  • /etc/login.defs: общесистемные настройки.

  • /etc/skel: каталог по умолчанию, содержащий исходные файлы конфигурации.

Пример

Например, чтобы создать пользователя с именем userexample, выполните команду от имени пользователя root:

useradd userexample

Если в командной строке ничего не отображается, значит пользователь создан. После создания пользователя выполните команду passwd, чтобы назначить пользователю пароль. Новая учетная запись без пароля будет заблокирована.

Чтобы просмотреть информацию о новом пользователе, выполните команду id:

id userexample

Пример вывода:

uid=502(userexample)    gid=502(userexample)    groups=502(userexample)

Чтобы изменить пароль пользователя userexample, выполните команду:

passwd userexample

Рекомендуется задавать новый пароль пользователя с учетом требований к сложности. К сложности пароля предъявляются следующие требования.

  • Пароль должен содержать не менее восьми символов.

  • Пароль должен содержать по меньшей мере три из следующих типов символов: прописные буквы, строчные буквы, цифры и специальные символы.

  • Пароль должен отличаться от имени учётной записи.

  • Пароль не может содержать слова из словаря.

    • Запрос словаря.

      В установленной среде openEuler можно выполнить следующую команду, чтобы экспортировать файл библиотеки словарей dictionary.txt, а затем проверить, присутствует ли пароль в словаре.

      cracklib-unpacker /usr/share/cracklib/pw_dict > dictionary.txt
    • Изменение словаря

      1. Измените экспортированный файл библиотеки словарей, а затем выполните команду, чтобы обновить библиотеку словарей:

        create-cracklib-dict dictionary.txt
      2. Выполните следующую команду, чтобы добавить еще один файл словаря custom.txt в исходную библиотеку словарей:

        create-cracklib-dict dictionary.txt custom.txt

Затем введите пароль и подтвердите его при появлении соответствующего запроса:

passwd userexample

Пример вывода:

Changing password for user userexample.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Если выходные данные команды содержат сообщение BAD PASSWORD: The password fails the dictionary check - it is too simplistic/sytematic (Неверный пароль. Пароль не проходит проверку по словарю — он слишком простой или распространенный), значит пароль слишком простой и его нужно сбросить.

Изменение учётной записи пользователя

Изменение пароля

Обычные пользователи могут изменить свои пароли с помощью команды passwd. Только администратор может использовать команду passwd username для изменения паролей других пользователей.

Изменение оболочки для входа пользователя

Обычные пользователи могут использовать команду chsh, чтобы изменить оболочку, используемую для входа в систему. Только администратор может использовать команду chsh username, чтобы изменять оболочку входа для других пользователей.

Пользователи также могут выполнить команду usermod от имени пользователя root, чтобы изменить информацию об оболочке. В данный команде new_shell_path обозначает путь к целевой оболочке, а username — имя пользователя, которое нужно изменить. Изменяйте их в зависимости от конкретных предъявляемых требований.

usermod -s new_shell_path username

Например, чтобы изменить оболочку пользователя userexample на csh, выполните команду:

usermod -s /bin/csh userexample

Изменение домашнего каталога

Чтобы изменить домашний каталог, выполните команду от имени пользователя root. В данной команде new_home_directory обозначает созданный целевой домашний каталог, а username — имя пользователя, которое нужно изменить. Изменяйте их в зависимости от конкретных предъявляемых требований.

usermod -d new_home_directory username

Чтобы переместить содержимое текущего домашнего каталога в новый каталог, выполните команду usermod с параметром -m:

usermod -d new_home_directory -m username

Изменение идентификатора пользователя

Чтобы изменить идентификатор пользователя (UID), выполните команду от имени пользователя root. В данной команде UID обозначает идентификатор целевого пользователя, а username — имя пользователя. Изменяйте их в зависимости от конкретных предъявляемых требований.

usermod -u UID username

Команда usermod позволяет изменить идентификатор пользователя для всех файлов и каталогов, находящихся в домашнем каталоге этого пользователя. Однако для файлов, расположенных вне домашнего каталога пользователя, владельцев можно изменить только с помощью команды chown.

Изменение даты окончания срока действия учётной записи

Если используется теневой пароль, выполните команду от имени пользователя root, чтобы изменить срок действия учётной записи. В данной команде MM, DD и YY обозначают месяц, день и год соответственно, а username — имя пользователя. Изменяйте их в зависимости от конкретных предъявляемых требований.

usermod -e MM/DD/YY username

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

Выполните команду userdel от имени пользователя root, чтобы удалить существующего пользователя.

Например, выполните команду, чтобы удалить пользователя Test:

userdel Test

Если вам также нужно удалить домашний каталог пользователя и все содержащиеся в нем объекты, выполните команду userdel с параметром -r для их рекурсивного удаления.

Не рекомендуется напрямую удалять пользователя, выполнившего вход в систему. Чтобы принудительно удалить пользователя, выполните команду:

userdel -f Test

Предоставление прав обычному пользователю

Команда sudo позволяет обычным пользователям выполнять команды, которые разрешено выполнять только под учетными записями администратора.

С помощью команды sudo пользователь, указанный в файле /etc/sudoers, может выполнять команды учётной записи администратора. Например, авторизованный обычный пользователь может выполнить следующую команду:

sudo /usr/sbin/useradd newuserl

Эта команда sudo позволяет указать обычного пользователя, добавленного в файл /etc/sudoers, для обработки необходимых задач.

Информация, настроенная в файле /etc/sudoers, имеет следующий вид:

  • Пустые строки или строки комментариев, начинающиеся с #: не имеют определенных функций.

  • Необязательные строки псевдонимов хостов: создание имени для списка хостов. Строки должны начинаться с Host_Alias. Имена хостов в списке должны разделяться запятыми, например:

    Host_Alias  linux=ted1,ted2

    ted1 и ted2 — это два имени хоста под псевдонимом linux.

  • Необязательные строки псевдонимов пользователей: создание имени для списка пользователей. Строки должны начинаться с User_Alias. Имена пользователей в списке должны разделяться запятыми. Строки псевдонимов пользователей имеют тот же формат, что и строки псевдонимов хостов.

  • Необязательные строки псевдонимов команд: создание имени для списка команд. Строки должны начинаться с Cmnd_Alias. Команды в списке должны разделяться запятыми.

  • Необязательные строки псевдонимов рабочих режимов: создание имени для списка пользователей. Отличие заключается в том, что такой псевдоним может позволить пользователю в списке выполнить команду sudo.

  • Обязательные строки объявления для доступа пользователя:

    Синтаксис объявления для доступа пользователя имеет следующий вид:

    user host = [ run as user ] command list

    Задайте для пользователя реальное имя пользователя или определенный псевдоним пользователя, а для хоста — реальное имя хоста или определенный псевдоним хоста. По умолчанию все команды, выполняемые с помощью sudo, выполняются от имени пользователя root. Если вы хотите использовать другую учетную запись, можете указать ее. command list — это либо список команд, разделенных запятыми, либо определенный псевдоним команды, например:

    ted1   ted2=/sbin/shutdown

    В этом примере хост ted1 может выполнить команду завершения работы на хосте ted2.

    newuser1 ted1=(root) /usr/sbin/useradd,/usr/sbin/userdel

    Эта команда указывает, что пользователь newuser1 на хосте ted1 может выполнять команды useradd и userdel от имени пользователя root.

    • Вы можете определить несколько псевдонимов в строке, разделив их двоеточиями.

    • Вы можете добавить восклицательный знак перед командой или псевдонимом команды, чтобы сделать эту команду или этот псевдоним команды недействительными.

    • Существует два ключевых слова: ALL и NOPASSWD. ALL указывает на все файлы, хосты или команды, а NOPASSWD указывает, что пароль не требуется.

    • Изменяя доступ пользователя, вы можете изменить права доступа обычного пользователя, чтобы они были такими же, как у пользователя root. Затем вы можете предоставить права обычному пользователю.

Ниже приведен пример файла sudoers.

#sudoers files
#User alias specification
User_Alias ADMIN=ted1:POWERUSER=globus,ted2
#user privilege specification
ADMIN ALL=ALL
POWERUSER ALL=ALL,!/bin/su

В представленных выше данных:

  • User_Alias ADMIN=ted1:POWERUSER=globus,ted2: определены два псевдонима, ADMIN и POWERUSER.

  • ADMIN ALL=ALL: ADMIN может выполнять все команды от имени пользователя root на всех хостах.

  • POWERUSER ALL=ALL,!/bin/su: POWERUSER может выполнять все команды, кроме команды su, от имени пользователя root на всех хостах.

Управление группами пользователей

Добавление группы пользователей

Команда groupadd

Выполните команду groupadd от имени пользователя root, чтобы добавить информацию о группе пользователей в систему. В данной команде options обозначает связанные параметры, а groupname — имя группы.

groupadd [options] groupname

Файлы информации о группах пользователей

Следующие файлы содержат информацию о группе пользователей.

  • /etc/gshadow: информация о шифровании группы пользователей.

  • /etc/group: информация о группе.

  • /etc/login.defs: общесистемные настройки.

Пример

Например, чтобы создать группу пользователей с именем groupexample, выполните команду от имени пользователя root:

groupadd groupexample

Изменение группы пользователей

Изменение идентификатора группы

Чтобы изменить идентификатор группы пользователей (GID), выполните команду от имени пользователя root. В данной команде GID обозначает идентификатор целевой группы пользователей, а groupname — имя группы пользователей. Изменяйте их в зависимости от конкретных предъявляемых требований.

groupmod -g GID groupname

Изменение имени группы пользователей

Чтобы изменить имя группы пользователей, выполните команду от имени пользователя root. В данной команде newgroupname обозначает новое имя группы пользователей, а oldgroupname — имя группы пользователей. Изменяйте их в зависимости от конкретных предъявляемых требований.

groupmod -n newgroupname oldgroupname

Удаление группы пользователей

Выполните команду groupdel от имени пользователя root, чтобы удалить существующую группу пользователей.

Например, выполните команду, чтобы удалить группу пользователей Test:

groupdel Test

Основную группу пользователя нельзя удалить напрямую. Чтобы принудительно удалить основную группу пользователя, выполните команду:

groupdel -f Test

Добавление пользователя в группу или удаление пользователя из группы

Выполните команду gpasswd от имени пользователя root, чтобы добавить пользователя в группу или удалить пользователя из группы.

Например, выполните команду, чтобы добавить пользователя userexample в группу пользователей Test:

gpasswd -a userexample Test

Например, выполните команду, чтобы удалить пользователя userexample из группы пользователей Test:

gpasswd -d userexample Test

Изменение текущей группы пользователя на указанную группу

Если пользователь входит в состав нескольких групп пользователей, выполните команду newgrp, чтобы перевести пользователя в другую группу пользователей после входа в систему. После этого пользователь получает разрешения других групп пользователей.

Например, выполните команду, чтобы изменить текущую группу пользователя userexample на группу пользователей Test:

newgrp Test