Пользователи и sudo в Linux: шпаргалка

Учётные записи, группы и повышение привилегий без постоянного root.

Кто я: whoami, id, groups

whoami   # alice
id       # uid=1001(alice) gid=1001(alice) groups=...,1002(dev)
groups   # alice dev

uid — числовой идентификатор пользователя, gid — его первичная группа; root — это uid 0, для него проверки прав не выполняются. id alice покажет то же про другого.

sudo: одна команда от root

sudo systemctl restart nginx  # спросит ТВОЙ пароль
sudo -i                       # целая root-сессия (реже)

sudo выполняет команду от root по твоему паролю и пишет каждое использование в журнал — поэтому он безопаснее постоянной работы под root, где любая опечатка в rm необратима.

Создать пользователя: useradd -m

sudo useradd -m -s /bin/bash alice  # с домом и bash
sudo passwd alice                   # задать пароль
grep "^alice" /etc/passwd           # проверить запись

Без -m домашний каталог не создастся, без -s шеллом будет /bin/sh. Учётки лежат строками в /etc/passwd, хэши паролей — в закрытом /etc/shadow.

Группы: usermod -aG (только с -a!)

sudo groupadd dev
sudo usermod -aG dev alice  # ДОБАВИТЬ в группу
# usermod -G dev alice — ЗАМЕНИТ весь список групп!
id alice                    # проверить членство

Флаг -a означает append: без него -G заменяет список дополнительных групп целиком, и пользователь молча вылетает из sudo и docker. Новые группы процесс получает только после перелогина.

su: сессия под другим пользователем

su - alice   # войти как alice (пароль alice)
whoami       # alice
exit         # вернуться в свою сессию

Дефис у su - важен: он даёт полноценное окружение пользователя, а не только имя. Для админ-задач предпочитай sudo — он точечный и оставляет след в журнале.

поделиться: Telegram VK

Что дальше