Команда sudo в Linux
sudo расшифровывается как "Super User DO", что позволяет авторизованным пользователям выполнять команды от имени другого пользователя (обычно пользователя root). Иными словами, команды, выполненные через sudo, выглядят так, как если бы их лично выполнил root.
Права на использование: пользователи, указанные в /etc/sudoers.
Синтаксис
sudo [选项] 命令
Например:
sudo apt update # 以 root 权限更新软件包列表 sudo vim /etc/hosts # 编辑需要 root 权限的文件
Описание параметра:
- -i: Имитировать первоначальный вход, загрузить окружение целевого пользователя
- -s: Запустить оболочку
- -uuser: Запустить от имени указанного пользователя
- -l: Вывести команды sudo, которые может выполнять текущий пользователь
- -v: Проверить учетные данные пользователя (продлить сеанс sudo)
- -k: Отозвать кэш учетных данных sudo
Примеры
Выполнить одну команду с правами root:
sudo apt update sudo systemctl restart nginx sudo mkdir /opt/myapp
Переключиться на оболочку пользователя root:
sudo -i # 登录shell,加载root环境变量 sudo -s # 非登录shell sudo su - # 另一种方式
Выполнить команду от имени другого пользователя:
sudo -u username command
sudo -u postgres psql # 以 postgres 用户运行 psql
Проверить доступные права:
sudo -l
Редактировать системные файлы:
sudo nano /etc/hosts sudo vim /etc/nginx/nginx.conf
Файл конфигурации
Конфигурация sudo хранится в файле /etc/sudoers, и ее следует редактировать с помощью команды visudo:
sudo visudo
Примеры типовой конфигурации:
# 允许用户免密码执行所有命令 username ALL=(ALL) NOPASSWD: ALL # 允许用户组执行特定命令 %wheel ALL=(ALL) /bin/systemctl, /usr/bin/apt
Часто задаваемые вопросы
Пользователь отсутствует в файле sudoers:
# 需要 root 用户将目标用户加入 sudo 组: usermod -aG sudo username # Ubuntu/Debian usermod -aG wheel username # CentOS/RHEL
Настройка длительности кэша:
Измените timestamp_timeout в /etc/sudoers (единица измерения: минуты):
Defaults timestamp_timeout=30
Различия между su и sudo
| Характеристика | su | sudo |
|---|---|---|
| Требуется пароль | Пароль целевого пользователя | Пароль текущего пользователя |
| Длительность сеанса | До ручного выхода | Одна команда или кратковременный кэш |
| Сложность конфигурации | Простая | Требуется настройка sudoers |
| Безопасность | Требуется знание пароля root | Более детальный контроль разрешений |
| Аудит | Ограниченно | Более подробные журналы |
Хотя команда su проста и прямолинейна, sudo обычно является более рекомендуемым выбором в современном системном администрировании, поскольку обеспечивает лучшую безопасность и возможности аудита.
Другие расширения
Справочник команд Linux