Як користуватися командою sudo

У більшості систем Linux існує два основних типи облікових записів користувачів: користувач root (який також називається “суперкористувач”) і нормальний користувач.


Користувацький обліковий запис користувача – це спеціальний обліковий запис, який має повний доступ до будь-якої програми та всіх файлів у системі. Звичайний обліковий запис користувача має доступ лише до його власного домашнього каталогу, будь-яких загальнодоступних програм і файлів, а також, можливо, до будь-яких програм і файлів, до яких користувач отримав доступ (кореневим користувачем).

Це означає, що існують програми та файли, до яких звичайний користувач не має доступу за замовчуванням. Наприклад, звичайний користувач не може використовувати інструменти менеджера пакетів apt-get і dpkg для встановлення або оновлення пакетів у системі Debian / Ubuntu. Цей тип користувача також не може редагувати будь-які файли глобальної конфігурації, що знаходяться в каталозі «/ і т.д.». Як і в цих прикладах, існує багато інших ситуацій.

Щоб дозволити звичайним користувачам виконувати певні завдання з привілеями користувача root, не надаючи їм кореневого пароля, ми можемо використовувати інструмент sudo.

За допомогою sudo можна надати користувачам доступ до певних команд на певних хостах або просто надати їм доступ до всього, що може зробити користувач root. Судо також записує кожну виконану команду до файлу журналу (/var/log/auth.log), тому системний адміністратор може стежити за тим, що робиться з sudo.

Конфігурація судо

Щоб дізнатися, як налаштувати sudo для певних користувачів та з певними обмеженнями, перегляньте ці підручники:

  • Як редагувати файл Sudoers на Ubuntu та CentOS
  • Як додавати, видаляти та надавати судові привілеї користувачам на VPS Debian

Щоб точно з’ясувати, які дозволи для sudo у вашій системі, запустіть таку команду:

1 судо -л

Це може призвести до наступного виводу для прикладу користувача “john” на хості “server1”:

1
2
3
4
5

Відповідні записи за замовчуванням для john на сервері1:

env_reset, mail_badpass, secure_path = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin

 

Користувач john може виконувати такі команди на сервері1:

(ВСІ: ВСІ) ВСІ

Останній рядок означає, що цей користувач може виконувати sudo на всіх хостах, як і будь-який цільовий користувач для будь-якої команди.

Параметри команди Судо

Це короткий зміст параметрів команди sudo, які ми використовуватимемо в цьому підручнику:

  • -l: список дозволів користувача, що викликає sudo
  • -u: запустити команду як інший користувач
  • -е: редагуйте один або декілька файлів замість виконання команди
  • sudoedit псевдонім для “sudo -e”

Приклади судових команд

Щоб запустити команди як користувач root, ви використовуєте такий синтаксис:

1 <ем>судо</ ем> командування

Дозволяє встановити програмне забезпечення для управління версіями за допомогою менеджера пакетів apt-get. Якби ми спробували це без використання судо:

1 apt-get install git

Ми отримаємо це повідомлення про помилку:

1
2

E: Не вдалося відкрити файл блокування / var / lib / dpkg / lock – відкрити (13: Дозвіл відхилено)

E: Не вдається заблокувати каталог адміністрації (/ var / lib / dpkg /), ти root?

Однак якщо ми тепер додамо команду sudo перед попередньою командою, нам буде запропоновано спочатку заповнити власний пароль, після чого система виконає нашу команду з привілеями root користувача:

1 sudo apt-get install git

За допомогою sudo ми також можемо запускати команди як користувач, крім root, використовуючи параметр -u. Це може бути корисно у випадках, коли певні програми очікують певного середовища користувача (тобто для користувачів бази даних mysql або postgres). Синтаксис для цього є:

1 команда імені користувача sudo -u

Для запуску настільних (графічних вікон) додатків як іншого користувача нам потрібно використовувати команду gksu.

Наприклад, ми відкрили б такий синаптичний (інтерфейс менеджера пакунків Debian / Ubuntu) з командного рядка (замість того, щоб переходити через систему меню на робочому столі):

1 гксу синаптичний

Вам буде запропоновано ввести свій пароль у графічному вікні, після чого команда розпочне виконання.

Щоб відредагувати файл як користувач root замість виконання команди:

1 sudo -e / etc / ім’я хоста

Ви могли використовувати команду sudoedit, яка є просто ярликом для sudo -e.

1"sudoedit / etc / ім’я хоста"

Зауважте, що ви можете змінити редактор, що використовується, як описано тут.

Крім того, ви також могли просто виконати свій улюблений редактор:

1 sudo vim / etc / ім’я хоста

Якщо вам потрібно мати root права для багатьох різних команд, іноді це може бути корисно, щоб стати користувачем root. Ця команда працюватиме лише у тому випадку, якщо користувач, який викликає, має права на виконання команди su (також згаданий як заміна користувача, супер користувач, або змінити користувача). За замовчуванням, без будь-якого іншого аргументу командного рядка, це підніме поточного користувача до кореневого користувача локальної системи.

1су

Тепер ви можете виконати ряд завдань, які потребують привілеїв користувача root. Але будьте обережні, щоб не завдати шкоди цим наполегливим наддержавам.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Adblock
    detector