Формат файла
Название | Описание |
---|---|
root | имя пользователя |
x | атавизм, ранее был хеш пароля |
0 | ID пользователя |
0 | ID группа пользователя |
root | Комментарий |
/root | Домашний каталог пользователя, у пользователей в /home/ |
/bin/bash | Командная оболочка, /usr/sbin/nologin. /bin/false пустышки. Но запускать bash от таких пользователей можно. |
Аутентификация проверка учётных данных, а авторизация проверка прав
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin [..] news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin systemd-timesync:x:997:997:systemd Time Synchronization:/:/usr/sbin/nologin sshd:x:101:65534::/run/sshd:/usr/sbin/nologin pnagaev:x:1000:1000::/home/pnagaev:/bin/bash test01:x:1001:1001::/home/test01:/bin/sh test02:x:1002:1002::/home/test02:/bin/bash polkitd:x:996:996:polkit:/nonexistent:/usr/sbin/nologin
Команда | Описание |
---|---|
cat /etc/passwd | Просмотр всех зарегистрированных пользователей |
cut -d: -f1 /etc/passwd | sort | Отобразить только имена пользователей в отсортированном виде |
useradd -m -g myuser -G wheel,audio -s /bin/bash myuser |
-m — создать домашнюю папку
-g — основная группа myuser
-G — дополнительные группы: wheel, audio
-s — оболочка: /bin/bash |
adduser | Интерактивное создание пользователя с помощью useradd и дополнительных настроек (включая chfn, passwd) |
chfn | Изменение информации о пользователе (ФИО, телефон и др.) |
passwd [myuser] | Изменение пароля пользователя |
sudo usermod -L myuser | Заблокировать пользователя — перед паролем в `/etc/shadow` появится `!`, вход станет невозможен |
sudo usermod -s /sbin/nologin имя_пользователя | Отключить доступ к оболочке, даже при верном пароле |
sudo passwd -l myuser | Заблокировать учётную запись полностью |
sudo passwd -S myuser | Проверить статус пароля: если вывод содержит L, пользователь заблокирован |
usermod -a -G mygroup myuser | Добавить пользователя myuser в дополнительную группу mygroup |
usermod -g mygroup myuser | Установить mygroup в качестве основной группы |
userdel -r myuser | Удалить пользователя myuser, флаг -r также удаляет домашний каталог и почту |
Команда | Описание |
---|---|
sudo chage -E YYYY-MM-DD имя_пользователя | Установить дату истечения учётной записи (после этой даты пользователь не сможет войти) |
sudo chage -E 0 имя_пользователя | Немедленно отключить учётную запись |
sudo chage -l имя_пользователя | Просмотреть текущие параметры срока действия учётной записи |
sudo touch /etc/nologin | Временно запретить вход всем пользователям, кроме root (например, при обслуживании системы) |
Команда | Описание |
---|---|
cat /etc/passwd | Список пользователей и Shell |
sudo vim /etc/default/useradd | Shell по умолчанию находится в файле |
cat /etc/shells | Список Shell которые возможно установить на компе |
chsh | Команда по смене Shell для пользователя |
usermod -s /bin/sh user | Команда по смене Shell для пользователя |
Файл с хешами паролей
/etc/shadow
root:$y$j96$UKwucaml7j.r1AdYEQ2Mx/$VGL.85ga1uf.9/9158OSVcCV5zy20396mG.08GJc/G7:19K82:0:99999:7::: daemon:*:19534:0:99999:7::: bin:*:19534:0:99999:7::: [...] man:*:19534:0:99999:7::: mail:*:19534:0:99999:7::: news:*:19534:0:99999:7::: uucp:*:19534:0:99999:7::: proxy:*:19534:0:99999:7::: www-data:*:19534:0:99999:7::: backup:*:19534:0:99999:7::: list:*:19534:0:99999:7::: nobody:*:19534:0:99999:7::: systemd-timesync:!*:19534:::::: sshd:!:19534:::::: myuser:$6$j9T$kv6vTkNzbN4qer5VZ403C0$UgbEtyhK31OE87ANjlQj.lGS/FjQw5x0KYuUP3j3d42:19882:0:99999:7::: test01:!:19675:0:99999:7::: test02:!:19675:0:99999:7::: polkitd:!*:19895::::::
systems apt-get install -y whois
sudo yum install expect sudo yum install grub-crypt
mkpasswd -l 16 -d 3 -C 3 -c 3 -s 3 -v
Параметр | Описание |
---|---|
l | длина |
d | количество цифр |
C | количество больших букв |
c | количество маленьких букв |
s | количество специальных символов |
$ sudo chage -l myuser
$ sudo passwd myuser -S
Команда | Описание |
---|---|
-S, --status | Отображает статус учётной записи. Статус состоит из 7 полей. |
Первое поле | Имя пользователя |
Второе поле | Отображает статус пароля, заблокирован(L), не установлен(NP), установлен нормальный пароль(P) |
Третье поле | Дата последнего изменения пароля |
Следующие четыре поля | Минимальный возраст, максимальный возраст, время истечения срока, период неактивности. Все поля отображаются в днях. |
Конфигурационные файлы .profile и .bashrc для новых пользователей копируются из файла /etc/skel
Путь | Описание |
---|---|
/bin/bash | Путь запуска bash |
/etc/profile | Общий инициализационный файл, запускаемый для всех пользователей при входе в систему |
/etc/bash.bash_logout | Общий файл, запускаемый при выходе из системы |
~/.bash_profile | Персональный инициализационный файл, запускаемый при входе пользователя в шелл |
~/.bashrc | Индивидуальный пользовательский файл, запускаемый при входе пользователя |
~/.bash_logout | Индивидуальный фал, запускаемый при выходе |
~/.inputrc | Индивидуальный файл настроек для readline |
Команда | Описание |
---|---|
cat /etc/group | Просмотр всех групп в системе |
getent group | Просмотр всех групп с использованием базы данных NSS |
groups myuser | Проверка членства пользователя myuser в группах |
getent group mygroup | Просмотр участников группы mygroup |
groups | Просмотр групп, в которые входит текущий пользователь |
id | Вывод UID, GID и членства в группах текущего пользователя |
groupadd mygroup | Создание новой группы mygroup |
groupmod -n new-name current-name | Переименование группы |
usermod -a -G mygroup myuser | Добавить пользователя myuser в группу mygroup |
gpasswd -a myuser mygroup | Альтернативный способ добавления пользователя в группу |
gpasswd -d myuser mygroup | Удалить пользователя из группы |
groupdel mygroup | Удалить группу mygroup |
Псевдопользователь nobody — это специальный системный пользователь, у которого нет прав собственности ни на один файл и который не входит в привилегированные группы. Он также, как правило, не имеет домашнего каталога и не может войти в систему. Его основное назначение — выполнение процессов с минимальными правами.
Эквивалентная группа nogroup часто используется в связке с nobody, особенно в контексте сетевых служб, таких как NFSv4, при использовании `idmapd`. Если входящий запрос не может быть сопоставлен с существующим пользователем или группой, ему присваиваются nobody:nogroup.
Ранее было распространено запускать демоны от имени nobody, чтобы ограничить потенциальный ущерб в случае взлома. Однако такая практика опасна, если от имени nobody запускается более одного процесса: злоумышленник, получивший доступ к одному из них, сможет управлять и другими.
🔒 Современная практика согласно Linux Standard Base — создавать отдельную учётную запись пользователя для каждого системного демона.
su (от substitute user) — используется для перехода в контекст другого пользователя (по умолчанию — root).
Команда | Описание |
---|---|
su | Переключение на другого пользователя (по умолчанию root), без подгрузки среды |
su - | Переключение с подгрузкой переменных окружения и оболочки пользователя (аналог входа через login) |
su - имя_пользователя | Войти от имени указанного пользователя с его окружением |
su имя_пользователя | Войти от имени указанного пользователя, но сохранить текущее окружение |
su
sudo
Примеры:
🔐 sudo более безопасен в многопользовательской среде, так как позволяет точно настроить, кто и что может выполнять.
sudo - переключиться на пользователя и "do" выполнить. Нужен пароль, но не пользователя, а свой. sudo выполняет одну команду sudo логирует действия
sudo -u test 01 id | выполнить команду id от имени другого пользователя |
less /etc/sudoers | посмотреть файл конфигурации. |
%sudo - это имя группы ALL, !/bin/sh - запретить команды