2.2.9 Привилегии и root
Скачать документВы можете подробнее ознакомиться с привилегиями пользователя root и их использованием в работе, просмотрев наши обучающие видео:
на RuTube — Привилегии и root;
в Яндекс.Дзен — Привилегии и root;
в VK Видео — Привилегии и root.
На наших каналах вы также сможете найти много другой полезной информации.
Правила хорошего тона при работе
Никогда не выполняйте под правами администратора пользовательскую работу! Бороздить бескрайние просторы интернета, читать и отправлять почту, набирать текстовые документы и рисовать изображения — всё это можно и нужно делать под правами обычного пользователя!
При необходимости выполнить действия, требующие администраторских прав, не регистрируйтесь в системе как root, а используйте утилиты sudo или su! Если Вам потребовалось установить какой-либо пакет или внести изменения в системные настройки, то воспользуйтесь данными утилитами как в терминальном окне, так и в полном консольном режиме. Применяя утилиту su (повышение привилегий) в интерактивном режиме (то есть фактически создавая отдельный терминальный сеанс), не забывайте после выполнения требуемых задач завершать работу данного сеанса, а не оставлять его «висящим» в системе на всякий случай.
Запуская службы, старайтесь по возможности давать им пониженные права! Это верно как для уже готовых пакетов, когда имя пользователя, с чьими правами будет работать служба, задаётся в файлах конфигурации, так и для программного обеспечения, которое Вы пишите самостоятельно. Каким бы важным не был сервис (веб-сервер, служба DNS или почтовый сервис), ему нет необходимости работать с эффективными правами пользователя root — достаточно и прав порою даже меньше, чем у «обычного» пользователя.
Можно не входить в систему как root и даже не использовать утилиты sudo или su — достаточно на часто запускаемые файлы установить бит SUID, и тогда пользователю, запускающему эти программы многое станет доступно без поднятия привилегий. Ни в коем случае так нельзя делать! Использование битов SUID/SGID должно быть под полным запретом в Вашей практике!
Утилиты su и sudo
sudo - это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея - дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.
Команда sudo предоставляет возможность пользователям выполнять команды от имени root или других пользователей. Правила, используемые sudo для принятия решения о предоставлении доступа, находятся в файле /etc/sudoers. Кроме того, пример правил, предоставляющих пользователям, являющимися членами группы rpm, возможность устанавливать, обновлять и удалять пакеты в системе, приведен в файле /usr/share/doc/sudo-/sample.sudoers.
В большинстве случаев, грамотная настройка sudo делает работу от имени суперпользователя ненужной.
Команда su позволяет изменить привилегии на любого имеющегося в системе пользователя, в связи с чем синтаксис команды следующий:
su <имя_пользователя> <опции>
Если не указать имя пользователя, то по умолчанию считается, что это — root, то есть выполнение команды без аргументов «su» означает «su root».
Из опций наиболее значимой является:
«-c» — позволяет выполнить команду, указанную после данного ключа в кавычках, и завершить работу утилиты.
Например:
su -с "dnf update"
«–» или «-l» — при получении привилегий другого пользователя запускается отдельная оболочка со значениями переменных окружения того пользователя, чьи привилегии мы получаем.
То есть, выполнив из-под пользователя ivanov команду «su», мы останемся в том же рабочем окружении, что и были (то есть получив права супер-администратора, всё равно нашим домашним каталогом останется /home/ivanov, а также все переменные рабочего окружения оболочки).
Следовательно, если какая-то программа или команда захочет что-то записать в домашнюю папку, то она сделает это в каталоге /home/ivanov, но владельцем файла установит уже пользователя root, что потом при работе с правами пользователя ivanov не позволит этот файл редактировать, удалить и т. д. Совсем плохо, если этим файлом окажется какой-то из файлов конфигурации.
Поэтому, запомните как ещё одно правило:
Используя команду su, обязательно выполняйте её с аргументом «–»:
su -
Пример, демонстрирующий различие в переменных окружения между su и su - :
При первом использовании команды sudo на экран будет выведено следующее предупреждение:
И после ввода пароля пользователя может быть выдано следующее сообщение:
Это означает, что при установке РЕД ОС на шаге создания пользователя Вы не установили флажок «Сделать этого пользователя администратором». Но это поправимо! Достаточно внести нашего пользователя в группу wheel, для чего нужно из-под администратора root выполнить следующую команду:
usermod -aG wheel <имя_пользователя>
Если пользователь, которому менялось членство в группах, находился в системе, то необходимо завершить сеанс работы и войти в систему заново. После этого использование утилиты sudo станет возможным. Соответственно, если необходимо убрать у пользователя право пользоваться командой sudo, то достаточно удалить его из группы wheel.
Ниже приведена таблица различий использования команд su и sudo.
Дата последнего изменения: 04.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.