
В продолжение утренней заметки как запускать приложения через sudo без ввода пароля, напишем небольшую шпаргалку по использованию sudo в целом.
Введение
Утилита sudo (от англ. «substitute user do» — «выполнить от имени другого пользователя») позволяет пользователям запускать программы от имени суперпользователя (root) или другого пользователя с повышенными привилегиями. Это полезно, когда необходимо выполнить действия, требующие административных прав, без необходимости входа в систему под учётной записью root.
Основные принципы работы с sudo
- Запуск команд с помощью sudo: чтобы выполнить команду от имени суперпользователя, нужно ввести в терминале
sudo
перед командой. Например, чтобы обновить список пакетов в системе, можно использовать командуsudo apt update
. - Ввод пароля: при первом использовании sudo в текущем сеансе терминала потребуется ввести пароль пользователя. Это сделано для того, чтобы убедиться, что пользователь имеет права на выполнение команд с повышенными привилегиями.
- Временный доступ: после ввода пароля sudo предоставляет временный доступ к выполнению команд от имени суперпользователя в течение определённого времени (по умолчанию 15 минут). Это позволяет избежать повторного ввода пароля при выполнении нескольких команд подряд.
- Ограничение доступа: администраторы могут настроить ограничения на использование sudo для разных пользователей. Например, можно разрешить выполнение только определённых команд или ограничить время доступа.
- Журнал действий: все команды, выполненные с помощью sudo, записываются в журнал системы. Это позволяет отслеживать действия пользователей и обеспечивать безопасность системы.
Примеры использования sudo
- Установка пакетов:
sudo apt install package_name
- Обновление системы:
sudo apt update && sudo apt upgrade
- Редактирование системных файлов:
sudo nano /etc/hostname
- Перезагрузка системы:
sudo reboot
Открытие файла конфигурации sudo
Чтобы открыть файл конфигурации sudo в редакторе nano, выполните следующую команду:
sudo SUDO_EDITOR=nano visudo
Это позволит вам редактировать файл sudoers безопасно и удобно.
Добавление пользователя в sudo
Для добавления себя в группу sudo используйте команду su:
su -c visudo
Это даст вам возможность редактировать файл sudoers и добавлять пользователей в группу с правами sudo.
Настройка прав доступа для групп и пользователей
Вы можете настроить права доступа для определённых групп и пользователей. Например, для группы wheel можно задать следующие права:
%wheel ALL=(ALL:ALL) ALL
Это означает, что все члены группы wheel могут выполнять все команды от имени любого пользователя на всех хостах.
Для пользователя tux можно задать следующие права:
tux ALL=(ALL) ALL
Это означает, что пользователь tux может выполнять все команды на всех хостах.
Настройка переменных окружения
Вы можете задать новую переменную PATH во время использования sudo:
Defaults secure_path="$PATH:/sbin"
Это позволит вам указать дополнительные пути для поиска команд.
Настройка уведомлений и логов
При неверном вводе пароля можно отправлять уведомление администратору:
Defaults mail_badpass
Можно включить логирование вывода команд, за исключением вывода sudoreplay:
Defaults log_output
Defaults!/usr/bin/sudoreplay !log_output
Defaults!REBOOT !log_output
Сохранение переменных окружения пользователя
Чтобы сохранить большинство переменных окружения пользователя, используйте опцию env_keep вместе с переменными, которые вы хотите сохранить:
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Это позволит сохранить важные переменные окружения пользователя при выполнении команд с помощью sudo.
Заключение
Утилита sudo является мощным инструментом для управления системой Linux. Она позволяет пользователям выполнять команды от имени суперпользователя, обеспечивая при этом безопасность и контроль над доступом к системным ресурсам. Правильное использование sudo может значительно упростить администрирование системы и повысить её безопасность.