Sudo и su - два разных способа получить привилегии root. Каждый из них работает по-другому, а разные дистрибутивы Linux по умолчанию используют разные конфигурации.
Корневой пользователь
Как su, так и sudo используются для запуска команд с правами root. Пользователь root в основном эквивалентен пользователю администратора в Windows - пользователь root имеет максимальные разрешения и может делать что-либо в системе. Обычные пользователи Linux работают с ограниченными разрешениями - например, они не могут устанавливать программное обеспечение или записывать в системные каталоги.
Чтобы сделать что-то, требующее этих разрешений, вам придется приобретать их с помощью su или sudo.
Су против Судо
Команда su переключается на суперпользователя - или пользователя root - при его выполнении без дополнительных параметров. Вам нужно будет ввести пароль учетной записи root. Это еще не все команды su, но вы можете использовать его для переключения на любую учетную запись пользователя. Если вы выполните su bob, вам будет предложено ввести пароль Боба, а оболочка переключится на учетную запись пользователя Боба.
Когда вы закончите выполнение команд в корневой оболочке, вы должны ввести выход чтобы оставить корневую оболочку и вернуться в режим ограниченных привилегий.
Sudo запускает одну команду с привилегиями root. Когда вы выполняете команда sudo, система предложит вам ввести пароль своего текущего пользователя перед запуском команда как пользователь root. По умолчанию Ubuntu запоминает пароль в течение пятнадцати минут и не будет запрашивать пароль еще до 15 минут.
Ubuntu vs. Другие дистрибутивы Linux
Команда su является традиционным способом получения корневых разрешений для Linux. Команда sudo существует в течение длительного времени, но Ubuntu был первым популярным дистрибутивом Linux, который отправляется sudo-only по умолчанию. Когда вы устанавливаете Ubuntu, создается стандартная учетная запись root, но пароль ей не назначается. Вы не можете войти в систему под учетной записью root, пока не назначите пароль учетной записи root.
Другим преимуществом является то, что он не позволяет пользователям регистрироваться в качестве пользователя root - или использовать su для получения корневой оболочки - и держать корневую оболочку открытой для нормальной работы. Выполнение меньшего количества команд с правами администратора повышает безопасность и предотвращает случайные общесистемные изменения.
Распределения на основе Ubuntu, включая Linux Mint, также используют sudo вместо su по умолчанию.
Несколько трюков
Linux является гибким, поэтому не нужно много работать, чтобы su работать аналогично sudo - или наоборот.
Чтобы запустить одну команду в качестве пользователя root с помощью su, выполните следующую команду:
su -c ‘command’
Это похоже на выполнение команды с sudo, но вам потребуется пароль учетной записи root вместо пароля вашей текущей учетной записи пользователя.
Чтобы получить полную интерактивную корневую оболочку с помощью sudo, запустите судо -i.
Включение корневого пользователя в Ubuntu
Чтобы включить учетную запись пользователя root в Ubuntu, используйте следующую команду, чтобы установить для нее пароль. Имейте в виду, что Ubuntu рекомендует против этого.
sudo passwd root
Sudo предложит вам ввести пароль вашего текущего пользователя, прежде чем вы сможете установить новый пароль. Используйте новый пароль для входа в систему как пользователь root из приглашения на вход терминала или с помощью команды su. Вы никогда не должны запускать полную графическую среду в качестве пользователя root - это очень плохая практика безопасности, и многие программы откажутся работать.
Добавление пользователей в файл Sudoers
Только учетные записи типа администратора в Ubuntu могут запускать команды с sudo. Вы можете изменить тип учетной записи пользователя из окна конфигурации учетных записей пользователей.
Если вы используете другой дистрибутив Linux, вы можете предоставить пользователю право использовать sudo, запустив visudo команда с привилегиями root (поэтому запускается су сначала или использовать su -c).
Добавьте в файл следующую строку, заменив пользователь с именем учетной записи пользователя:
user ALL=(ALL:ALL) ALL
Нажмите Ctrl-X а потом Y для сохранения файла. Вы также можете добавить пользователя в группу, указанную в файле. Пользователи в группах, указанных в файле, автоматически получат привилегии sudo.
Графические версии Su
Linux также поддерживает графические версии su, которые запрашивают ваш пароль в графической среде. Например, вы можете запустить следующую команду, чтобы получить приглашение графического пароля и запустить браузер файлов Nautilus с правами root. Нажмите Alt-F2 для запуска команды из диалогового окна графического запуска без запуска терминала.
gksu nautilus
В зависимости от используемого дистрибутива Linux Gksu использует либо su, либо sudo-backend.
Теперь вы должны быть готовы встретить как su, так и sudo! Вы столкнетесь с обоими, если используете разные дистрибутивы Linux.