вступ
Команда Linux sudo означає Суперкористувач До . Зазвичай він використовується як префікс кількох команд, які дозволено виконувати суперкористувачу.
Якщо ми поставимо префікс команди разом з іншими командами, вона виконає цю команду з високими привілеями. Іншими словами, це дозволить користувачеві разом із належною авторизацією використовувати команду як інші користувачі, як суперкористувач.
Це дорівнює варіанту 'запустити від імені адміністратора' у Windows. Параметр sudo дозволяє нам мати більше одного адміністратора. Користувачі, які можуть застосувати команду sudo, вимагають мати запис у файлі sudoers, розміщеному на '/etc/sudoers/' .
Примітка. Для перегляду або редагування файлу потрібно застосувати команду sudo. Для редагування файлу пропонується застосувати команду «visudo».
Команда sudo за замовчуванням вимагає, щоб користувачі підтвердили себе разом із паролем, який є паролем користувача, а не самим паролем адміністратора.
Синтаксис команди sudo
Синтаксис команди sudo наведено нижче:
sudo OPTION... COMMAND
Опція в команді sudo
Деякі з важливих параметрів у команді sudo пояснюються нижче:
1. -В: Це означає версія . Ця опція вмикає команду sudo для друку номера версії та виходу. Опція -V роздруковувала б паузу списку sudo за замовчуванням, якщо користувач, який запитує, уже є root.
2. -l: Це означає список . Цей параметр допоможе роздрукувати різні команди, дозволені користувачеві на поточному хості.
Це показує, що поточний користувач може застосувати кожну команду як sudo.
scanner.next java
3. -h або -help: h означає допомогти в цьому варіанті. Ця опція вмикає команду sudo для друку повідомлення про використання та вихід.
4. -в: Це означає перевірити . Якщо команда sudo оновить мітку часу користувача, у разі необхідності перевірка запросить пароль користувача. Він подовжує час очікування команди sudo на інші 5 хвилин, але не виконує команду. Це не дає жодного результату.
5. -k: Це означає вбити . Цей параметр робить мітку часу користувача sudo недійсною. Отже, наступного разу, коли буде виконано команду sudo, потрібно буде ввести пароль. Для параметра -k не потрібен пароль, і він був включений, щоб дозволити користувачам скасовувати дозволи команди sudo за допомогою .вийти файл.
6. -б: Це означає тло . Цей параметр інформує команду sudo про виконання наданих команд у фоновому режимі.
Примітка: якщо ми застосуємо цей параметр, ми не зможемо застосувати керування завданнями оболонки для маніпулювання процесом.
7. -К: Цей параметр такий самий, як параметр -k. Однак це означає точно вбити . Цей параметр застосовується для повного видалення мітки часу користувача. Для цього також не потрібен пароль.
8. -p: Це означає підказка . Цей параметр дозволяє нам замінити запит пароля (за замовчуванням) і застосувати спеціальний. Дозволено кілька відсотків втеч, які є такими:
- %u розробляється до імені входу користувача, який викликає.
- %U розроблено для імені користувача
- %h розробляється до імені хоста (локального) без жодного імені домену.
- %H розробляється до імені хоста (локального) з назвою домену (тільки якщо ім’я хоста машини повністю кваліфіковане)
- %% (два послідовні символи) можна розбити на окремий символ %.
9. -n: Ця опція запустить команду без запиту пароля. Це дуже корисно, якщо ми хочемо виконати декілька команд у фоновому режимі (або всередині сценарію оболонки), де нам не потрібна команда sudo для запиту про пароль. Цей параметр є скороченням від неінтерактивний.
підручник java для початківців
10. -в: Це означає користувача . Ця опція дає змогу команді sudo виконувати описані команди, крім користувача root. Для визначення a uid замість імені користувача ми можемо використовувати #uid .
11. -H: Це означає ДІМ . Ця опція може встановити a Змінна середовища HOME до нашого домашній каталог користувача root, як описано у файлі passwd. Команда sudo за замовчуванням не змінює HOME.
12. -s: Це означає оболонка . Цей параметр запускає оболонку, описану через a Змінна середовища SHELL коли його встановлено або цю оболонку, як описано всередині passwd файл.
13. -S: Це означає stdin . Ця опція вмикає команду sudo для читання пароля через стандартний ввід, а не через термінальний пристрій.
14. -: Цей параметр показує, що команда sudo повинна припинити обробку аргументів командного рядка. Він найбільш корисний у поєднанні з прапорцем -s.
15. -а: Це означає тип автентифікації . Ця опція вмикає команду sudo для використання описаного типу автентифікації під час перевірки користувача, як це дозволено /etc/login/.config .
Рядок порівняння java
Адміністратор системи може описати список методів автентифікації для sudo, включивши 'auto-sudo' вхід всередину /etc/login/.config .
Змінні середовища в команді sudo
Нижче наведено деякі змінні середовища, які застосовуються командою sudo:
Так ні. | Тег | опис |
---|---|---|
1. | РЕДАКТОР | Це стандартний редактор, який можна використовувати в режимі -e (sudoedit), коли VISUAL не виправлено. |
2. | ДІМ | Він буде встановлений на домашній каталог користувача (цільового) у режимі -H або -s (або коли команда sudo була сформована з опцією, наприклад, -enable-shell-sets-home). |
3. | ШЛЯХ | Він встановлює нормальне значення, коли виправлено опцію, тобто sudoers secure_path. |
4. | ШЕЛЛ | Його можна використовувати для визначення оболонки для виконання за допомогою опції -s. |
5. | SUDO_COMMAND | Він встановлює команду, що виконується командою sudo. |
6. | SUDO_PROMPT | Його можна використовувати як запит пароля (за замовчуванням). |
7. | SUDO_USER | Він встановлює логін користувача, який запитує команду sudo. |
8. | SUDO_UID | Він встановлює uid користувача, який запитує команду sudo. |
9. | SUDO_GID | Він встановлює gid користувача, який запитує команду sudo. |
10. | SOUTH_PS1 | PS1 буде фіксовано до свого значення, якщо встановлено. |
одинадцять. | КОРИСТУВАЧ | Він встановлюється для користувача (корінь, якщо не описано параметр, тобто -u). |
12. | ВІЗУАЛЬНИЙ | Це типовий редактор, який використовується в режимі -e (sudoedit). |
Історія команди sudo
Кліфф Спенсер і Роберт Коггешалл написали справжню підсистему в 1980 році в SUNY/Buffalo на факультеті комп'ютерних наук. Роберт Коггешалл привіз із собою sudo до Університету Колорадо в Боулдері. У 1986-1993 рр. члени ІТ-коледжу інженерного коледжу та факультету комп’ютерних наук і прикладних наук Університету Колорадо Боулдер разом із Тоддом К. Міллером суттєво змінили функції та код.
Останньою версією публічно керує Тодд .C Міллер (розробник OpenBSD) з 1994 року, а з 1999 року вона надається за ліцензією у стилі ISC.
У листопаді 2009 року Томас Клаберн охарактеризував таку невизначеність як надмірну у відповідь на те, що Microsoft має привілей sudo. Вузько кажучи, претензії були створені для конкретного графічного інтерфейсу замість підходу sudo.
Дизайн команди sudo
За потреби користувачі можуть вказати свій пароль для sudo замість суперкористувача, на відміну від команди su. Це дозволяє доступним користувачам використовувати кваліфіковані привілеї без порушення секретності пароля іншого облікового запису.
- Коли конфігураційний файл дозволяє доступ користувача, після автентифікації система запитує заявлену команду.
- Команда sudo зберігає права виклику користувача протягом пільгового часу (зазвичай 5 хвилин) для кожного псевдотерміналу, і вона дозволяє користувачеві виконувати різні послідовні команди як заявлений користувач без необхідності повторного введення будь-якого пароля.
- Команда sudo може бути налаштована для реєстрації кожної виконаної команди як функцію аудиту та безпеки.
- У той час, коли користувач виконує команду sudo без переліку в файлі конфігурації, цьому користувачеві надається ілюстрація винятку, яка повідомляє, що постріл було записано.
- Запис буде збережено всередині системи, а користувач root буде проінформований поштою.
Конфігурація команди sudo
The /etc/sudoers містить групи користувачів або список користувачів із дозволом на виконання набору команд, водночас із правами користувача root або іншого користувача зі списку. Програма може бути налаштована на потребу пароля.
Вплив команди sudo
У кількох системних дистрибутивах команда sudo замінила використання (за замовчуванням) іншого логіна суперкористувача для різних адміністративних операцій, особливо в кількох дистрибутивах macOS від Apple і Linux.
Це запобігає деяким експлойтам, а також дозволяє більш захищене журналювання команд адміністратора.
RBAC
Команда sudo може використовуватися для переходу між різними типами ролей у рамках керування доступом на основі ролей у співпраці з SELinux.
Подібні програми та інструменти
Visudo — це утиліта командного рядка, яка дозволяє редагувати файл конфігурації sudo безпечним способом. Він виконує перевірки синтаксису та надійності, а також запобігає одночасному внесенню кількох редагувань разом із блокуванням.
ні
Програма runas забезпечує таку саму продуктивність у Microsoft Windows; однак він не може передати поточні довгі командні рядки дочірньому, змінним середовища або каталогам.
Він не підтримує загальне підвищення, але допомагає виконати дочірній елемент як будь-який інший користувач. Для Windows справжні sudo та su, які можуть передавати кожну з цих деталей стану та починати дочірній елемент як інший користувач або підвищений, додаються з оболонка Гамільтона C .
Графічний інтерфейс доступний для sudo ( gksudo зокрема), але він застарілий у Debian, а також більше не в Ubuntu. Різноманітні інші типи інтерфейсів користувача не розроблені безпосередньо для sudo, але сприяють тому самому підвищенню привілеїв (тимчасовому) для адміністративних цілей, як-от Сервіси авторизації Mac OS X, контроль облікових записів користувачів у Microsoft Windows , і pkexec в Unix-подібних операційних системах .
Починаючи з версії OpenBSD 5.8 (жовтень 2015 р.), пожертвувати доступний. Було визначено замінити команду sudo всередині базової системи OpenBSD.
його проти sudo
Якщо ми звикли до більш класичної установки Linux, то ми звикли застосовувати команду su для отримання привілеїв root. Ми також можемо виконати команду su для ефективного входу в систему як root (домівка root стає нашим домом).
Використовуючи такі розподіли, ми також можемо увійти як користувач маршруту. Але це не гарна ідея входити як користувач root. Якщо ми застосовуємо дистрибутив, який залежить від команди su та дозволяє вхід користувача root, тоді увійдіть як наш стандартний користувач і введіть команду su для користувача root.
Швидше за все, ми помітимо, що не можемо увійти як користувач root за допомогою дистрибутивів на основі sudo. Насправді в деяких дистрибутивах, таких як Ubuntu, обліковий запис користувача root вимкнено.
if else if else if java
Ми не можемо увійти як користувач root і використовувати команду su, щоб стати користувачем root. Ми могли б виконати ці команди за допомогою команди sudo для отримання адміністративних привілеїв.
Використання команди sudo
Є два різні способи виконання адміністративних програм у Linux. Або ми можемо змінити суперкористувача або користувача root за допомогою команди su, або ми можемо скористатися командою sudo.
Коли ми використовуємо свій час на терміналі, sudo є однією з важливих команд, які ми будемо використовувати досить часто. Використання команди sudo замість входу в систему як користувача root є більш захищеним, оскільки ми можемо надати лише кілька адміністративних привілеїв одному користувачеві без його/її знання пароля root.
Те, як ми це реалізуємо, залежить від того, який дистрибутив ми використовуємо. Кілька дистрибутивів дозволяють користувачам root (як OpenSUSE, Red Hat , або Fedora ), тоді як деякі не люблять (подобається Debian і Ubuntu ).
Використання команди sudo просте в її дуже базовій формі. Наприклад, ми повинні виконати dpkg для встановлення частини програмного забезпечення. Якщо ми просто запустимо dpkg -i програмне забезпечення.deb як стандартний користувач, ми отримаємо повідомлення про помилку, що користувач не має дозволу на виконання команди.
Ось чому стандартні користувачі за замовчуванням не можуть встановлювати різноманітні програми на комп’ютері Linux. Якщо ми хочемо встановити будь-яку програму на комп’ютері Linux, нам потрібно мати права суперкористувача.
Натомість ми запустимо sudo dpkg -i software.deb щоб ми могли успішно виконати інсталяцію.
Встановлення команди sudo
Пакет команди sudo попередньо встановлено в більшості дистрибутивів Linux. Щоб підтвердити, що пакет встановлено в нашій системі, необхідно виконати наведені нижче дії.
- Перш за все, відкрийте наш термінал.
- Введіть sudo та натисніть кнопку введення.
- Якщо в нашій системі встановлено пакет sudo, він покаже коротке повідомлення.
- В іншому випадку ми повідомимо повідомлення, тобто команду sudo не знайдено.
- Якщо пакунок не встановлено, ми можемо легко встановити цей пакунок, застосувавши менеджер пакетів надмірного розповсюдження.
Встановіть Sudo на Fedora та CentOS
$ yum install sudo
Встановіть Sudo на Debian і Ubuntu
$ apt install sudo