Управление пользователями и группами пользователей
В 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
|
Если в командной строке ничего не отображается, значит пользователь создан.
После создания пользователя выполните команду |
Чтобы просмотреть информацию о новом пользователе, выполните команду 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
-
-
Затем введите пароль и подтвердите его при появлении соответствующего запроса:
passwd userexample
Пример вывода:
Changing password for user userexample.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
|
Если выходные данные команды содержат сообщение |
Изменение учётной записи пользователя
Изменение пароля
Обычные пользователи могут изменить свои пароли с помощью команды 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 для их рекурсивного удаления.
|
Не рекомендуется напрямую удалять пользователя, выполнившего вход в систему. Чтобы принудительно удалить пользователя, выполните команду:
|
Предоставление прав обычному пользователю
Команда sudo позволяет обычным пользователям выполнять команды, которые разрешено выполнять только под учетными записями администратора.
С помощью команды sudo пользователь, указанный в файле /etc/sudoers, может выполнять команды учётной записи администратора.
Например, авторизованный обычный пользователь может выполнить следующую команду:
sudo /usr/sbin/useradd newuserl
Эта команда sudo позволяет указать обычного пользователя, добавленного в файл /etc/sudoers, для обработки необходимых задач.
Информация, настроенная в файле /etc/sudoers, имеет следующий вид:
-
Пустые строки или строки комментариев, начинающиеся с
#: не имеют определенных функций. -
Необязательные строки псевдонимов хостов: создание имени для списка хостов. Строки должны начинаться с
Host_Alias. Имена хостов в списке должны разделяться запятыми, например:Host_Alias linux=ted1,ted2ted1и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
Изменение группы пользователей
Изменение идентификатора группы
Чтобы изменить идентификатор группы пользователей (GID), выполните команду от имени пользователя root.
В данной команде GID обозначает идентификатор целевой группы пользователей, а groupname — имя группы пользователей.
Изменяйте их в зависимости от конкретных предъявляемых требований.
groupmod -g GID groupname
Изменение имени группы пользователей
Чтобы изменить имя группы пользователей, выполните команду от имени пользователя root.
В данной команде newgroupname обозначает новое имя группы пользователей, а oldgroupname — имя группы пользователей.
Изменяйте их в зависимости от конкретных предъявляемых требований.
groupmod -n newgroupname oldgroupname
Удаление группы пользователей
Выполните команду groupdel от имени пользователя root, чтобы удалить существующую группу пользователей.
Например, выполните команду, чтобы удалить группу пользователей Test:
groupdel Test
|
Основную группу пользователя нельзя удалить напрямую. Чтобы принудительно удалить основную группу пользователя, выполните команду:
|
Добавление пользователя в группу или удаление пользователя из группы
Выполните команду gpasswd от имени пользователя root, чтобы добавить пользователя в группу или удалить пользователя из группы.
Например, выполните команду, чтобы добавить пользователя userexample в группу пользователей Test:
gpasswd -a userexample Test
Например, выполните команду, чтобы удалить пользователя userexample из группы пользователей Test:
gpasswd -d userexample Test
Изменение текущей группы пользователя на указанную группу
Если пользователь входит в состав нескольких групп пользователей, выполните команду newgrp, чтобы перевести пользователя в другую группу пользователей после входа в систему.
После этого пользователь получает разрешения других групп пользователей.
Например, выполните команду, чтобы изменить текущую группу пользователя userexample на группу пользователей Test:
newgrp Test