Обзор sudo
В системах Linux пользователь root имеет все права. Однако выполнение всех задач от имени root может быть рискованным, поскольку это может привести к серьезным повреждениям системы. `sudo` — это важный механизм безопасности, который временно предоставляет обычным пользователям необходимые административные права, минимизируя риски безопасности и позволяя управлять системой.
Как работает sudo
sudo запрашивает у пользователя пароль (ваш собственный пароль, а не пароль root) при выполнении команды sudo, и если этот пароль правильный, выполняет соответствующую команду с правами root или другого пользователя в соответствии с правилами, определенными в файле sudoers. После авторизации вы можете использовать sudo без повторного ввода пароля в течение определенного времени (по умолчанию 5 минут).
Основные функции sudo
- Укрепление безопасности: предотвращает необходимость входа в учетную запись root, снижая риски безопасности.
- Отслеживание ответственности: все команды, выполненные через
sudo, записываются в журнал, что позволяет отслеживать, кто и когда выполнил какую-либо административную команду. - Детализированный контроль прав: файл
sudoersпозволяет точно контролировать, какие команды могут выполняться с правами root конкретными пользователями или группами. - Упрощение повторного ввода пароля: после авторизации вы можете использовать
sudoв течение определенного времени без ввода пароля, что удобно.
🔑 Файл sudoers
/etc/sudoers
Все настройки прав для sudo определяются в файле /etc/sudoers. Этот файл очень чувствителен, поэтому обязательно используйте команду visudo для редактирования. visudo автоматически проверяет синтаксис, предотвращая сбой функции sudo из-за неверных настроек.
Основные параметры команды sudo
Команда `sudo` может управлять способом выполнения команд с помощью различных параметров, помимо повышения прав.
1. Основное использование
2. Параметры, связанные с пользователем и оболочкой
3. Параметры, связанные с аутентификацией и списком
Сгенерированная команда:
Комбинируйте команды.
Описание:
`sudo` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Настройки файла sudoers (использование visudo)
`sudo` права управляются файлом `/etc/sudoers`. Вместо того чтобы редактировать этот файл напрямую, его нужно безопасно редактировать с помощью команды `visudo`. `visudo` проверяет синтаксис, предотвращая повреждение функции `sudo` из-за ошибок.
Редактирование файла sudoers
sudo visudo
Безопасно редактирует файл `sudoers` с правами root. Основным редактором может быть `vi`.
Общий формат файла sudoers
Элементы файла sudoers определяются в формате User Host=(RunAs) NOPASSWD: Command. Наиболее распространенная настройка позволяет пользователям, входящим в определенную группу, выполнять все команды с правами sudo.
Примеры настроек
Вот несколько примеров настроек, которые часто встречаются в файле sudoers.
%sudo ALL=(ALL:ALL) ALL: Разрешает всем пользователям, входящим в группуsudo, выполнять любые команды (ALL) от имени любого пользователя (ALL) и группы (ALL) на любом хосте (ALL). (Требуется пароль)username ALL=(ALL) NOPASSWD: /usr/bin/apt update: Разрешает пользователюusernameвыполнять командуapt updateс правами root без ввода пароля.
Примеры использования
Изучите различные примеры использования команды `sudo`, чтобы выполнять системные задачи с правами администратора.
Обновление пакетов системы
sudo apt update
Команда для обновления списка пакетов системы требует прав администратора, поэтому используется `sudo`.
Копирование файла в определенную директорию
sudo cp my_config.conf /etc/
Копирует файл `my_config.conf` в директорию `/etc/`, в которой обычно нет прав на запись.
Выполнение команды от имени другого пользователя
sudo -u www-data ls /var/www/html
Выполняет команду `ls /var/www/html` с правами пользователя `www-data` (обычно процесса веб-сервера), чтобы протестировать права доступа к файлам этого пользователя.
Переключение на оболочку root
sudo -i
Введите пароль текущего пользователя, чтобы получить оболочку, полностью переключенную на окружение пользователя root. После завершения работы вы можете ввести `exit`, чтобы вернуться к исходному пользователю.
Проверка прав sudo текущего пользователя
sudo -l
Проверьте, какие команды текущий вошедший пользователь может выполнять через `sudo`, и требуется ли для этого пароль.