Команда Sudo в Linux
Команда Sudo в Linux
В этом уроке мы объясним, как использовать sudo команду.

Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователь root. Если вы проводите много времени в командной строке, sudo - одна из команд, которую вы будете использовать довольно часто.
Использование sudo вместо входа в систему в качестве пользователя root более безопасно, поскольку вы можете предоставлять ограниченные административные привилегии отдельным пользователям, не зная пароля root.
Установка Sudo (команда sudo не найдена)
Пакет sudo предустановлен в большинстве дистрибутивов Linux.
Чтобы проверить, установлен ли пакет sudo в вашей системе, откройте консоль, введите sudo
и нажмите Enter
. Если у вас установлен sudo, система отобразит краткое справочное сообщение, в противном случае вы увидите что-то вроде sudo command not found
.
Если sudo не установлен, вы можете легко установить его с помощью менеджера пакетов вашего дистрибутива.
Установите Sudo на Ubuntu и Debian
apt install sudo
Установите Sudo на CentOS и Fedora
yum install sudo
Добавление пользователя в Sudoers
По умолчанию в большинстве дистрибутивов Linux предоставление доступа к sudo так же просто, как добавление пользователя в группу sudo, определенную в sudoers
. Члены этой группы смогут запускать любую команду от имени пользователя root. Название группы может отличаться от рассылки к рассылке.
В дистрибутивах на основе RedHat, таких как CentOS и Fedora, имя группы sudo wheel
. Чтобы добавить пользователя в группу, выполните:
usermod -aG wheel username
В Debian, Ubuntu и их производных членам группы sudo
предоставляется доступ sudo:
usermod -aG sudo username
Учетная запись суперпользователя в Ubuntu по умолчанию отключен по соображениям безопасности и пользователям рекомендуется выполнить системную задачу администрирования с использованием Sudo. Первоначальный пользователь, созданный установщиком Ubuntu, уже является членом группы sudo, поэтому, если вы работаете в Ubuntu, есть вероятность, что пользователь, вошедший в систему, уже получил права sudo.
Если вы хотите разрешить определенному пользователю запускать только определенные программы как sudo, вместо добавления пользователя в группу sudo добавьте пользователей в sudoers
файл.
Например, чтобы позволить пользователю linuxize
запускать только mkdir
команду sudo, введите:
sudo visudo
и добавьте следующую строку:
linuxize ALL=/bin/mkdir
В большинстве систем visudo
команда открывает /etc/sudoers
файл в текстовом редакторе vim. Если у вас нет опыта работы с vim, проверьте нашу статью о том, как сохранить файл и выйти из редактора vim .
Вы также можете разрешить пользователям запускать команды sudo без ввода пароля :
linuxize ALL=(ALL) NOPASSWD: ALL
Как использовать sudo
Синтаксис sudo
команды следующий:
sudo OPTION.. COMMAND
sudo
команды есть много опций, которые управляют ее поведением, но обычно sudo
она используется в самой простой форме, без каких-либо опций.
Чтобы использовать sudo, просто добавьте к команде префикс sudo
:
sudo command
Где
command
команда, для которой вы хотите использовать sudo.
Sudo прочитает /etc/sudoers
файл и проверит, предоставляется ли пользователю, вызывающему программу, с помощью команды sudo. При первом использовании sudo в сеансе вам будет предложено ввести пароль пользователя, и команда будет выполнена от имени пользователя root.
Например, чтобы перечислить все файлы в /root
каталоге, вы бы использовали:
sudo ls /root
[sudo] password for linuxize:
. .. .bashrc .cache .config .local .profile
Тайм-аут пароля
По умолчанию sudo попросит вас ввести пароль еще раз через пять минут бездействия sudo. Вы можете изменить время ожидания по умолчанию, отредактировав sudoers
файл. Откройте файл с помощью visudo
:
sudo visudo
Установите время ожидания по умолчанию, добавив строку ниже, где
10
время ожидания указано в минутах:Defaults timestamp_timeout=10
Если вы хотите изменить метку времени только для конкретного пользователя, добавьте следующую строку, где user_name - это рассматриваемый пользователь.
Defaults:user_name timestamp_timeout=10
Запустите команду как пользователь, отличный от Root
Существует неправильное восприятие, sudo
которое используется только для предоставления полномочий root обычному пользователю. На самом деле, вы можете использовать sudo
для запуска команды, как любой пользователь.
-u
Опция позволяет выполнить команду в качестве указанного пользователя.
В следующем примере мы используем sudo
для запуска whoami
команды от имени пользователя «richard»:
sudo -u richard whoami
Команда whoami
выведет имя пользователя, запустившего команду:
richard
Как перенаправить с Sudo
Если вы попытаетесь перенаправить вывод команды в файл, у которого у пользователя нет прав на запись, вы получите ошибку «Отказано в доступе».
sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
Это происходит потому, что перенаправление >
вывода выполняется под пользователем, в котором вы вошли, а не пользователем, указанным в sudo. Перенаправление происходит до sudo
вызова команды.
Одним из решений является вызов новой оболочки от имени пользователя root с помощью sudo sh -c
:
sudo sh -c 'echo "test" > /root/file.txt'
Другой вариант - передать вывод как обычный пользователь в tee
команду, как показано ниже:
echo "test" | sudo tee /root/file.txt
Вывод
Вы узнали, как использовать sudo
команду и как создавать новых пользователей с привилегиями sudo.
Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.