X

Пользователи в Linux – добавление, изменение, удаление

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

Создание и удаление пользователя в Linux – useradd

Для добавления пользователей используется команда useradd, а удаляются с помощью userdel. Давайте создадим две учетки, с одной будем работать дальше, а вторую удалим.

Перед тем как добавить учетную запись, на незнакомом сервере, сначала посмотрите какие параметры заданы по умолчанию для новых пользователей. useradd использует шаблон, который задается в файле /etc/default/useradd. Посмотрим, что там у нас:

[root@hc ~]# useradd -D
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Что тут для нас важно:

  • HOME=/home – директория где создастся домашняя папка пользователя, традиционно это /home
  • INACTIVE=-1 – количество дней, через которое навсегда заблокируется учетная запись, после устаревания пароля. -1 здесь означает, что возможность не используется.
  • EXPIRE= – дата, когда пользователь будет заблокирован. Сейчас пусто, значит никогда.
  • SHELL=/bin/bash – какая оболочка будет использоваться пользователем.
  • SKEL=/etc/skel – папка где лежат файлы, которые будут скопированы в домашнюю директорию нового пользователя.

По сути нас все устраивает, давайте уже создадим учётку:

useradd hc -m

-m указывает, что необходимо создать папку пользователя в /home, если ее там еще нет.
И сразу создадим второго:

useradd testuser -m -s /bin/sh -c 'Test User Account'

Для разнообразия, с помощью ключа -s я указал, что shell оболочкой будет не bash, a sh. А задает комментарий для пользователя, который используется, обычно, как полное имя пользователя.

Какие ключи еще понимает useradd:
-b – задает базовый каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home
-d – задает имя домашнего каталога. По умолчанию название совпадает с именем пользователя
-e Дата, по достижении которой пользователь блокируется. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено. Соответствует EXPIRE в шаблоне/etc/default/useradd;
-f – соответствует INACTIVE в шаблоне, как уже говорилось, срок устаревания пароля до блокировки;
-g – задает первичную группу для нового пользователя. Указывается GID или имя группы. Если параметр не задан, имя группы будет такое же как имя пользователя;
-G – список дополнительных групп для создаваемого пользователя;
-k – путь к каталогу шаблонов. Соответствует SKEL в шаблоне;
-u – для установки UID пользователя вручную.

Управляем паролями пользователей в Linux – passwd

Для задания и смены паролей используется команда passwd.

Давайте зададим пароль для пользователя hc:

[root@hc ~]# passwd hc
Changing password for user hc.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Нас спросили новый пароль и его подтверждение. В ходе задания пароля вы можете получать предупреждения, что пароли не слишком хороши:

  • BAD PASSWORD: The password is a palindrome – зеркальный пароль, например – 111111, 123321, qweewq и т.п.;
  • BAD PASSWORD: The password is shorter than 8 characters – пароль меньше 8 символов;
  • BAD PASSWORD: The password fails the dictionary check – it is based on a (reversed) dictionary word – в качестве пароля используется слово из словаря, например hello или qwerty;
  • BAD PASSWORD: is too similar to the old one – слишком похож на предыдущий, например, если вы сменили только один символ.

и так далее. Придумывайте качественные пароли!

Просмотр информации о пользователях в Linux

с помощью команды id, о любом пользователе

[root@hc ~]# id testuser
uid=1001(testuser) gid=1001(testuser) groups=1001(testuser)

id без указания параметров расскажет о вашей текущей учетке.

Так же узнать под кем вы работаете можно с помощью команды whoami:

[hc@hc home]$ whoami
hc

или чуть более подробно who am i:

[hc@hc home]$ who am i
root     pts/0        2016-07-20 15:06 (192.168.0.33)

Узнать какие пользователи работают в системе можно введя who:

[root@hc home]# who
root     pts/0        2016-07-20 15:06 (192.168.0.33)
hc       pts/1        2016-07-20 18:42 (192.168.0.33)

или так, чуть более подробно командой w:

[root@hc home]# w
 18:42:50 up  8:45,  2 users,  load average: 0.03, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.0.33     15:06    2.00s  1.31s  0.06s w
hc       pts/1    192.168.0.33     18:42   48.00s  0.03s  0.03s -bash

Изменение информации о пользователях в Linux – usermod

Изменять учетную запись можно с помощью usermod.

Вернем bash для testuser:

usermod testuser -s /bin/bash

Утилита использует те же ключи, что и useradd. Т.е. и изменить вы можете те же самые параметры и атрибуты, что и при создании учётной записи.

Удаляем учетную запись в Linux – userdel

Тут так же все просто:

userdel -r testuser

-r – указывает, что необходимо удалить не только запись о пользователе, но и его домашний каталог со всем содержимым. Так же есть еще опция -f – немедленное удаление пользователя, даже если он работает в системе.

Пользователи в Linux – пара полезных практических примеров

Меняем оболочку по умолчанию в шаблоне пользователя

[root@hc home]# useradd -D -s /bin/zsh
[root@hc home]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/zsh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Не рекомендую вам править файл шаблона руками – используйте useradd -D с необходимыми опциями.

Утилита finger

Для просмотра информации о пользователе удобно пользоваться утилитой finger. В стандартный набор софта она не входит, ее надо установить дополнительно:

Для Debian/Ubuntu/Linux Mint

sudo apt-get install finger

Для RedHat/CentOS

yum install finger
[hc@hc ~]$ finger testuser
Login: testuser                         Name: Test User Account
Directory: /home/testuser               Shell: /bin/bash
Last login Wed Jul 20 18:40 (EDT) on pts/0
No mail.
No Plan.

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

usermod -l newname testuser

Список всех пользователей Linux

cat /etc/passwd | sed s/:.*//
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
avahi-autoipd
systemd-bus-proxy
systemd-network
dbus
polkitd
tss
postfix
sshd
hc
newname

На этом все, надеюсь, что вам стало немного понятнее, как управляются пользователи в Linux.

Categories: Ликбез
hc:

View Comments (1)

  • последнюю команду со списком пользователей понял далеко не сразу.
    ибо в представленном виде выдает такие ошибки:
    `$ cat/etc/passwd|seds/:.*//
    -bash: cat/etc/passwd: Нет такого файла или каталога
    -bash: seds/:.*//: Нет такого файла или каталога`

    пришлось включать мозги, вспоминать что существуют регулярки и расставлять пробелы в правильных местах
    `$ cat /etc/passwd | sed s/:.*//
    root
    ...`