Что такое Sudo в Linux и как его использовать

Рассмотрим приведенный выше комикс из превосходного веб-комикса XKCD . Ленивец в кресле хочет, чтобы его друг сделал ему бутерброд, но у него нет полномочий, чтобы заставить его это сделать. То есть, пока он не вызовет могучую команду sudo. После чего так или иначе будет сделан бутерброд. 

Хотя попытка sudo на человеке в реальной жизни, вероятно, не будет столь эффективной, это волшебная команда, которая преодолевает все препятствия в мире Linux . Что такое судо? Почему он вообще существует? Ответ заключается в том, как Linux обрабатывает разрешения.

Понимание разрешений пользователей Linux(Linux User Permissions)

Linux считается безопасной операционной системой из-за того, как она обрабатывает разрешения. В то время как операционные системы, такие как macOS (которая имеет общего предка с Linux ) и Windows , теперь больше похожи на Linux в этом отношении, операционная система с открытым исходным кодом по-прежнему в чем-то уникальна.(Open Source)

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

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

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

Однако, если вы хотите использовать командную строку терминала(Terminal) для выполнения задач, sudo — самый безопасный и эффективный способ сделать это.

Судо и Терминал

Есть два способа дать себе повышенные права доступа в Linux . Один из них — войти в систему как пользователь root на постоянной основе. Проблема в том, что любой другой, кто может получить доступ к компьютеру, может нанести ущерб, и даже вы можете сделать это случайно. Sudo повышает ваши разрешения только на короткое время для выполнения определенных команд, которые следуют за ним.

Синтаксис судо

Синтаксис Sudo (формат команды) прост. Просто(Simply) введите «sudo», а затем команду, которую хотите выполнить.

Например, «sudo apt-get update» обновит все репозитории приложений, перечисленные в соответствующем файле. Если вы попытаетесь запустить его без sudo, вы получите сообщение об ошибке, в котором говорится, что у вас нет разрешения. Кстати, это, как правило, первая команда sudo, которую вы захотите запустить после новой установки вашего любимого дистрибутива Linux

«Су» в судо

«su» в sudo — это сокращение от «superuser», и это отдельная команда. Команда «su» позволяет вам изменить привилегии пользователя, до которых вас повышает sudo. 

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

Во- первых(First) , изменение учетной записи означает, что обычные пользователи не знают пароль root. Во-вторых, есть журнал всех команд sudo, что означает, что системный администратор (root) может посмотреть, кто выдал команды su.

Синтаксис su практически такой же, как у sudo:

Su ИМЯ ПОЛЬЗОВАТЕЛЯ -c КОМАНДА(Su USERNAME -c COMMAND)

Замените USERNAME(Replace USERNAME) на желаемого пользователя для запуска команды и COMMAND на команду Linux , которую вы хотите выполнить.

Если вы хотите запустить несколько команд от имени другого пользователя, просто используйте:

Su ПОЛЬЗОВАТЕЛЬ(Su USER)

Замените USER(Replace USER) желаемым идентификатором учетной записи пользователя.

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

Ограничение времени судо

При первом использовании команды sudo вам нужно будет ввести пароль. Затем этот пароль будет действовать в течение 15 минут. Вы можете изменить это значение по умолчанию, выполнив команду sudo visudo и изменив «timestamp_timeout =» на более длинное или более короткое значение. Однако мы не рекомендуем вам делать это, если у вас нет веских причин для увеличения или уменьшения срока действия пароля sudo.

Переключатели параметров Sudo

Хотя синтаксис sudo прост, о некоторых переключателях стоит знать. Эти команды открывают дополнительную информацию или помогают управлять сеансом sudo:

  • -h показывает вам синтаксис и информацию о команде для sudo.
  • -V отображает текущую версию sudo на вашем компьютере.
  • -v обновляет лимит времени sudo, перезапуская часы.
  • -l перечисляет привилегии пользователя.
  • -k немедленно завершает текущий сеанс sudo, удаляя повышенные привилегии.

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

На приведенном выше снимке экрана показано, что получается, когда вы используете опцию справки.

Полезные команды Sudo

Итак, какие команды, наделенные полномочиями sudo, должен знать каждый пользователь Linux ? Мы уже рассмотрели sudo apt-get update, но обратите внимание и на это:

  • Sudo apt-get upgrade обновит все установленные пакеты.
  • Sudo apt-get install <package-name> устанавливает программное обеспечение по вашему выбору; просто измените имя пакета на тот, который вы хотите установить.
  • Если вы не знаете имя пакета, используйте dpkg –list .
  • Если вы хотите удалить установленный пакет из терминала, используйте sudo apt-get remove <package-name (снова заменив конкретное имя рассматриваемого пакета).

Вероятно, это первые команды sudo, которые вам придется использовать, но, как вы узнали выше, любая команда может следовать за sudo, но вы должны использовать только те, для которых требуются более высокие привилегии.



About the author

Я веб-разработчик с опытом работы в Firefox и Google Docs. У меня есть степень в области делового администрирования Университета Флориды. Мои навыки включают в себя: разработку веб-сайтов, систему управления контентом (CMS), анализ данных и дизайн пользовательского интерфейса. Я опытный консультант, который может помочь вашей команде создавать эффективные веб-сайты и приложения.



Related posts