Управление пользователями: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показаны 43 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{attention|Страница в разработке и не готова!!!}}
{{stub}}
==Пользователи==
==Пользователи==
{{Note|Для работы команды '''chage''' нужно установить пакет '''shadow-change'''}}
===Справочная информация по именованию пользователей===
{|class="wikitable" style="float:center; margin-left:2em"
!colspan="2"|Правила по именованию пользователя
|-
!Имя может состоять из:
|
*строчных ASCII-букв
*цифр
*подчеркивания и дефиса
|-
!Ограничения на имя
|
Первым символом имени пользователя могут быть:
*строчная буква
*подчеркивание
Первым символом не могут быть:
*цифра
*дефис
Последним символом может быть:
*знак доллара ($)
|-
!Максимальная длина<br>имени пользователя:
|
*32 символа
|-
!Символы которые нельзя<br>использовать в имени пользователя:
|
*прописные буквы
*точка
|-
!Маска имени
|
[a-z_][a-z0-9_-]*[$]?
|}


===Добавление нового пользователя===
===Добавление нового пользователя===
====useradd====
====useradd====
useradd test1
<syntaxhighlight lang="bash">
# useradd имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# useradd buh1
</syntaxhighlight>


=====Параметры=====
=====Параметры=====
-M - не создавать домашний каталог
*-M - не создавать домашний каталог
 
<syntaxhighlight lang="bash">
# useradd -M имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# useradd -M buh1
</syntaxhighlight>
 
*-N - не создавать группу с тем же именем что и у пользователя
<syntaxhighlight lang="bash">
# useradd -N имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# useradd -N buh1
</syntaxhighlight>
 
*-p - пароль
<syntaxhighlight lang="bash">
# useradd -p пароль имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# useradd -p gfrgjhrkj buh1
</syntaxhighlight>


-N - не создавать группу с тем же именем что и у пользователя
*-d - указание кастомного домашнего каталога
<syntaxhighlight lang="bash">
# useradd -d путь_к_новому_каталогу имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# useradd -d /opt/users/buh1 buh1
</syntaxhighlight>


-p - пароль
*--system - создание системного аккаунта без пароля и домашнего аккаунта
<syntaxhighlight lang="bash">
# useradd --system cassandra
</syntaxhighlight>


useradd -p gfrgjhrkj petr
*-e - создание пользователя с истекающим сроком действия аккаунта. Он задается опцией -e ГГГГ-ММ-ДД
<syntaxhighlight lang="bash">
# useradd -e 2023-05-30 buh1
</syntaxhighlight>


-d - указание кастомного домашнего каталога
Проверяем командой '''chage''':
<syntaxhighlight lang="bash">
# chage -l buh1
</syntaxhighlight>


useradd -d /opt/users/user techlist
Пример вывода:
<syntaxhighlight lang="bash">
# chage -l buh1
Последний раз пароль был изменён : мая 28, 2023
Срок действия пароля истекает : никогда
Пароль будет деактивирован через : никогда
Срок действия учётной записи истекает : мая 30, 2023
Минимальное количество дней между сменой пароля : -1
Максимальное количество дней между сменой пароля : -1
Количество дней с предупреждением перед деактивацией пароля : -1
</syntaxhighlight>


-e - создание пользователя с истекающим сроком действия аккаунта
*Устанавливаем срок действия пароля в течении 20-и дней,
<syntaxhighlight lang="bash">
# chage -M 20 buh1
</syntaxhighlight>


useradd -e 2017-05-01 techlist
Проверяем командой '''chage''':
<syntaxhighlight lang="bash">
# chage -l buh1
</syntaxhighlight>


Проверяем командой chage - пакет shadow-change
Пример вывода:
chage -l techlist
<syntaxhighlight lang="bash">
# chage -l buh1
Последний раз пароль был изменён : мая 28, 2023
Срок действия пароля истекает : июн 17, 2023
Пароль будет деактивирован через : никогда
Срок действия учётной записи истекает : мая 30, 2023
Минимальное количество дней между сменой пароля : -1
Максимальное количество дней между сменой пароля : 20
Количество дней с предупреждением перед деактивацией пароля : -1
</syntaxhighlight>


