1.3.8 Привилегии и root
Скачать документВы можете подробнее ознакомиться с привилегиями пользователя root и их использованием в работе, просмотрев наши обучающие видео:
на RuTube — Привилегии и root;
в Яндекс.Дзен — Привилегии и root.
На наших каналах вы также сможете найти много другой полезной информации.
Правила хорошего тона при работе
Никогда не выполняйте под правами администратора пользовательскую работу! Бороздить бескрайние просторы интернета, читать и отправлять почту, набирать текстовые документы и рисовать изображения — всё это можно и нужно делать под правами обычного пользователя!
При необходимости выполнить действия, требующие администраторских прав, не регистрируйтесь в системе как root, а используйте утилиты sudo или su! Если Вам потребовалось установить какой-либо пакет или внести изменения в системные настройки, то воспользуйтесь данными утилитами как в терминальном окне MATE или Cinnamon, так и в полном консольном режиме. Применяя утилиту su (повышение привилегий) в интерактивном режиме (то есть фактически создавая отдельный терминальный сеанс), не забывайте после выполнения требуемых задач завершать работу данного сеанса, а не оставлять его «висящим» в системе на всякий случай.
Запуская сервисы, старайтесь по возможности давать им пониженные права! Это верно как для уже готовых пакетов, когда имя пользователя, с чьими правами будет работать демон, задаётся в файлах конфигурации, так и для программного обеспечения, которое Вы пишете самостоятельно. Каким бы важным не был сервис (веб-сервер, служба DNS или почтовый сервис), ему нет необходимости работать с эффективными правами пользователя root — достаточно и прав порою даже меньше, чем у «обычного» пользователя.
Можно не входить в систему как root и даже не использовать утилиты sudo или su — достаточно на часто запускаемые файлы установить бит SUID, и тогда пользователю, запускающему эти программы многое станет доступно без поднятия привилегий. Ни в коем случае так нельзя делать! Использование битов SUID/SGID должно быть под полным запретом в Вашей практике!
Утилиты su и 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.
Дата последнего изменения: 26.08.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.