Оскільки Ubuntu за замовчуванням відключає кореневий обліковий запис, чому б також не відключити доступ до кореневої оболонки?


12

Поточні значення по замовчуванням для облікового запису суперкористувача в /etc/passwdIS root:x:0:0:root:/root:/bin/bash.

Чому б не встановити його root:x:0:0:root:/root:/usr/sbin/nologin?


7
Так що ти можеш зробити sudo -i?
AlexP

12
"вимкнення кореневого облікового запису" - це трохи
нескінченний

1
@AlexP насправді я тільки тестував це, sudo -i не працює з коренем, встановленим на / usr / sbin / nologin.
loongyh

Відповіді:


19

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

Зокрема, ви не могли бігати sudo -i, як зазначив AlexP. Від man sudo:

-i, --login    Run the shell specified by the target user's password database entry as a login shell.

7
Не sudo /bin/bashпрацює це зробити?
Федеріко Полоні

5
@FedericoPoloni, це було б більше, як sudo -sя думаю (коренева оболонка, але не оболонка кореневого входу ). Хоча це добре, але, sudo -sздається, працює навіть тоді, коли оболонка кореня/usr/sbin/nologin
steeldriver

1
Можна відключити -i, -s, /bin/bashі так далі, просто дозволяючи білий список команд, дивіться документацію для файлу sudoers. Це настільки дрібнозернисте, що, наприклад, можна дозволити користувачам запускати /etc/init.d/someservice restartяк root, не дозволяючи їм запускатись /etc/init.d/someservice stop. Але за замовчуванням ubuntu - це просто встановити пароль rootі дозволити користувачам адміністратора робити все з sudo. Можливо, це обгрунтування: а) більше одного користувача адміністратора; б) користувачеві адміністратора не потрібно запам'ятати другий пароль для кореневого облікового запису.
Алло

8

Крім відповіді Судо Альберто Сантіні, є ще одна (набагато краща) відповідь. Якщо оболонку root встановлено на щось, що не є оболонкою, завантаження одного користувача не працює. Існує відновлення suloginдля таких речей, як неіснуюча оболонка або повністю зламана оболонка, але вона не працюватиме, якщо оболонка виявиться дійсною оболонкою, але насправді не оболонкою.

Ви все ще можете sudoбезпосередньо отримати оболонку, вказавши оболонку, щоб sudoце навіть не було гарним захистом.

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