Устанавливаем срок действия пароля в течении 20-и дней,
*-c Указание отображаемого имени
chage -M 20 techlist


Проверяем
<syntaxhighlight lang="bash">
chage -l techlist
# useradd -c "Богомолова Ольга" buh1
</syntaxhighlight>


-c Указание отображаемого имени
При входе в систему у пользователя buh1, вместо логина, будет отображаться имя "Богомолова Ольга"
useradd -c "Петрушка" petr
При входе в систему вместо petr у нас будет Петрушка


-s Указание другой оболочки
*-s Указание другой оболочки
useradd -s /sbin/sh techlist


Проверяем
Вместо bash мы можем установить пользователю другой командный интерпретатор (/bin/bash, /bin/sh, /bin/zsh).
grep -E 'techlist' /etc/passwd
 
techlist:x:1001:1001::/home/techlist:/sbin/sh
<syntaxhighlight lang="bash">
# useradd -s /bin/sh buh1
</syntaxhighlight>
 
Проверяем:
 
<syntaxhighlight lang="bash">
# grep -E 'buh1' /etc/passwd
buh1:x:1001:1001::/home/buh1:/bin/sh
</syntaxhighlight>


====adduser====
====adduser====
adduser test1
adduser по командам аналогична useradd.


===Изменение пользователя===
====Изменение имени пользователя====


Существующему пользователю можно изменить имя, делается это опцией -l. Первым указывается новое имя, вторым - старое.
<syntaxhighlight lang="bash">
# usermod -l новое_имя старое_имя
</syntaxhighlight>
Пример:
Изменим имя пользователя buh1 на buh3,
<syntaxhighlight lang="bash">
# usermod -l buh3 buh1
</syntaxhighlight>
Проверяем:
<syntaxhighlight lang="bash">
# id buh1
id: buh1: такого пользователя нет
# id buh3
uid=1001(buh3) gid=1002(group_1) группы=1002(group_1),10(wheel),1003(group_2)
</syntaxhighlight>


===Изменение пользователя===
====Изменение пароля пользователя====
====Изменение пароля пользователя====
passwd test1
<syntaxhighlight lang="bash">
# passwd имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# passwd buh3
</syntaxhighlight>


====Добавление/Изменение отображаемого имени====
====Добавление/Изменение отображаемого имени====
usermod -c "Тестировщик" test1    Проверяем
<syntaxhighlight lang="bash">
grep -E 'test1' /etc/passwd
# usermod -c "Отображаемое имя" имя_пользователя
  test1:x:1001:1001:Тестировщик:/home/test1:/bin/bash
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# usermod -c "Огурцова Татьяна" buh3
</syntaxhighlight>
Проверяем:
<syntaxhighlight lang="bash">
$ grep -E 'buh3' /etc/passwd
  test1:x:1001:1001:Огурцова Татьяна:/home/buh1:/bin/bash
</syntaxhighlight>


====Изменение домашнего каталога пользователя====
====Изменение домашнего каталога пользователя====
    usermod -d /opt/techlist -m techlist
Опция -d меняет каталог, а опция -m переносит в новый каталог все содержимое старого.
    Проверяем
<syntaxhighlight lang="bash">
    grep -E 'techlist' /etc/passwd
usermod -d новый_домашний_каталог -m имя_пользователя
    techlist:x:1001:1001:Имя Фамилия:/opt/techlist:/bin/bash
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# usermod -d /home/buh3 -m buh3
</syntaxhighlight>
Проверяем:
<syntaxhighlight lang="bash">
# grep -E 'buh3' /etc/passwd
buh1:x:1001:1001:Огурцова Татьяна:/home/buh3:/bin/bash
</syntaxhighlight>


