LinuxКак сделать

В чем разница между Sudo и Su в Linux?

image

Если вы пользователь Linux, вы, вероятно, видели ссылки на sudo и su. Статьи здесь, в How-To Geek и других местах, инструктируют пользователей Ubuntu использовать sudo и пользователей других дистрибутивов Linux для использования su, но какая разница?

Sudo и su — два разных способа получения привилегий root. Каждый функционирует по-своему, и разные дистрибутивы Linux используют разные конфигурации по умолчанию.

Корневой пользователь

И su, и sudo используются для запуска команд с правами root. Пользователь root в основном эквивалентен пользователю-администратору в Windows — пользователь root имеет максимальные права и может делать с системой все что угодно. Обычные пользователи в Linux работают с ограниченными разрешениями — например, они не могут устанавливать программное обеспечение или записывать в системные каталоги.

Чтобы сделать что-то, требующее этих разрешений, вам нужно приобрести их с помощью su или sudo.

Су против Судо

Команда su переключается на суперпользователя — или пользователя root — при его запуске без дополнительных опций. Вам нужно будет ввести пароль учетной записи root. Это не все, что делает команда su — вы можете использовать ее для переключения на любую учетную запись пользователя. Если вы выполните команду su bob , вам будет предложено ввести пароль Боба, и оболочка переключится на учетную запись пользователя Боба.

Как только вы закончите запускать команды в корневой оболочке, вы должны набрать команду exit, чтобы выйти из корневой оболочки и вернуться в режим с ограниченными правами.

Sudo запускает одну команду с привилегиями root. Когда вы выполняете команду sudo , система запрашивает пароль вашей текущей учетной записи пользователя, прежде чем запускать команду от имени пользователя root. По умолчанию Ubuntu запоминает пароль в течение пятнадцати минут и не будет запрашивать пароль снова, пока не истечет пятнадцать минут.

image

Это ключевое различие между su и sudo. Su переключает вас на учетную запись пользователя root и требует пароль учетной записи root. Sudo запускает одну команду с привилегиями root — он не переключается на пользователя root и не требует отдельного пароля пользователя root.

Ubuntu против других дистрибутивов Linux

Команда su — это традиционный способ получения прав root в Linux. Команда sudo существует уже давно, но Ubuntu был первым популярным дистрибутивом Linux, который по умолчанию стал работать только на sudo. Когда вы устанавливаете Ubuntu, создается стандартная учетная запись root, но ей не назначается пароль. Вы не можете войти в систему как root, пока не назначите пароль для учетной записи root.

image

Есть несколько преимуществ использования sudo вместо su по умолчанию. Пользователи Ubuntu должны предоставить и запомнить только один пароль, в то время как Fedora и другие дистрибутивы требуют, чтобы вы устанавливали отдельные пароли пользователя root и учетной записи во время установки.

Другое преимущество заключается в том, что он не рекомендует пользователям входить в систему как пользователь root или использовать su для получения корневой оболочки — и держать корневую оболочку открытой, чтобы выполнять свою обычную работу. Выполнение меньшего количества команд от имени root повышает безопасность и предотвращает случайные общесистемные изменения.

В дистрибутивах на основе Ubuntu, включая Linux Mint, также по умолчанию используется sudo вместо su.

Несколько хитростей

Linux гибок, поэтому не требуется много работы, чтобы заставить su работать так же, как sudo — или наоборот.

Чтобы запустить одну команду от имени пользователя root с помощью su, выполните следующую команду:

su -c ‘команда’

Это похоже на выполнение команды с sudo, но вам понадобится пароль учетной записи root вместо пароля вашей текущей учетной записи.

Чтобы получить полную интерактивную корневую оболочку с sudo, запустите sudo –i.

image

Вы должны будете предоставить пароль вашей текущей учетной записи пользователя вместо пароля учетной записи root.

Включение root-пользователя в Ubuntu

Чтобы включить учетную запись пользователя root в Ubuntu, используйте следующую команду, чтобы установить для нее пароль. Имейте в виду, что Ubuntu рекомендует против этого.

sudo passwd root

Sudo предложит вам ввести пароль для текущей учетной записи, прежде чем вы сможете установить новый пароль. Используйте новый пароль, чтобы войти в систему как пользователь root из командной строки терминала или с помощью команды su. Вы никогда не должны запускать полноценную графическую среду от имени пользователя root — это очень плохая практика безопасности, и многие программы откажутся работать.

image

Добавление пользователей в файл Sudoers

Только учетные записи типа администратора в Ubuntu могут запускать команды с помощью sudo. Вы можете изменить тип учетной записи пользователя в окне конфигурации учетных записей пользователей.

image

Ubuntu автоматически назначает учетную запись пользователя, созданную во время установки, учетной записью администратора.

image

Если вы используете другой дистрибутив Linux, вы можете предоставить пользователю разрешение на использование sudo, запустив команду visudo с привилегиями root (поэтому сначала запустите su или используйте su -c ).

Добавьте следующую строку в файл, заменив пользователя именем учетной записи пользователя:

пользователь ALL = (ALL: ALL) ALL

Нажмите Ctrl-X, а затем Y, чтобы сохранить файл. Вы также можете добавить пользователя в группу, указанную в файле. Пользователи в группах, указанных в файле, автоматически получат привилегии sudo.

image

Графические версии Су

Linux также поддерживает графические версии su, которые запрашивают ваш пароль в графической среде. Например, вы можете запустить следующую команду, чтобы получить графическую подсказку пароля и запустить браузер файлов Nautilus с правами root. Нажмите Alt-F2, чтобы запустить команду из графического диалога запуска без запуска терминала.

ГКСУ Наутилус

image

У команды gksu также есть несколько других хитростей — она ​​сохраняет текущие настройки рабочего стола, поэтому графические программы не будут выглядеть неуместно, когда вы запускаете их от имени другого пользователя. Такие программы, как gksu, являются предпочтительным способом запуска графических приложений с привилегиями root.

Gksu использует бэкэнд на основе su или sudo, в зависимости от используемого дистрибутива Linux.


Теперь вы должны быть готовы встретить su и sudo! Вы столкнетесь с обоими, если будете использовать разные дистрибутивы Linux.

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone