Які переваги судо над су?


19

Яка реальна вигода, яку досягають Ubuntu (або похідні Debian), відключаючи root користувача?

Де б я не читав, він говорить про запобігання ненавмисних збитків для недосвідчених користувачів. Я хочу знати, що саме, оскільки sudoможу виконувати всі команди (що я знаю / використовую).

То в якому випадку корінь може завдати шкоди, тоді як sudoне може?

PS: Я знаю, як sudoпрацює.


Відповіді:


31

То в якому випадку корінь може завдати шкоди, тоді як судо не може?

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

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


8
Логіка "подумайте перед тим, як стрибнути" настільки ж наївна, як мислячі користувачі перестануть думати, коли з'явиться діалогове вікно з написом "Ви дійсно хочете встановити TrashTheComputer.Virus: Так / ні?" знизить рівень зараження шкідливим програмним забезпеченням.
Ден Нілі

9
@DanNeely - я не думаю, що так. Я набираю багато команд, і більшість з них не потребує sudo, тому я не використовую. Коли я його використовую, це дає мені хвилину паузи. Так, я кажу як програміст, а не середній користувач, але знову ж таки, середні користувачі не використовують командний рядок.
Натан Лонг

2
@NathanLong не зовсім вірно з Linux, по причині це питання існує показує «середній користувач» не розуміючи , чому використовувати sudoбільш su. Занадто часто люди кажуть "використовувати судо, тому що це безпечніше, ніж су" - що наївно думати, як це зовсім не безпечно. Якщо забути, що ви використовували, suце не привід, це лише неправомірність внизу вправо, якщо ви випадково запускаєте команду як root.
попіл

1
@ash Я все ще кажу, що пересічний користувач не запитує про порівняльні наслідки для безпеки двох методів збільшення привілеїв користувачів. Фактично, у OP виникають питання щодо StackOverflow. Але ОП убік, запам'ятати те, що ви робили 15 секунд тому, простіше, ніж запам'ятати те, що ви зробили вчора, і ви могли легко провести дні термінального сеансу, що триває. Так, так, це на вас, щоб не забувати, коли ви використовуєте su, але особисто я краще не встановлював бомби, ніж припускаю, що буду пам'ятати, що їх обеззброювати.
Натан Лонг

16

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

su - це все або немає, але sudo може бути налаштований для доступу до деяких, але не всіх команд.

Дивіться https://help.ubuntu.com/community/RootSudo для більш повної дискусії, включаючи переваги та недоліки.


11

су -

Коли ви ввійдете в систему як root , будь-яке розпочате завдання, дії, які ви запускаєте, або випадкова подія, спричинена відвідуванням певного веб-сайту тощо, буде виконуватись як суперкористувач .

судо

Коли ви запускаєте команду sudo , під час виконання команди, лише ця команда виконуватиметься як суперкористувач .

Перед виконанням команди вам буде запропоновано пароль . Тому взаємодія з вами також необхідна .

Спроби викликати sudo також можуть бути зареєстровані .


2
Дійсно, він запитує пароль поточного користувача, що полегшує керування кореневим паролем. Якщо обліковий запис буде видалено з системи, кореневий пароль не потрібно скидати. Ще краще, що кореневий обліковий запис навіть взагалі не вимагає пароля, тому кореневий рахунок не може отримати компрометацію через грубе примушування.
джиппі

@jippie загальних станів доброї практики , щоб видалити / заблокувати / анулювати пароль суперкористувача і тільки дозволити доступ через sudo su. в той час як дефіс -- це прапор, який приймає suта обробляє вашу оболонку так, як ніби ви ввійшли як користувач (запускає інший набір файлів середовища, тобто .bashrc / .profile)
попел

3

Йдеться про управління користувачем / паролем для sysadmins.

Якщо у вас є кілька користувачів, усі вони повинні мати окремі облікові записи і їх слід відслідковувати за допомогою цих облікових записів. Це означає, що люди не можуть приховати свою особу. Крім того, якщо вам потрібно скасувати дозволи певних користувачів, вам також не доведеться скидати пароль root. Надати кожній людині в оточенні більше ніж 2 адміністраторів корінний пароль створює кошмар, коли одна людина заходить. Ви повинні не тільки змінити його, але і повідомити його тощо. Усі ці речі також мають відбуватися, коли в одного з них вкрадений ноутбук або подібні речі. Один обліковий запис з одним паролем на людину спрощує адміністрування. Це схоже на філософію, чому кожен сервіс повинен мати свій рахунок. Якщо один обліковий запис порушено, вам не доведеться переналаштовувати ще десяток служб (наприклад, завдання резервного копіювання), щоб використовувати інший обліковий запис.

Мені також вважається зручним не мати ще одного пароля, щоб відстежувати, втрачати та йти на компрометацію. У RHEL я спеціально відключаю кореневий обліковий запис після налаштування sudo, тому мені не доведеться його відслідковувати. Один раз користувач b0rk файл sudo, але це можна виправити в режимі для одного користувача. (Природно, це зазвичай машина виробництва.)

ПРИМІТКА: 'sudo bash' дозволить вам пропустити введення sudo для кожної команди ...


Я завжди sudo mc: D
Роні

Єдина відповідь, яка заслуговує на голосування, чітко відповідає на це питання, не надаючи чіткого роз'яснення питання або введення людей в оману в помилковому розумінні інформації.
попіл

@flickerfly, я вважаю, що в разі "скидання пароля root для того самого користувача" "для цього ж користувача" слід видалити - це буде більш точним.
Richlv

@Richlv, ти маєш рацію. Я зробив запропоновані вами зміни. Не впевнений, що я там мав намір.
мерехтіння

2

Я думаю, що спочатку ми повинні розглянути, що насправді є судо

su - означає Замінника користувача. Ви використовуєте це для переключення на оболонку, як інший користувач, що використовує пароль цього користувача. Зазвичай використовується з коренем. Не вимагає пароля при виконанні як root.

sudo - дозволяє дозволеному користувачеві виконувати задану команду як інший користувач. Також часто використовується з коренем. Однак це дозволяє спеціально керувати тим, які команди можуть виконуватися в якості іншого використання. (Наприклад, ви можете дати користувачеві можливість запускати сценарій init.d, але нічого іншого.)

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

EDIT: тому, можливо, ця відповідь, яку ви шукаєте: відсутність пароля root змушує вас використовувати sudo, що, в свою чергу, природно узгоджує вас з sudoфілософією, яка пропонує вам посилити контроль над діями, що виконуються як root.


Я написав це сам ....
user606723

2

Крім того, між судо і су є також міркування щодо ведення журналів. Будучи су, просто робить все як root без жодного запису, окрім одного рядка в журналі auth, що говорить, що ви стали root.

Sudo з іншого боку - завжди отримує реєстрацію як ваш ідентифікатор користувача із збільшенням priveleesw.


0

Зазвичай вхід як su є простішим під час виконання адміністративних завдань. Однак є принаймні один виняток: коли питання власності на файли мають значення. Якщо вам потрібно, щоб користувач був власником файлу, тоді увійдіть як цей користувач і використовуйте sudo для завантаження або копіювання файлів. Прості приклади - файли закладок та шпалер. Якщо користувач не володіє файлом, закладки Firefox "Відновити" "З файлу" не вдасться. Під час встановлення шпалер на робочий стіл він може не працювати, якщо ви не володієте файлом. Іноді ви можете просто встановити привілеї або включити як виконуваний файл, але деякі налаштування чи програми виходять з ладу, якщо ви не є власником файлу.


Ви входите як root та використовуєте Firefox для перегляду веб-сторінок? Я думаю, це причина відключення кореневого облікового запису. Це виключає можливість простого входу в систему як корінь для щоденного використання.
adempewolff
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.