Дурак — это человек, считающий себя умнее меня (С. Лец).

Команда sudo в Linux

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
24 июня 2019
Команда sudo в Linux
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователь root. Если вы проводите много времени в командной строке, sudo – одна из команд, которую вы будете использовать довольно часто.

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

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

 

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

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

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

 

apt install sudo
yum install sudo

По умолчанию в большинстве дистрибутивов 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.

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

sudo visudo

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

andreyex  ALL=/bin/mkdir

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

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

andreyex  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 andreyex:
.  ..  .bashrc.cache.config  .local  .profile

По умолчанию sudo попросит вас ввести пароль еще раз через пять минут бездействия sudo. Вы можете изменить время ожидания по умолчанию, отредактировав файл sudoers. Откройте файл с помощью visudo:

sudo visudo

Установите время ожидания по умолчанию, добавив строку ниже, где 10 время ожидания указано в минутах:

Defaults  timestamp_timeout=10

Если вы хотите изменить метку времени только для конкретного пользователя, добавьте следующую строку, где user_name – это рассматриваемый пользователь.

Defaults:user_name timestamp_timeout=10

Существует неправильное восприятие, sudo которое используется только для предоставления полномочий root обычному пользователю. На самом деле, вы можете использовать sudo для запуска команды, как любой пользователь.

Опция -u позволяет выполнить команду в качестве указанного пользователя.

В следующем примере мы используем sudo для запуска команды whoami от имени пользователя «destroyer»:

sudo -u destroyer whoami

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

destroyer

Если вы попытаетесь перенаправить вывод команды в файл, у которого у пользователя нет прав на запись, вы получите ошибку “Permission denied”.

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.

Если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 74

Если статья понравилась, то поделитесь ей в социальных сетях:

Отправить ответ

Войти с помощью: 
avatar
  Подписаться  
Уведомление о

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close