Рассмотрим приведенный выше комикс из превосходного веб-комикса XKCD. Ленивый парень в кресле хочет, чтобы его друг приготовил ему бутерброд, но у него нет полномочий заставить его это сделать. То есть до тех пор, пока он не вызовет могучую команду sudo. После чего бутерброд так или иначе будет приготовлен.
Хотя попытка использовать sudo на человеке в реальной жизни, вероятно, не будет такой эффективной, это волшебная команда, которая преодолевает все препятствия в мире Linux. Что такое судо? Почему оно вообще существует? Ответ кроется в том, как Linux обрабатывает разрешения.
Понимание разрешений пользователей Linux
Linux считается безопасной операционной системой благодаря тому, как она обрабатывает разрешения. Хотя операционные системы, такие как macOS (которая имела общего предка с Linux) и Windows, теперь в этом отношении больше похожи на Linux, операционная система с открытым исходным кодом по-прежнему в некоторой степени уникальна.
Понимание того, как Linux обрабатывает разрешения, значительно упрощает понимание команды sudo. Все современные операционные системы имеют уровень разрешений пользователя «администратор» или «root». Если у вас есть учетная запись администратора или root, вы можете изменить любые настройки, удалить любые данные и вообще делать с компьютером все, что захотите.
Это включает в себя действия, которые вам, вероятно, не следует делать и которые могут привести к потере данных или необходимости полного удаления и переустановки.
В Linux не используются права root-пользователя по умолчанию. Вместо этого ваша учетная запись не сможет получить доступ к действительно конфиденциальным частям системы без повышения уровня разрешений. Это означает, что система попросит вас ввести пароль администратора, когда вы захотите сделать что-то необычное с помощью графического интерфейса.
Однако, если вы хотите использовать командную строку Терминал для выполнения задач, sudo — самый безопасный и эффективный способ сделать это.
Sudo и терминал
Существует два способа предоставить себе повышенные разрешения в Linux. Один из них — постоянный вход в систему как пользователь root. Проблема в том, что любой, кто имеет доступ к компьютеру, может нанести ущерб, и даже вы можете сделать это случайно. Sudo повышает ваши разрешения только на короткое время для выполнения конкретных команд, следующих за ним.
Синтаксис Sudo
Синтаксис Sudo (формат команды) прост. Просто введите «sudo», а затем команду, которую хотите выполнить.
Например, команда «sudo apt-get update» обновит все репозитории приложений, перечисленные в соответствующем файле. Если вы попытаетесь запустить его без sudo, вы получите сообщение об ошибке, сообщающее, что у вас нет разрешения. Кстати, это, как правило, первая команда sudo, которую вы захотите запустить после новой установки вашего любимого дистрибутива Linux..
Су в судо
Сука в sudo — сокращение от «суперпользователь» и представляет собой отдельную команду. Команда «su» позволяет вам изменить привилегии пользователя, которые вам предоставляет sudo.
Хотя sudo временно предоставляет вам права суперпользователя, su меняет вас на другого пользователя с подходящими привилегиями. Это может показаться неважным различием, но есть веские причины сменить учетную запись, до которой sudo повышает уровень пользователя.
Прежде всего, смена учетной записи означает, что обычные пользователи не знают пароль root. Во-вторых, ведется журнал всех команд sudo, что означает, что системный администратор (root) может узнать, кто ввел команды su.
Синтаксис su по сути такой же, как и sudo:
Su USERNAME -c КОМАНДА
Замените USERNAME на желаемого пользователя для запуска команды и COMMAND на команду Linux, которую вы хотите выполнить.
Если вы хотите выполнить несколько команд от имени другого пользователя, просто используйте:
Su USER
Замените USER на желаемый идентификатор учетной записи пользователя.
Если вы используете su отдельно, Linux переключится на другую учетную запись пользователя, пока вы не используете команду «exit». Важно помнить, что этот или следующий пользователь, получивший доступ к терминалу в этом сеансе, по-прежнему будет иметь повышенные разрешения. Вот почему обычно лучше использовать sudo, а не su.
Лимит времени для Sudo
При первом использовании команды sudo вам придется ввести пароль. Затем этот пароль будет оставаться действительным в течение 15 минут. Вы можете изменить это значение по умолчанию, выполнив команду sudo visudo и изменив «timestamp_timeout=» на более длинное или короткое значение. Однако мы не рекомендуем вам делать это, если у вас нет веской причины продлить или сократить срок действия пароля sudo.
Переключатели параметров Sudo
Хотя синтаксис sudo прост, стоит знать о некоторых переключателях. Эти команды открывают дополнительную информацию или помогают вам управлять сеансом sudo:
В sudo встроено гораздо больше опций, и вы можете увидеть их все, используя первый ключ -h, указанный выше.
На снимке экрана выше показаны результаты использования функции справки.
Полезные команды Sudo
Итак, какие команды, предоставляемые sudo, должен знать каждый пользователь Linux? Мы уже рассмотрели обновление sudo apt-get, но обратите внимание и на это:
Вероятно, это первые команды sudo, которые вам придется использовать, но, как вы узнали выше, любая команда может следовать за sudo, но вам следует использовать только те, которые требуют более высоких привилегий.
.