Які фактичні переваги привласнення привілеїв sudo користувачеві замість використання root?


25

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

Якщо новостворений користувач може виконувати ті самі функції, що і користувач root, яка ж насправді користь від цього?


7
Судоер не може зробити все, що може, root, лише те, що корінь дозволяє судурам судо, і судур все ще повинен судо командувати. Нарешті, sudoers sudo - це власний обліковий запис користувача, по-перше, це означає, що вони не повинні входити як root, а по-друге, дозволяючи вам бачити, хто щось спіткнувся.
KeithS

Відповіді:


48

Існує декілька переваг використання sudoнад передачею кореневого пароля. Ні в якому конкретному порядку:

  • Ви не видаєте свій корінний пароль.
    Як правило, якщо хтось покидає вашу компанію, і він знав корінтові паролі, тепер вам доведеться змінити ці паролі скрізь. При правильному управлінні конфігурацією це незначне роздратування. Без цього це величезна робота.

  • Ви не роздаєте ключі від королівства,
    sudo ви можете вказати список обмежених команд, які користувачі можуть виконувати, тому якщо ви вирішите, що Алісі потрібна лише можливість зупинки та запуску Apache, але Боб потребує повних прав root, які ви можете встановити їх відповідно.

  • Ви можете керувати авторизацією, що sudo підтримує централізовану конфігурацію LDAP, а це означає, що кожна система вашої компанії може переглянути центральний сервер LDAP, щоб визначити, хто може робити що.
    Потрібно когось уповноважувати (або скасовувати)? Змініть конфігурацію sudoers в LDAP і всі ваші системи оновлюються одразу.

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

  • sudoдобре для більш , ніж просто корінь Everyone концентратів на sudoяк спосіб зробити речі , як су peruser, але це не все це добре для.
    Скажімо, Аліса відповідає за конкретну збірку програмного забезпечення, але Боб також повинен мати можливість запускати сценарій збірки. Ви можете дати Бобу запис у судорах, що дозволяє йому запускати сценарій збирання як користувач Аліси. (Так, звичайно, є набагато кращі способи вирішення цього конкретного випадку, але принцип Let user A run a program as user Bможе бути корисним ...).
    Ви також отримуєте ті самі переваги аудиторської перевірки, про які я згадував вище, коли ви це робите ...


1
Дуже корисна відповідь - якщо я знаю (і маю на увазі зі 100% впевненістю), що я буду єдиним, хто керує єдиним сервером, проте чи бачите ви багато користі у призначенні привілеїв sudo іншому користувачеві (який би я був у будь-якому випадку) за межами того, щоб заважати собі щось викрутити?
JM4

3
@ JM4 Послідовність і хороша практика на один день у майбутньому, коли ви працюєте в більш широких умовах. З практичної точки зору, ви ніколи не повинні входити безпосередньо в систему як корінь, якщо ви не знаходитесь на фізичній консолі, фіксуючи щось, що має королівський шланг, тому, sudoнавпаки su, це академічна відмінність - вам доведеться стрибати через один або інший обруч. Використання sudoпропонує вам можливість реалізувати принцип найменшої пільги (мій останній пункт), де це практично, і це завжди є над чим серйозно задуматися.
voretaq7

2
Крім того, використовуйте visudo для редагування файлу sudoers.
Джастін Діргінг

3
Зауважте, що багато інтерактивних команд дозволять користувачам обходити слід аудиту. Наприклад, будь-який користувач, який sudo viможе :! bashодин раз всередині vi.
Дітріх Епп

4
@DietrichEpp NOEXECТег допомагає в цьому випадку.
Шейн Медден

17

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

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

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


1
Дякую за твою допомогу. Я бачу вигоду з вашої точки зору, але я також дійсно дивився на основного користувача до root користувача, як на подвійну точку автентифікації, якщо я відключив вхід користувача root від ssh на своєму сервері.
JM4

4

Крім наведених відповідей, які є дійсними, не забувайте, що користувач, зареєстрований як root, потенційно може порушити систему при кожній команді. Якщо ви змусите їх набрати судо перед тим, як зробити щось потенційно небезпечне, ви принаймні даєте їм знати, що їм потрібно двічі перевірити, перш ніж виконувати певну команду.


2

Так, справді - з точки зору управління та ведення журналу судо набагато краще.

Наприклад - якщо ви є єдиною подією, захопленою в журналах, ви судите. Все після цього йде як корінь. І якщо ви коли-небудь переглядали журнали в Unix / Linux, то знаєте, що root виконує велику кількість матеріалів.

Судо, з іншого боку, реєструє майже все як початковий користувач.


0

Використання sudo шкідливому користувачеві ускладнює доступ до системи. Коли є розблокований кореневий обліковий запис, зловмисний користувач знає ім’я користувача облікового запису, який вона хоче зламати, перш ніж запустити. Коли кореневий обліковий запис заблоковано, користувач повинен визначити ім’я користувача та пароль, щоб перерватися в систему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.