====Установка даты истечения срока аккаунта====
====Установка даты истечения срока аккаунта====
Пользователю можно назначить дату истечения действия аккаунта. Она задается опцией -e ГГГГ-ММ-ДД.


Назначим дату истечения действия аккаунта, аккаунт будет действовать до 2017-05-01, дата задается опцией -e.
{{Note|Для работы chage нужно установить пакет shadow-change}}


    usermod -e 2017-05-01 techlist
<syntaxhighlight lang="bash">
    Проверяем
# usermod -e срок_действия имя_пользователя
    chage -l techlist
</syntaxhighlight>
    Последний раз пароль был изменён : фев 07, 2017
Пример:
    Срок действия пароля истекает : никогда
<syntaxhighlight lang="bash">
    Пароль будет деактивирован через : никогда
# usermod -e 2024-12-31 buh3
    Срок действия учётной записи истекает : май 01, 2017
</syntaxhighlight>
    Минимальное количество дней между сменой пароля         : 0
 
    Максимальное количество дней между сменой пароля : 99999
Проверяем:
    Количество дней с предупреждением перед деактивацией пароля : 7
<syntaxhighlight lang="bash">
# chage -l имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# chage -l buh3
Последний раз пароль был изменён : мая 29, 2023
Срок действия пароля истекает : никогда
Пароль будет деактивирован через : никогда
Срок действия учётной записи истекает : дек 31, 2024
Минимальное количество дней между сменой пароля : -1
Максимальное количество дней между сменой пароля : -1
Количество дней с предупреждением перед деактивацией пароля : -1
</syntaxhighlight>


===Просмотреть список пользователей===
===Просмотреть список пользователей===
Всех
Всех:
cat /etc/passwd
<syntaxhighlight lang="bash">
$ cat /etc/passwd
</syntaxhighlight>
 
Только с домашней папкой в /home:
<syntaxhighlight lang="bash">
$ cat /etc/passwd | grep /home
</syntaxhighlight>
 
===Удаление пользователя===
 
====userdel====
<syntaxhighlight lang="bash">
# userdel имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# userdel buh3
</syntaxhighlight>


cat /etc/passwd | grep /home
*удалить залогиненого пользователя
<syntaxhighlight lang="bash">
# userdel -f имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# userdel -f buh3
</syntaxhighlight>


===Смена имени пользователя===
*удалить домашний каталог и почтовый ящик
с тестй на тест2
<syntaxhighlight lang="bash">
usermod -l test2 test1
# userdel -r имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# userdel -r buh3
</syntaxhighlight>
<!--====deluser====


===Удаление пользователя===
<syntaxhighlight lang="bash">
userdel test2
# deluser test2
deluser test2
</syntaxhighlight>
 
*  --remove-home - удалить домашний каталог пользователя и почтовый ящик
*  --remove-all-files - удалить все файлы принадлежащие пользователю
*  --backup - сделать резервные копии файлов перед удалением.
*  --backup-to <КАТ> - каталог для резервных копий файлов. По умолчанию используется текущий каталог.
*  --system - удалить только если учётная запись системная
 
===Блокировка аккаунта пользователя===
 
Для блокировки аккаунта пользователя достаточно выполнить команду с опцией -L.
<syntaxhighlight lang="bash">
# usermod -L buh3
</syntaxhighlight>
Проверяем:
<syntaxhighlight lang="bash">
# grep -E 'buh3' /etc/shadow
buh3!$6$Xq90Qiae$lNbChGeX89upuE1vuXJtTXaC63Fddy.Xn8ebmuao9Fuid7xuJ66bMHYlWtlx6QIRltKtX1T5TYMKhyW1ZZXtQ/:17204:0:99999:7:::
</syntaxhighlight>
 
Если перед зашифрованным паролем отображается восклицательный знак это значит что пользователь заблокирован.
 
=== Разблокировка аккаунта пользователя===
Для того чтобы разблокировать аккаунт пользователя, достаточно выполнить команду с опцией -U.
<syntaxhighlight lang="bash">
# usermod -U buh3
</syntaxhighlight>
 
Проверяем:
<syntaxhighlight lang="bash">
# grep -E 'buh3' /etc/shadow
buh1_admin:$6$Xq90Qiae$lNbChGeX89upuE1vuXJtTXaC63Fddy.Xn8ebmuao9Fuid7xuJ66bMHYlWtlx6QIRltKtX1T5TYMKhyW1ZZXtQ/:17204:0:99999:7:::
</syntaxhighlight>
 
Восклицательного знака нет, значит пользователь разблокирован.
-->
 
=== Изменение командной оболочки пользователя ===
 
Чтобы изменить командную оболочку пользователя (например, на /bin/bash, /bin/sh, /bin/zsh), нужно выполнить команду usermod с опцией -s.
 
Например, изменим пользовательскую оболочку для buh3 с /bin/bash/ на /bin/sh/.
 
<syntaxhighlight lang="bash">
# usermod -s /bin/sh buh3
</syntaxhighlight>
 
Проверяем:
<syntaxhighlight lang="bash">
# grep -E 'buh3' /etc/passwd
buh3:x:1001:1002:Огурцова Татьяна:/home/buh3:/bin/sh
</syntaxhighlight>
 
===Изменение UID и GID пользователя===
Для изменения UID пользователя используется опция -u.
 
<syntaxhighlight lang="bash">
# usermod -u 777 buh3
</syntaxhighlight>
 
Проверяем:
<syntaxhighlight lang="bash">
# id buh3
uid=777(buh3) gid=1002(group_1) группы=1002(group_1),10(wheel),1003(group_2)
</syntaxhighlight>
 
Для изменения GID пользователя используется опция -g.
<syntaxhighlight lang="bash">
# usermod -g 777 buh3
</syntaxhighlight>
 
Проверяем:
<syntaxhighlight lang="bash">
# id buh3
uid=777(buh3) gid=777(newgroup) группы=777(newgroup),10(wheel),1003(group_2)
</syntaxhighlight>
 
Таким образом можно управлять пользователями и изменять их по своему усмотрению.


==Группы==
==Группы==


===Просмотреть список групп===
===Просмотреть список групп===
cat /etc/group
<syntaxhighlight lang="bash">
# cat /etc/group
</syntaxhighlight>


===Группы текущего пользователя===
===Группы текущего пользователя===
groups
<syntaxhighlight lang="bash">
$ groups
</syntaxhighlight>


===Группы конкретного пользователя===
===Группы конкретного пользователя===
<syntaxhighlight lang="bash">
# groups имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# groups buh3
</syntaxhighlight>


groups user
===Принудительно назначить первичную группу===
 
<syntaxhighlight lang="bash">
===Добавить пользователя в дополнительную группу===
# usermod -g группа имя_пользователя
usermod -G -a <имя_группы> <имя_пользователя>
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# usermod -g administratsiya buh3
</syntaxhighlight>


===Добавить пользователя в основную группу===
===Добавить в дополнительную группу===
 
<syntaxhighlight lang="bash">
sudo usermod -g test sergiy
# usermod -a -G группа имя_пользователя
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# usermod -a -G secrdostup buh3
</syntaxhighlight>


===Удалить из группы===
===Удалить из группы===
sudo usermod -G <группа_1>,<группа_2>,<группа_3> <пользователь>
<syntaxhighlight lang="bash">
# gpasswd -d пользователь имя_руппы
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# gpasswd -d buh3 secrdostup
</syntaxhighlight>


usermod -r группа пользователь
===Создание группы===
<syntaxhighlight lang="bash">
# groupadd имя_группы
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# groupadd secrdostup
</syntaxhighlight>


