Рассказываем, что из себя представляет команда sudo, зачем она нужна и как ей пользоваться.
Что такое sudo?
Пользователи Linux в курсе, что любая мало-мальски ответственная процедура в системе должна выполняться только от имени суперпользователя (администратора). Будь это банальная установка приложения или редактирование важного системного файла. В любом случае нужно авторизоваться и иметь достаточное количество полномочий. Иначе вы просто не сможете управлять своим компьютером и будете вынуждены пользоваться строго ограниченным количеством программ и функций.
Примерно то же самое происходит в Windows, когда вы устанавливаете программу, а система просит подтвердить это действие от лица администратора. Правда, пароль обычно никто не просит. В этом смысле sudo выглядит безопаснее, так как требует пароль по умолчанию.
Где встречается sudo? Если вы уже работали с Linux, то наверняка сталкивались с командой sudo в терминале, но она работает и в графической оболочке. Если при установке или обновлении пакетов появилось окошко с просьбой ввести пароль — это аналог sudo.
Из чего строится команда sudo?
sudo всегда прописывается в начале любой команды. У нее довольно простой синтаксис: прописываем sudo, затем ее опции, потом любую другую команду, которую хотим выполнить, а уже потом ее опции и параметры. Это выглядит примерно следующим образом: sudo опции команды sudo другая команда, которую нужно выполнить от лица суперпользователя опции и параметры этой команды.
Вот практический пример: sudo apt-get install firefox. Здесь мы вписываем команду sudo, которая награждает нас полномочиями администратора для запуска менеджера пакетов apt-get. Как вы понимаете, вместо apt-get можно использовать другие приложения и команды.
Опции команды sudo
У большинства опций есть сокращенный и полный вариант.
- -A (__ – askpass) — чтобы воспользоваться правами sudo, обязательно нужно ввести пароль, который эта команда запросит. Если поставить опцию -A__, то программа попробует задействовать графическую оболочку для ввода пароля.
- -B (__ – background__) — эта опция нужна, чтобы программа, переданная после sudo, запустилась в фоновом режиме (то есть без наблюдения со стороны пользователя).
- -С и номер (__ – close-from=и номер__) — с помощью этой опции можно ограничить доступ к файловым дескрипторам. Их можно указать в числовом значении.
- -E (– preserve-env) — с помощью этой опции можно передать переменные окружения программе, которая будет запущена с правами sudo.
- -e (– edit) — обычно sudo используется для выполнения других команды (запуска программ), но если использовать эту опцию вместо программы, можно прописать путь до файла. Тогда sudo откроет указанный файл в текстовом редакторе, выбранном в системе по умолчанию, и позволит отредактировать его с правами суперпользователя.
- -g и группа — если добавить эту опцию и приписать название группы, то команда sudo будет запущена именно от лица этой группы, а не стандартной группы пользователя, в которой состоит сам пользователь.
- -h (__ – help__) — вызов справки со списком доступных опций для команды sudo.
- -h и хост — если добавить эту опцию и приписать имя какого-либо хоста, то команда (запуск приложения) будет выполнена от имени выбранного хоста. Работает она, только если система поддерживает дистанционное управление.
- -i *и имя пользователя (– login и имя пользователя) — с помощью этой опции можно авторизоваться под именем любого пользователя и запустить программу от его лица. После этого будет загружен домашний каталог этого пользователя и его переменные окружения.
- -k — sudo просит пароль один раз в определенный период времени. То есть, если вы выполнили одну команду с правами суперпользователя, то система потребует пароль, а если следом вы воспользовались ей еще раз, то пароль будет не нужен. Опция -k отключает это свойство sudo.
- -l (– list) — если добавить эту опцию, то в консоль будет выведен список всех команды доступных для удаленных пользователей.
- -n (– non-interactive) — эта опция отключает весь потенциальный интерактив с командной строкой. Если в какой-то момент потребуется ввести пароль, то в консоли всплывет ошибка.
- -T и время (– timeout) — задает время на выполнение указанной команды. Если она не успеет отработать за этот период времени, то ее выполнение прекратится в принудительном режиме.
- -u и имя пользователя — с помощью этой опции можно загружать программы от любого имени пользователя, существующего в системе.
- -V — с помощью этой опции можно выяснить версию sudo, установленную в систему.
Примеры использования sudo
Как уже было сказано ранее, sudo встречается в системе очень часто. Даже простые процедуры вроде установки новых приложений запускаются только с полномочиями суперпользователя, и обойти это правило нельзя.
Далее в материале будут описаны некоторые варианты использования команды sudo в системе и ее основные возможности.
Запуск приложений
С помощью sudo можно запустить любую программу. Более того, описанный выше пример с apt-get, по сути, тоже является запуском программы. Apt — это менеджер пакетов. То есть приложение. Приложение, которое требует прав доступа уровня администратора для выполнения своих функций, так как программы устанавливаются в корень системы и связаны с компонентами Linux.
Авторизация от имени другого пользователя
Зная пароль суперпользователя, можно управлять системой от любого пользователя в системе. Это может быть полезно в том случае, если вы планируете работать с какой-то программой или файлами, которые доступны определенному пользователю или группе пользователей.
Вот как это работает на практике:
- Запустим команду whoami, чтобы узнать, от чьего имени мы зашли в систему. Без sudo она выдаст пользователя space. В моем случае это администратор. У вас, естественно, будет другой.
Но если ввести эту команду с sudo, то в результате получим root. То есть максимальные полномочия.
Результат работы команды whoami
- Чтобы поменять пользователя, введем команду sudo -i -u space (вместо space, естественно, вводим имя пользователя, с полномочиями которого хотим авторизоваться в системе).
- Если теперь проверить пользователя командой whoami, вновь отобразится space.
Выбор оболочки
Если вам о чем-то говорят сочетания букв bash или zsh, то вы наверняка знакомым с оболочками командной строки или интерпретаторами. При желании между ними можно переключаться, добавив в команду sudo опцию -s и указав путь до нужного интерпретатора.
Редактирование файлов
Также можно заручиться полномочиями суперпользователя для редактирования файлов. Вообще, тут можно пойти двумя путями. Либо ввести команду sudo, а затем воспользоваться программой для редактирования текста, либо использовать команду sudoedit, которая автоматически находит редактор, установленный по умолчанию, и открывает с помощью него выбранный файл.
Автор материала: Владимир Ковылов
Подписывайтесь на наш канал и ставьте лайки! А еще можете посетить наш официальный сайт.