Домашняя » как » В чем разница между Sudo и Su в Linux?

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

    Если вы пользователь 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 - вы можете использовать ее для переключения на любую учетную запись пользователя. Если вы выполните су боб команда, вам будет предложено ввести пароль Боба, и оболочка переключится на учетную запись пользователя Боба.

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

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

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

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

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

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

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

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

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

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

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

    su -c 'команда'

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

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

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

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

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

    sudo passwd root

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

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

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

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

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

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

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

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

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

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

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

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

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


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