===Удаление группы===
===Удаление группы===
groupdel user
<syntaxhighlight lang="bash">
delgoup группа
# groupdel имя_группы
</syntaxhighlight>
Пример:
<syntaxhighlight lang="bash">
# groupdel secrdostup
</syntaxhighlight>


 
[[Категория:HOWTO]]
===Создание группы===
[[Категория:Управление пользователями]]
groupadd test

Текущая версия от 17:48, 5 апреля 2024

Пользователи

Примечание: Для работы команды chage нужно установить пакет shadow-change

Справочная информация по именованию пользователей

Правила по именованию пользователя
Имя может состоять из:
  • строчных ASCII-букв
  • цифр
  • подчеркивания и дефиса
Ограничения на имя

Первым символом имени пользователя могут быть:

  • строчная буква
  • подчеркивание

Первым символом не могут быть:

  • цифра
  • дефис

Последним символом может быть:

  • знак доллара ($)
Максимальная длина
имени пользователя:
  • 32 символа
Символы которые нельзя
использовать в имени пользователя:
  • прописные буквы
  • точка
Маска имени
[a-z_][a-z0-9_-]*[$]?

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

useradd

# useradd имя_пользователя

Пример:

# useradd buh1
Параметры
  • -M - не создавать домашний каталог
# useradd -M имя_пользователя

Пример:

# useradd -M buh1
  • -N - не создавать группу с тем же именем что и у пользователя
# useradd -N имя_пользователя

Пример:

# useradd -N buh1
  • -p - пароль
# useradd -p пароль имя_пользователя

Пример:

# useradd -p gfrgjhrkj buh1
  • -d - указание кастомного домашнего каталога
# useradd -d путь_к_новому_каталогу имя_пользователя

Пример:

# useradd -d /opt/users/buh1 buh1
  • --system - создание системного аккаунта без пароля и домашнего аккаунта
# useradd --system cassandra
  • -e - создание пользователя с истекающим сроком действия аккаунта. Он задается опцией -e ГГГГ-ММ-ДД
# useradd -e 2023-05-30 buh1

Проверяем командой chage:

# chage -l buh1

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

# chage -l buh1
Последний раз пароль был изменён				: мая 28, 2023
Срок действия пароля истекает					: никогда
Пароль будет деактивирован через				: никогда
Срок действия учётной записи истекает				: мая 30, 2023
Минимальное количество дней между сменой пароля			: -1
Максимальное количество дней между сменой пароля		: -1
Количество дней с предупреждением перед деактивацией пароля	: -1
  • Устанавливаем срок действия пароля в течении 20-и дней,
# chage -M 20 buh1

Проверяем командой chage:

# chage -l buh1

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

# chage -l buh1
Последний раз пароль был изменён				: мая 28, 2023
Срок действия пароля истекает					: июн 17, 2023
Пароль будет деактивирован через				: никогда
Срок действия учётной записи истекает				: мая 30, 2023
Минимальное количество дней между сменой пароля			: -1
Максимальное количество дней между сменой пароля		: 20
Количество дней с предупреждением перед деактивацией пароля	: -1
  • -c Указание отображаемого имени
# useradd -c "Богомолова Ольга" buh1

При входе в систему у пользователя buh1, вместо логина, будет отображаться имя "Богомолова Ольга"

  • -s Указание другой оболочки

Вместо bash мы можем установить пользователю другой командный интерпретатор (/bin/bash, /bin/sh, /bin/zsh).

# useradd -s /bin/sh buh1

Проверяем:

# grep -E 'buh1' /etc/passwd
buh1:x:1001:1001::/home/buh1:/bin/sh

adduser

adduser по командам аналогична useradd.

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

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

Существующему пользователю можно изменить имя, делается это опцией -l. Первым указывается новое имя, вторым - старое.

# usermod -l новое_имя старое_имя

Пример:

Изменим имя пользователя buh1 на buh3,

# usermod -l buh3 buh1

Проверяем:

