Чому простий пароль користувача дозволяє керувати доступом до Ubuntu?


1

У мене є клієнт, який я налаштував на машині linux. Він не дуже технічно підкований, і, очевидно, просто потрібен простий пароль для входу на Ubuntu. Його ім’я користувача та пароль на зразок:

user: John
password: GoodDeals

З іншого боку, кореневий пароль на машині є набагато складнішим, і до нього потрібно мати доступ.

Але коли я використовую команду:

sudo su -

Ubuntu запрошує простий пароль Джона, а потім надає root доступ до всієї машини.

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

Це поведінка?

Чому знання пароля облікового запису користувача автоматично надає вам кореневий доступ?


2
Можна налаштувати, які користувачі / групи можуть використовувати sudo і які coomands вони можуть виконувати з sudo.
Tom Yan

Чи має root бути в групі sudo? Я зрозумів, що потрібно видалити Джона з sudo, але root не є там. Чи повинно бути?
some1

1
За замовчуванням /etc/sudoer має рядок для root.
Tom Yan

Обов'язково xkcd.com/1200
grawity

Відповіді:


4

За промовчанням дистрибутив Linux Ubuntu поставляється з відключенням кореневого входу, а кореневий пароль вимикається, тому для підвищення його рівня привілеїв користувачеві необхідно запускати команди sudo, і це дозволено тільки тоді, коли користувач є судовер (має свій запис у sudoers файлу), що є наступним для короткого:

Члени адміністративної групи можуть отримати привілеї root

%admin  ALL=(ALL) ALL

Дозволити членам групи sudo виконувати будь-яку команду

%sudo   ALL=(ALL:ALL) ALL

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

root            ALL = (ALL) ALL
%wheel          ALL = (ALL) ALL

Повний робочий час системи може працювати на будь-якій машині без пароля

FULLTIMERS      ALL = NOPASSWD: ALL

Частини системних адміністраторів можуть працювати будь-що, окрім пароля

PARTTIMERS      ALL = ALL

І команда, яку ви виконуєте, це

sudo /sbin/su -

які, коли пробігають sudo користувач, не запитуватиме пароль (пароль пароля sudo не пароль root), якщо RootSudoTimeout не стався, щоб обмежити це

john may su тільки оператору

john        ALL = /usr/bin/su operator

john may su нікому, крім коренів і прапорів, заборонено

john        ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

2

Знання пароля облікового запису користувача не надає кореневого доступу автоматично. Судо призначений для кореневого доступу для привілейованих користувачів, таких як ваш Джон, використовуючи пароль користувача, протилежний su , які потребують пароль root для виконання будь-якої команди. Покажіть вихід id Команда для Івана. Я вважаю, що ви встановили Ubuntu з цим іменем користувача, так що Джон є у групі sudo за замовчуванням.


"За замовчуванням Джон у групі sudo." - добре знати, як це сталося.
some1

2

Вияснив, що Джон був у групі sudo, коли він не повинен бути. Вилучено Джона з sudo за допомогою цієї команди:

gpasswd -d john sudo

І це вирішило проблему. Якщо він намагається ескалювати привілеї, тепер він не може.


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