⚡ ѕ–ќ…ƒ» Ќќ¬џ… ќЌЋј…Ќ  ”–— ѕќ —≈“≈¬џћ “≈’ЌќЋќ√»яћ —ќ — »ƒ ќ… 50%

до конца скидки осталось

Ќачать обучение 🚀
ћерион Ќетворкс

6 минут чтени€

Sudo означает SuperUser DO и используетс€ дл€ доступа к файлам и операци€м с ограниченным доступом. ѕо умолчанию Linux ограничивает доступ к определенным част€м системы, предотвраща€ компрометацию конфиденциальных файлов.

ќбучайс€ в Merion Academy

ѕройди курс по
сетевым технологи€м

Ќачать

 оманда sudo временно повышает привилегии, позвол€€ пользовател€м выполн€ть конфиденциальные задачи без входа в систему как пользователь root. ¬ этом руководстве вы узнаете, как использовать команду sudo в Linux с примерами.


 ак использовать команду sudo

”становка sudo

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

„тобы проверить есть ли у вас эта комманда введите sudo. ¬ы увидите справочное сообщение или сообщение о том что комнада не найдена.

„тобы установить sudo используйте дл€ Ubuntu и Debian:

apt install sudo

или дл€ CentOS и Fedora

yum install sudo
sudo была разработана как способ временного предоставлени€ пользователю административных прав. „тобы заставить ее работать, используйте sudo перед ограниченной командой, которую можно выполнить только из под рута. “огда система запросит ваш пароль. ѕосле его ввода система запускает команду.

—интаксис

sudo [команда]

ќпции

sudo можно использовать с дополнительными параметрами:

  • -h - отображает синтаксис и параметры команды
  • -V - отображает текущую версию приложени€ sudo
  • -v - обновить лимит времени на sudo без запуска команды
  • -l - перечисл€ет права пользовател€ или провер€ет конкретную команду
  • - завершить текущие привилегии sudo

ƒополнительные параметры можно найти с помощью ключа -h.

sudo -h
ѕримечание. ќставатьс€ в системе как администратор ставит под угрозу безопасность сервера. –аньше администраторы использовали su (substitute user) дл€ временного переключени€ на учетную запись администратора. ќднако дл€ команды su требуетс€ втора€ учетна€ запись пользовател€ и пароль, что не всегда возможно.

 огда используетс€ команда sudo, в системные журналы заноситс€ метка времени. ѕользователь может запускать команды с повышенными привилеги€ми в течение короткого времени (по умолчанию 15 минут). ≈сли пользователь, не принадлежащий к sudo группе, пытаетс€ использовать команду sudo, это регистрируетс€ как событие безопасности.


ѕредоставление привилегий sudo

ƒл€ большинства современных дистрибутивов Linux пользователь должен входить в группу sudo, sudoers или wheel, чтобы использовать команду sudo. ѕо умолчанию однопользовательска€ система предоставл€ет своему пользователю права sudo. —истема или сервер с несколькими учетными запис€ми пользователей могут исключать некоторых пользователей из привилегий sudo.

–ассмотрим как добавить пользовател€ в эту группу.

RedHat и CentOS

¬ Redhat и CentOS wheel группа контролирует пользователей sudo. ƒобавьте пользовател€ в группу wheel с помощью следующей команды:

usermod ЦaG wheel [username]
«амените [username] фактическим именем пользовател€. ¬озможно, вам потребуетс€ войти в систему как администратор или использовать команду su.

Debian и Ubuntu

¬ Debian и Ubuntu группа sudo (sudo group) контролирует пользователей sudo. ƒобавьте пользовател€ в группу sudo с помощью следующей команды:

»спользование visudo и группы sudoers

¬ некоторых современных верси€х Linux пользователи добавл€ютс€ в файл sudoers дл€ предоставлени€ привилегий. Ёто делаетс€ с помощью команды visudo.

»спользуйте команду visudo дл€ редактировани€ файла конфигурации:

