В 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
- Изменение словаря
- Измените экспортированный файл библиотеки словарей, а затем выполните следующую команду, чтобы обновить библиотеку словарей:
# create-cracklib-dict dictionary.txt
- Выполните следующую команду, чтобы добавить еще один файл словаря custom.txt в исходную библиотеку словарей.
# create-cracklib-dict dictionary.txt custom.txt
- Измените экспортированный файл библиотеки словарей, а затем выполните следующую команду, чтобы обновить библиотеку словарей:
- Запрос словаря.
В установленной среде openEuler можно выполнить следующую команду, чтобы экспортировать файл библиотеки словарей dictionary.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. In this example, ted1 can run the shutdown command on 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