С чего начать Первые шаги трек · 15 ступеней
Linux Labs
К статье

sudo — выполнение команд от другого пользователя

шпаргалка · Ubuntu 24.04 · sudo 1.9 https://lab.dimsanych.ru/ru/wiki/sudo/

Шпаргалка

  • sudo apt update выполнить команду от root
  • sudo -u postgres psql выполнить от другого пользователя
  • sudo -i интерактивный root-shell
  • sudo -l что мне разрешено
  • sudoedit /etc/nginx/nginx.conf безопасно править root-файл
  • sudo visudo -f /etc/sudoers.d/10-x править правила sudoers

Ключи

sudoers

Право даёт членство в группе sudo (Ubuntu) / wheel (RHEL), либо явное правило. Никогда не редактируй sudoers напрямую — только через visudo (проверяет синтаксис, иначе можно потерять sudo):

bash
sudo visudo                       # основной файл /etc/sudoers
sudo visudo -f /etc/sudoers.d/90-deploy   # отдельный drop-in (рекомендуется)
sudo visudo -c                    # проверить синтаксис всех файлов

Формат правила и алиасы:

# кто   где = (от кого)      что
alice   ALL = (ALL:ALL)      ALL
deploy  ALL = (root) NOPASSWD: /bin/systemctl restart myapp, /bin/systemctl status myapp
%devs   ALL = (root)         /usr/bin/apt        # %группа
Cmnd_Alias SERVICES = /bin/systemctl restart nginx, /bin/systemctl reload nginx
web     ALL = (root) NOPASSWD: SERVICES

NOPASSWD: — без запроса пароля (для автоматизации; держи область узкой!).

Опции и sudoedit

Полезные Defaults (в /etc/sudoers.d/):

Defaults        env_reset                          # чистое окружение (безопасно)
Defaults        secure_path="/usr/sbin:/usr/bin:/sbin:/bin"
Defaults        timestamp_timeout=15               # минут кэш пароля (0 = всегда спрашивать)
Defaults:deploy !requiretty
Defaults        logfile="/var/log/sudo.log"        # отдельный лог
bash
sudo -E cmd                       # сохранить переменные окружения (если разрешено)
sudoedit /etc/nginx/nginx.conf    # = sudo -e: править root-файл своим $EDITOR безопасно
sudo -v                           # продлить кэш пароля (для длинных скриптов)

sudoedit правит копию от твоего имени и атомарно кладёт назад — безопаснее, чем sudo vim (не запускает редактор от root).

Загрузка…