# id buh1
id: buh1: такого пользователя нет
# id buh3
uid=1001(buh3) gid=1002(group_1) группы=1002(group_1),10(wheel),1003(group_2)

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

# passwd имя_пользователя

Пример:

# passwd buh3

Добавление/Изменение отображаемого имени

# usermod -c "Отображаемое имя" имя_пользователя

Пример:

# usermod -c "Огурцова Татьяна" buh3

Проверяем:

$ grep -E 'buh3' /etc/passwd
 test1:x:1001:1001:Огурцова Татьяна:/home/buh1:/bin/bash

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

Опция -d меняет каталог, а опция -m переносит в новый каталог все содержимое старого.

usermod -d новый_домашний_каталог -m имя_пользователя

Пример:

# usermod -d /home/buh3 -m buh3

Проверяем:

# grep -E 'buh3' /etc/passwd
buh1:x:1001:1001:Огурцова Татьяна:/home/buh3:/bin/bash

Установка даты истечения срока аккаунта

Пользователю можно назначить дату истечения действия аккаунта. Она задается опцией -e ГГГГ-ММ-ДД.

Примечание: Для работы chage нужно установить пакет shadow-change


# usermod -e срок_действия имя_пользователя

Пример:

# usermod -e 2024-12-31 buh3

Проверяем:

# chage -l имя_пользователя

Пример:

# chage -l buh3
Последний раз пароль был изменён				: мая 29, 2023
Срок действия пароля истекает					: никогда
Пароль будет деактивирован через				: никогда
Срок действия учётной записи истекает				: дек 31, 2024
Минимальное количество дней между сменой пароля			: -1
Максимальное количество дней между сменой пароля		: -1
Количество дней с предупреждением перед деактивацией пароля	: -1

Просмотреть список пользователей

Всех:

$ cat /etc/passwd

Только с домашней папкой в /home:

$ cat /etc/passwd | grep /home

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

userdel

# userdel имя_пользователя

Пример:

# userdel buh3
  • удалить залогиненого пользователя
# userdel -f имя_пользователя

Пример:

# userdel -f buh3
  • удалить домашний каталог и почтовый ящик
# userdel -r имя_пользователя

Пример:

# userdel -r buh3

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

Чтобы изменить командную оболочку пользователя (например, на /bin/bash, /bin/sh, /bin/zsh), нужно выполнить команду usermod с опцией -s.

Например, изменим пользовательскую оболочку для buh3 с /bin/bash/ на /bin/sh/.

# usermod -s /bin/sh buh3

Проверяем:

# grep -E 'buh3' /etc/passwd
buh3:x:1001:1002:Огурцова Татьяна:/home/buh3:/bin/sh

Изменение UID и GID пользователя

Для изменения UID пользователя используется опция -u.

# usermod -u 777 buh3

Проверяем:

# id buh3
uid=777(buh3) gid=1002(group_1) группы=1002(group_1),10(wheel),1003(group_2)

Для изменения GID пользователя используется опция -g.

# usermod -g 777 buh3

Проверяем:

# id buh3
uid=777(buh3) gid=777(newgroup) группы=777(newgroup),10(wheel),1003(group_2)

Таким образом можно управлять пользователями и изменять их по своему усмотрению.

Группы

Просмотреть список групп

# cat /etc/group

Группы текущего пользователя

$ groups

Группы конкретного пользователя

# groups имя_пользователя

Пример:

# groups buh3

Принудительно назначить первичную группу

# usermod -g группа имя_пользователя

Пример:

# usermod -g administratsiya buh3

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

# usermod -a -G группа имя_пользователя

Пример:

# usermod -a -G secrdostup buh3

Удалить из группы

# gpasswd -d пользователь имя_руппы

Пример:

# gpasswd -d buh3 secrdostup

Создание группы

# groupadd имя_группы

Пример:

# groupadd secrdostup

Удаление группы

# groupdel имя_группы

Пример:

# groupdel secrdostup