Как использовать команду Sudo в Linux

12 set 2022 3 min di lettura
Как использовать команду Sudo в Linux
Indice dei contenuti

Введение

Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию это пользователь root. Если вы проводите много времени в командной строке, sudo — это одна из команд, которую вы будете использовать довольно часто.

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

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

Установить Судо

Пакет sudo предустановлен в большинстве дистрибутивов Linux.

Чтобы проверить, установлен ли пакет sudo в вашей системе, откройте консоль, введите sudo и нажмите Enter. Если у вас установлен sudo, система отобразит короткое справочное сообщение, в противном случае вы увидите что-то вроде sudo command not found.

Если sudo не установлен, вы можете легко установить его с помощью менеджера пакетов вашего дистрибутива.

Установите Sudo на Ubuntu и Debian

apt install sudo

Установите Sudo на CentOS и Fedora

yum install sudo

Добавьте пользователя в группу Sudo

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

В дистрибутивах на основе RedHat, таких как CentOS и Fedora, имя группы sudo — wheel. Чтобы добавить пользователя в группу, выполните:

usermod -aG wheel username

В Debian, Ubuntu и их производных члены группы sudo имеют доступ к sudo:

usermod -aG sudo username

Учетная запись пользователя root в Ubuntu по умолчанию отключена по соображениям безопасности, и пользователям рекомендуется выполнять системные административные задачи с помощью sudo. Первоначальный пользователь, созданный установщиком Ubuntu, уже является членом группы sudo, поэтому, если вы используете Ubuntu, скорее всего, пользователю, под которым вы вошли, уже предоставлены привилегии sudo.

Если вы хотите разрешить конкретному пользователю запускать только определенные программы, такие как sudo, вместо добавления пользователя в группу sudo добавьте пользователей в файл sudoers.

Например, чтобы позволить noviello пользователю запускать только команду mkdir от имени sudo, введите:

sudo visudo

и добавьте следующую строку:

noviello ALL=/bin/mkdir

В большинстве систем команда visudo открывает /etc/sudoers с помощью текстового редактора vim. Если вы новичок в vim, посмотрите нашу статью о том, как сохранить файл и закрыть редактор vim.

Вы также можете разрешить пользователям выполнять команды sudo без ввода пароля:

noviello ALL=(ALL) NOPASSWD: ALL

Как использовать Судо

Синтаксис команды 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 noviello:....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 от имени пользователя «piero»:

sudo -u piero whoami

Команда whoami напечатает имя пользователя, выполнившего команду:

piero

Как перенаправить с помощью 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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.