ДАННАЯ СТАТЬЯ - ЛИШЬ ОЗНАКОМИТЕЛЬНЫЙ МАТЕРИАЛ, СОЗДАННЫЙ С ОБРАЗОВАТЕЛЬНЫМИ И ПРЕДУПРЕДИТЕЛЬНЫМИ ЦЕЛЯМИ.
НИ АВТОР САЙТА, НИ СОЗДАТЕЛЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НЕ ПОБУЖДАЮТ ПОВТОРЯТЬ УВИДЕННОЕ.
ВСЕ ДЕЙСТВУЮЩИЕ ЛИЦА И ИСТОРИИ ЯВЛЯЮТСЯ ВЫМЫШЛЕННЫМИ, А СХОДСТВО С РЕАЛЬНЫМИ ЛИЦАМИ И СОБЫТИЯМИ МОЖЕТ ОКАЗАТЬСЯ ЛИШЬ СЛУЧАЙНЫМ И НЕНАМЕРЕННЫМ.
В этом руководстве по Linux я расскажу, как правильно использовать команды суперпользователя sudo и su. Как пользователь Linux, вы когда-нибудь задумывались, почему мы в основном используем sudo и почему в наши дни sudo устанавливается из коробки практически в каждом дистрибутиве Linux?
Я впервые познакомился с Linux для настольных компьютеров в 2009 году. Тогда у большинства дистрибутивов Linux не было установленно по умолчанию sudo. У большинства OS семейства UNIX был обычный пользователь. Когда были нужны привилегии суперпользователя, использовали команду su. При переключении пользователя переходили к пользователю root, выполняли необходимые действия от имени суперпользователя и возвращались к своей обычной учетной записи.
Самый первый дистрибутив Linux, насколько я знаю, который использовал sudo из коробки, был Ubuntu. На веб-форумах постоянно были споры о том, что Ubuntu использует sudo, а другие дистрибутивы используют su. Сравнивали, какая программа лучше и безопасней для получения привилегий. Многие не хотели использовать sudo, но он быстро завоевал популярность. Хотя в настоящее время почти все признают тот факт, что sudo - это стандартная утилита в Linux.
В те дни, когда sudo не было распространено в Linux, хакеры знали, что у каждого сервера Linux есть пользователь root, и если они получали доступ к этому пользователю, то у них были права на чтение, запись, выполнение любых файлов и команд в операционной системе от имени суперпользователя. Пользователи Linux и особенно администраторы Linux начали понимать, что это большая проблема безопасности. sudo стал таким популярным потому, что он отчасти решил эту проблему, и с sudo очень легко работать.
В некоторых дистрибутивах при установке обычно запрашивается пароль от пользователя root, а также пароль учетной записи создаваемого пользователя. Ubuntu не запрашивает пароль root во время установки, только пароль создаваемой учетной записи пользователя, который будет иметь доступ с правами суперпользователя через sudo, оставляя учетную запись root отключенной. Если вы хотите, чтобы команда su работала, установите пароль для учетной записи root.
sudo passwd root
! | Обратите внимание:
Su и sudo - это два отдельных инструмента с очень разным взаимодействием, поэтому не следует применять команду на подобии sudo su.
Команда SU
su - требует пароль root и позволяет пользователям проходить аутентификацию как root, как если бы мы пытались войти в систему, используя имя пользователя root.
При использовании Linux под обычным пользователем, когда нужны привилегии суперпользователя, есть только два варианта:
- либо выйти из сессии обычного пользователя и снова войти под учетной записью root, что не очень безопасно;
- либо в терминале командой su под обычным пользователем переключить на учетную запись root и выполнять в терминале действия от имени root, что также опасно;
wheel - это специальная группа пользователей, которая управляет доступом к команде su
В большинстве дистрибутивов Linux по стравнению с Ubunt используется группа wheel, а в Ubuntu группа по умолчанию называется sudo, потому что в Ubuntu вы добавляете своего обычного пользователя в группу суперпользователей, и это решило много проблем с безопасносностью.
Команда SUDO
sudo - позволяет пользователю подтвердить свою личность (например повторно введя свой собственный пароль) и получить привилегии root для конкретной задачи (или привилегии другого пользователя).
Если sudo не установлен в системе Linux, необходимо только установить sudo, а затем любого обычного пользователя, которому вы хотите предоставить привилегии суперпользователя, добавить в группу wheel или sudo.
Команда sudo намного безопаснее, чем su, потому что при выполнении sudo вы знаете, что предоставили временно этому пользователю привилегии суперпользователя. И под "временно" я подразумеваю короткий период времени, когда у вас есть права суперпользователя, но по завершении сессии придется вызывать sudo и снова вводить пароль, чтобы получить эти привилегии. Это намного безопаснее, чем su, потому что при входе под пользователем root у вас нет определенного периода времени использования сессии под пользователем root. Все, кто будет иметь доступ к этой учетной записи или к этому компьютеру, будут иметь права суперпользователя, а это довольно не безопасно.
Выводы
В этой статье мы рассмотрели как работают sudo и su в linux и разобрали что эти команды привязаны к разным улитам. Как видите, несмотря на то, что они очень просты, они скрывают полезные фунции, которые можно использовать в своей системе.