MTE объясняет: различия между су, судо су, судо-с и судо-я

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

Именно поэтому мы будем разбирать каждую из множества различных команд, используемых для получения root-доступа в терминале. Мы объясним, как именно они получают root-права, когда их использовать и все, что между ними.

Вс

корень су

Команда su заменяет текущего пользователя, используемого системой в оболочке. Вы можете переключиться на любого пользователя, взяв su и добавив к нему имя пользователя. Это скажет системе переключить (и, по сути, выйти из системы) текущего пользователя на указанного. В качестве альтернативы команда su может получить root-доступ, введя su без указания чего-либо после команды.

"Su" лучше всего использовать, когда пользователю нужен прямой доступ к учетной записи root в системе. Он не проходит через sudo или что-то в этом роде. Вместо этого необходимо знать пароль пользователя root и использовать его для входа в систему. Более того, другие способы получения root не имеют преимущества доступа к корневому домашнему каталогу и корневой среде.

Судо су

корень-судо-су

По сути, эта команда аналогична простому запуску su в оболочке. Вместо того, чтобы указывать системе "переключить пользователей" напрямую, вы даете ей команду выполнить команду "su" от имени пользователя root. При запуске sudo su будут запущены ".profile", ".bashrc" и "/ etc / profile", как и при запуске su (или su корень). Это связано с тем, что если какая-либо команда запускается с sudo перед ней, это команда, которой предоставляются привилегии root.

Хотя нет особой разницы от "su", sudo su по-прежнему очень полезна по одной важной причине: когда пользователь запускает "su" для получения корневого доступа в системе, он должен знать пароль root. Для получения root с помощью sudo su запрашивается пароль текущего пользователя. Это позволяет получить root без пароля root, что увеличивает безопасность.

Судо -и

корень-судо-я

Использование sudo -i практически то же самое, что и команда sudo su. Пользователи могут получить root с помощью "sudo", а не переключаясь на пользователя root. Как и sudo su, флаг -i позволяет пользователю получить корневую среду без необходимости знать пароль учетной записи root. sudo -i также очень похож на использование sudo su в том, что он будет читать все файлы среды (.profile и т. д.) и устанавливать среду внутри оболочки. с этим.

Отличие от sudo su заключается в том, что sudo -i - это более чистый способ получения root и корневой среды без прямого взаимодействия с пользователем root. Как? С помощью sudo su вы используете несколько корневых команд setuid. Этот факт значительно усложняет определение того, какие переменные среды будут сохранены, а какие будут изменены (при переходе в корневую среду). Это неверно с sudo -i, и именно по этой причине большинство людей считают его предпочтительным методом получения root без прямого входа в систему.

Судо

корень-sudo-s

Ключ -s для команды sudo считывает переменную $ SHELL текущего пользователя, выполняющего команды. Эта команда работает так, как если бы пользователь запускал sudo / bin / bash. Sudo -s - это оболочка в стиле "без входа". Это означает, что в отличие от таких команд, как sudo -i или sudo su, система не будет читать никакие файлы среды. Это означает, что когда пользователь указывает оболочке запустить sudo -s, он получает root, но не меняет пользователя или пользовательскую среду. Ваш дом не будет корневым домом и т. Д.

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

Вывод: какую команду использовать?

У каждой команды есть свой вариант использования. Здесь важно понимать, что делает каждая команда и когда их использовать. В его нынешнем виде sudo -i - наиболее практичный и чистый способ получить корневую среду. С другой стороны, те, кто использует sudo -s, обнаружат, что они могут получить корневую оболочку без возможности касаться корневой среды, что дает дополнительные преимущества безопасности.

В этом списке действительно нет ни одной команды, которая была бы на 100% лучшей. По мере того, как пользователи привыкают к командной строке, им нужно будет принять во внимание все способы получения root (а их много), взвесить все за и против и действовать соответствующим образом. Надеюсь, что с помощью этой статьи эти решения будет легче принимать.

Какой способ получить root-доступ в Linux вы предпочитаете? Расскажите нам ниже!

Изображение предоставлено: blog.david-jensen.com

Один комментарий

  1. "Какой способ получить root-доступ в Linux вы предпочитаете?"

    Войдя в систему как "root"… что, как и 99% людей, я всегда вхожу в свою систему (системы) Linux.

Комментарии закрыты.