groups useradd useradd usermod groupadd groupmod userdel groupdel passwd
Файл с информацией о учетных записях
Информация об имеющихся учетных записях хранится в файле /etc/passwd.
# /etc/passwd
1 root:х:0:0:root:/root:/bin/bash
2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
3 bin:х:2:2:bin:/bin:/usr/sbin/nologin
4 sys:x:3:3:sys:/dev:/usr/sbin/nologin
5 sync:x:4:65534:sync:/bin:/bin/sync
6 ..
7 ivan:x:1000:1000:ivan,,,:/home/ivan:/bin/bash
8 proftpd:x:123:65534::/run/proftpd:/bin/false
9 ftp:x:124:65534::/srv/ftp:/bin/false- Учетные записи есть не только у обычных пользователей, но также у служб они называются служебные учетные записи.
формат файла /etc/passwd:
имя_пользователя:пароль:UID:GID:полное_имя:домашний_ каталог:оболочка
-
Имя пользователя - это логин пользователя, который он вводит для регистрации в системе.
-
Пароль в современных системах в этом файле не указывается, а второе поле осталось просто для совместимости со старыми системами. Сейчас пароли хранятся в файле /etc/shadow.
-
UID (User ID) и GID (Group ID) — идентификаторы пользователя и группы соответственно. Идентификатор пользователя root всегда равен 0, как и идентификатор группы root. Список групп вы найдете в файле /etc/groups. Обратите внимание, что UID обычных пользователей по умолчанию всегда > 1000, a UID специальных пользователей (служебных пользователей) - до 1000.
-
Полное имя - имя пользователя в реальной жизни, может не заполняться, а может содержать реальные данные, по которым администратор сможет понять, кто есть кто. Все зависит от использования компьютера. Если это домашний компьютер с двумя-тремя учетными записями, то и так понятно, кто есть кто. А вот если учетных записей, скажем, 500, то запомнить все довольно сложно.
-
Домашний каталог - имя домашнего каталога - каталога, который содержит файлы пользователя. Обычно домашний каталог называется /home/<логин>
-
Оболочка - оболочка, которая будет запущена при входе пользователя в консоль или при запуске терминала. У служебных аккаунтов, как правило, используются программы вроде nologin, false, true - это программы-заглушки, которые завершают работу сразу после запуска. Использование этих программы отключает вход учетной записи в систему.
Файл паролей
Пароли хранятся в файле /etc/shadow
root:"зашифрованный пароль":19901:0:99999:7:::
daemon:*:19901:0:99999:7:::
bin:*:19901:0:99999:7:::
sys:*:19901:0:99999:7:::
...
user:"зашифрованный пароль":19901:0:99999:7:::
sshd:!:19901::::::В файле /etc/shadow полей больше, чем в /etc/passwd. Как и в случае с / etc/passwd, поля разделяются двоеточиями:
- Имя пользователя. Совпадает с именем пользователя в файле /etc/ passwd
- Зашифрованный пароль. Позже мы поговорим о том, как распознать алгоритм шифрования, которым был зашифрован пароль.
- Количество дней (с 1 января 1970 года), когда пароль был сменен в последний раз.
- Число дней до смены пароля. Если в этом поле 0, то пароль может быть сменен в любой момент.
- Количество дней, после которых пароль должен быть сменен. Обычно здесь значение 999999, которое показывает, что пользователь может никогда не менять свой пароль.
- Число дней, в течение которых пользователь получает предупреждение о необходимости изменить пароль. Обычно такие предупреждения пользователь получает за неделю (7 дней) до часа «X».
- Число дней после окончания действия пароля, когда еще пользователь может работать со старым паролем. Если после этого срока пользователь не сменит пароль, учетная запись будет заблокирована.
- Число дней, начиная с 1 января 1970, после которых пароль будет заблокирован
- Не используется.
Обычно последние три поля не используются. Поле с зашифрованным паролем позволяет понять, какой алгоритм система использовала для его шифрования. Посмотрите на начало зашифрованного пароля:
-
- MD5. Ранее часто использовался, сейчас чаще используется SHA-512, поскольку в MD5 обнаружились математические уязвимости.
-
- Blowfish. Чаще используется в FreeBSD/OpenBSD, чем в Linux;
-
- SHA-256;
-
- SHA-512. Используется в современных дистрибутивах.
Группы
В некоторых случаях пользователей объединяют в группы для более эффективного управления ними. Представим, что у нас есть три пользователя: ivan, mark, eva, которые должны совместно работать над проектом. Чтобы пользователи получили доступ к домашним каталогам друг друга их достаточно объединить в одну группу. По умолчанию пользователь не имеет доступ к домашнему каталогу другого пользователя, поскольку пользователи находятся в разных группах. Также можно предоставить доступ к какому-то объекту всей группе сразу, тогда каждый ее член сможет обратиться к объекту и не нужно будет указывать права отдельно для каждого пользователя.
Группы находятся в файле /etc/group
# /etc/group
root:х:0:
daemon:х:1:
bin:х:2:
sys:х:3:
adm:х:4:syslog,ivan
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:ivan
...
colord:x:129:
saned:x:130:
ivan:x:1000:
sambashare:x:131:ivanФормат этого файла следующий:
имя группы:пароль:GID:список пользователей- Имя_группы - имя группы, вы увидите его в выводе команды Is -1.
- Пароль - обычно пароль для группы не используется, поэтому это поле будет пустым.
- GID - данный номер указывается в /etc/passwd для задания принадлежности пользователя к группе.
- Список пользователей - содержит список членов группы. Имена пользователей разделяются запятыми
Команды для работы с пользователями
Общие команды
cat /etc/passwd # Просмотр пользователей в системе cat /etc/group # Просмотр групп в системе
groups <user_name> # Посмотреть группы пользователя
useradd <parametrs> <name> - Создать пользователя
useradd test # Создать пользователя с именем test
useradd -b /test test # Создать и задать нестандартное место домашнего каталога
useradd -g test test # Создать и задать основную группу пользователя
useradd -G share,admin,http test # Создать и задать дополнительные группы
passwd <parametrs> <user> - Задать/Изменить пароль пользователю
passwd test # Запуск процедуры указания пароля
passwd -d test # Удалить пароль пользователя. Читай заблокировать
passwd -e test # Сделать пароль устаревшим.
# Пользователя попросят сменить его при входеusermod <parametrs> <user> - Изменить параметры пользователя
usermod -R admin test # Удалить группу пользователя
usermod -G user,vpn # Изменить дополнительные группы (От слова полностью)
# Т.е если до этого пользователь имел какиет-то группы то они будут все удалены
usermod -g web # Изменить основную группуgroupadd <name>
groupadd <name> # Создать группу
groupadd -g 111 <name> # Создать группу id 111
groupadd -g 111 -o <name> # Создать группу с неуникальным idgroupmod <parametrs> <group> - Изменить параметры группы
groupmod -n ftp-users test # Переименовать группу test в группу ftp-users
groupmod -g 226 -n ftp-users test # Так же указать новый id группы
groupmod -o -g 645 -n ftp-users test # Так же присвоить не уникальный iduserdel <user> - Удалить пользователя
userdel test # Удалить пользователя
userdel -r test # Удалить домашний каталог пользователя
userdel -n 11 test # Через 11 месяцев можно занимать id пользователя
userdel -n -1 test # Никогда не занимать id пользователяgroupdel <group> - Удалить группу
groupdel test # Удалить группуУстановка пароля пользователя
- Мы создали пользователя test1, но не указали ему пароль
- Проверим так ли это: cat /etc/shadow
user:$y$j9T$RMx5QE0tun5Zj5iH7YJgJ.$G.O2tI62VS9DsZmmJeREH92L1dz8WjI1te7rgLPjbm8:19671:0:99999:7:::
test1:!:19777:0:99999:7:::- Длинная запись у user как раз и представляет собой шифр хеша пароля и у test1 его действительно нет
- Установим его командой: passwd test1
- Проверить что он установился можно командой: cat /etc/shadow