Содержание
su и sudo - отличия
Ну и первое, что может прийти нам на ум это инструменты su и sudo. Давайте разберёмся в чем же их отличия.sudo - выполнить команду от имени другого пользователя
sudo - это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея - дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.
Команда sudo предоставляет возможность пользователям выполнять команды от имени root. В большинстве случаев, грамотная настройка sudo делает работу от имени суперпользователя ненужной.
Команда su используется для подмены идентификатора пользователя. Идентификатор нового пользователя может быть указан посредством аргумента имя_пользователя. По умолчанию это суперпользователь (UID=0).
Таким образом, если вы знаете логин и пароль учетной записи – вы можете переключаться на неё во время работы. После завершения работы из неё можно выйти при помощи команды «exit».
Вот и первое их отличие: «sudo» - позволяет выполнить одну команду с привилегиями root, а команда «su» - сменить пользователя на root, если другой пользователь не указан явно в аргументе команды.
Второе отличие: при использовании команды с «sudo» - запрашивается пароль текущего пользователя, из-под которого вы запускаете данную команду. В случае с командой «su» - нужно ввести пароль пользователя, за которого вы хотите войти. В случае использования данной команды без аргументов – понадобится пароль от root.
По умолчанию, при использовании команды «su», вызывается непосредственно оболочка пользователя, однако, при указании флага аргумента «-», su вызывает оболочку регистрации в системе. Это значит, что текущий рабочий каталог будет изменён в домашний каталог нового пользователя и первый аргумент оболочки будет иметь префикс -.
Может показаться, что команда «su» и команда «su - » работают одинаково, но на самом деле это не так!
Выполнив из-под пользователя ivanov команду «su», мы останемся в том же рабочем окружении, что и были (то есть получив права супер-администратора, всё равно нашим домашним каталогом останется /home/ivanov, а также все переменные рабочего окружения оболочки).
Следовательно, если какая-то программа или команда захочет что-то записать в домашнюю папку, то она сделает это в каталоге /home/ivanov, но владельцем файла установит уже пользователя root, что потом при работе с правами пользователя ivanov не позволит этот файл редактировать, удалить и т. д. Совсем плохо, если этим файлом окажется какой-то из файлов конфигурации.
Поэтому, запомните:
Используя команду su, обязательно выполняйте её с аргументом «–»:
su -
Данный вариант команды запускает оболочку, как если бы root действительно зашел в систему.
Попробуйте сравнить значения переменных при использовании команд su и su -.
Больше отличий
Больше отличий и нюансов в использовании команд su и sudo можно увидеть в таблице ниже:
Основные правила
В завершение запомните несколько правил:1. Никогда не выполняйте из-под Суперпользователя пользовательскую работу – на это у вас должна быть личная учетная запись.
2. При необходимости выполнить действия, требующие прав администратора – воспользуйтесь инструментами sudo или su. В случае использования утилиты su – не забывайте завершить сеанс после выполнения задач.
3. Назначайте службам и пользователям минимально необходимые права.
4. На этапе установки системы – по возможности блокируйте использование учетной записи root.
А если вы хотите больше узнать про администрирование в GNU/Linux – приходите к нам на курсы!
Будьте в курсе всех событий
Подпишись на рассылку актуальных новостей
и читай нас в соц. сетях