sudo visudo	

Ёто откроет /etc/sudoers дл€ редактировани€. „тобы добавить пользовател€ и предоставить полные права sudo, добавьте следующую строку:

[username] ALL=(ALL:ALL) ALL	
ALL=(ALL:ALL) ALL

—охраните и выйдите из файла.

¬от разбивка предоставленных привилегий sudo:

[username] [any-hostname]=([run-as-username]:[run-as-groupname]) [commands-allowed]
ѕримечание. ѕроще добавить пользовател€ в группу sudo или wheel, чтобы предоставить права sudo. ≈сли вам нужно отредактировать файл конфигурации, делайте это только с помощью visudo. ѕриложение visudo предотвращает сбои, ошибки и неправильные настройки, которые могут нарушить работу вашей операционной системы.

“айм-аут парол€ sudo

ѕо умолчанию sudo просит вас ввести пароль после нескольких минут бездействи€. »зменить это врем€ ожидани€ по умолчанию, можно отредактировав файл sudoers с помощью visudo и измените врем€ ожидани€, добавив строку как в примере, где 10 - это врем€ ожидани€, указанное в минутах:

sudo visudo
Defaults  timestamp_timeout=10	

≈сли вы хотите изменить врем€ ожидани€ дл€ определенного пользовател€, то добавьте им€ пользовател€.

Defaults:user_name timestamp_timeout=10

ѕримеры sudo в Linux

ќсновное использование Sudo

1. ќткройте окно терминала и попробуйте выполнить следующую команду:

apt-get update

2. ¬ы должны увидеть сообщение об ошибке. ” вас нет необходимых разрешений дл€ запуска команды.

apt-get update

3. ѕопробуйте ту же команду с sudo:

sudo apt-get update

4. ѕри по€влении запроса введите свой пароль. —истема выполнит команду и обновит репозитории.

sudo apt-get update

¬ыполнить команду от имени другого пользовател€

1. „тобы запустить команду от имени другого пользовател€, введите в терминале следующую команду:

whoami	

2. —истема должна отображать ваше им€ пользовател€. «атем выполните следующую команду:

sudo Цu [другое_им€_пользовател€] whoami

3. ¬ведите пароль дл€ другого пользовател€, и команда whoami запуститс€ и отобразит другого пользовател€.

whoami

ѕереключитьс€ на root пользовател€

Ёта команда переключает вашу командную строку на оболочку BASH от имени пользовател€ root:

sudo bash

¬аша командна€ строка должна изменитьс€ на:

root@hostname:/home/[им€ пользовател€]

«начение имени хоста будет сетевым именем этой системы. »м€ пользовател€ будет текущим именем пользовател€, вошедшим в систему.

sudo bash

¬ыполнить предыдущие команды с помощью sudo

¬ командной строке Linux хран€тс€ записи о ранее выполненных командах. ƒоступ к этим запис€м можно получить, нажав стрелку вверх. „тобы повторить последнюю команду с повышенными привилеги€ми, используйте:

sudo !!

Ёто также работает со старыми командами. ”кажите исторический номер следующим образом:

sudo !6

¬ этом примере повтор€етс€ 6-€ запись в истории с командой sudo.

«апуск нескольких команд в одной строке

—оедините несколько команд вместе, разделенных точкой с зап€той:

sudo ls; whoami; hostname
sudo ls; whoami; hostname

ƒобавить строку текста в существующий файл

ƒобавление строки текста в файл часто используетс€ дл€ добавлени€ имени репозитори€ программного обеспечени€ к исходному файлу без открыти€ файла дл€ редактировани€. »спользуйте следующий синтаксис с командами echo, sudo и tee:

echo Сstring-of-textТ | sudo tee Цa [path_to_file]	

Ќапример:

echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list	
echo Сstring-of-textТ | sudo tee Цa [path_to_file]

«аключение

“еперь вы узнали про команду sudo и про то, как ее использовать.


>