Давайте разберемся, как устроены пользователи в 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 -m hc
-m указывает, что необходимо создать папку пользователя в
/home, если ее там еще нет.
И сразу создадим второго:
useradd -m testuser -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