Як перейменувати корінь?


27

Не те, що це дуже гарна ідея змінити це, але заради розваги. Згідно цього повідомленням, все ще є деякі проблеми , навіть після зміни запису в /etc/passwd, /etc/shadowі /etc/sudoers. Будь-які пропозиції?


назва рахунку "корінь"? каталог верхнього рівня "/"?
акіра

4
ім'я користувача root
yxkb

1
то, будь ласка, уточнюйте своє запитання ...
akira

Через 7 років мені цікаво, чи ви продовжували це, і який BadStuff стався через нього ... ^ _ ^
Mioriin

Відповіді:


29

Теоретично, змінити його в /etc/passwdі /etc/shadowбуде все, що вам потрібно, щоб "перейменувати" корінь. Проблема виникає через те, що майже кожен фрагмент програмного забезпечення Unix припускає, що "root" імені користувача існує і що це суперпользователь - псевдоніми пошти, різні демони, крон ...

Якщо ви насправді пекла, спробували це спробувати, find /etc -type f -exec grep -l root {} +слід добре почати з пошуку списку кожного конфігураційного файлу, який вам, мабуть, потрібно буде змінити - але, як ви вже говорили, це справді погана ідея майже в кожній можливій ситуації.

РЕДАКТИРУЙТЕ Ще одна думка - якщо ви ще цього не зробили (що у вас повинно бути), переконайтеся, що вона /etc/aliasesмістить запис rootі ім’я користувача, яке існує, або адресу електронної пошти, яка правильно оцінює. Багато автоматизованих загальносистемних завдань ( cronнаприклад) надсилають свої результати електронною поштою root, що, як правило, надається системному адміністратору, відповідальному за діяльність цієї системи.


2
/ etc / group також має імена користувачів ...
vrdhn

Тільки імен користувачів, коли група, про яку йдеться, не є їхньою групою за замовчуванням, але хороша думка.
Шадур

3
є це? я думав, що більшість програм призначені для UID, а не name.I ідеально вважати, жодна програма не повинна припускати "root = UID 0"
yxkb

2
@yxkb: Ви маєте рацію, жодна програма не повинна цього вважати. Але я дуже хотів би отримати 1 $ за кожну програму чи сценарій! :)
Брам

1
Справді. Давайте подумаємо про всі часи, які ми всі особисто писали chown root …чи подібні у сценарії оболонки.
дероберт

24

Весь цей страх надихався, кажучи: "Не роби цього!" смішно. Свого часу, так, це, ймовірно, зламало багато погано написаних сценаріїв, але я підозрюю, що вони вже не такі поширені; принаймні, не в стандартних дистрибутивах.

Нам сказали перейменувати кореневий обліковий запис на підмножині серверів Linux. Отож, намагаючись дослідити, як правильно робити це, я натомість знайшов багато-багато постів, які говорили "Не робіть цього!" з безліччю гострих попереджень про "погані речі", що трапляються, якщо ви вирішите це зробити. Але я ще не міг знайти конкретних прикладів "поганих речей", які можуть статися.

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

Я добре розбираюся в аргументах "безпека через незрозумілість"; Я знаю, що лише зміна імені кореневого акаунта насправді не покращує безпеку на багато, корінь повинен бути відключений у SSH тощо. Мені також не цікаво більше попереджень "небо впаде". Я шукаю такі твердження: "> ця погана річ <станеться з> цим стандартним пакетом <(якщо ви не> зробите це <)".

Поки що у мене є 3 системи CentOS (RHEL), які, мабуть, не мають проблем з перейменуванням кореневого акаунта. Ось що я зробив: я змінив ім’я облікового запису в / etc / passwd, / etc / shadow, / etc / group та / etc / gshadow. Потім перехопили корінь імені в / etc / і змінили файл псевдонімів постфікса так, щоб корінь був псевдонімом нашої нової назви облікового запису, називайте його rojotoro. (Щось подібне слід зробити для інших систем електронної пошти). Я також виявив, що мені потрібно змінити деякі конфігурації для логротету, описуючи, хто повинен володіти файлами, які він створював би автоматично. І це було все, що я змінив досі.

Я переглянув багато сценаріїв init.d, але нічого не змінив, і, здається, все починається чудово при завантаженні. Я повинен вказати новий обліковий запис при використанні sudo: "sudo -u rojotoro vim / etc / passwd" як приклад, але мені насправді нічого не потрібно змінювати у файлі sudoers. Я очікував, що, можливо, деякі проблеми із selinux, які ми маємо та застосовуємо, але поки що мені не потрібно було торкатися цієї системи.

Я також бачу, що сценарії mkdev або mkfs, можливо, потрібно буде коригувати, але я не планую їх використовувати, тому я не розглядав їх із уважною увагою, яку вони заслуговують.

Якщо насправді це легко змінити без жодних негативних наслідків для системи з підтримкою selinux, навіщо продовжувати весь страх?


11
Це було б досить кращою відповіддю, якщо вирізати кілька абзаців, присвячених заклику людей до невігласу; це насправді не потрібно
Майкл Мрозек

3
Ти маєш рацію, але мені знадобилося певний час, щоб визнати це. Її метою було допомогти переконатися, що інші мали фактичний досвід із зміною кореневого імені користувача, перш ніж просто розбити ідею, але це насправді не було потрібно.
5mi11er

3
Оскільки ви перебуваєте на CentOS: чи можете ви перевірити, що rpm -Vaсказано в системах, де кореневий рахунок перейменовано? Відповідно до посібника з максимальної RPM "Ідентифікатори користувача та групи повинні бути нечисловими", тому будь-який RPM, який визначає файли, повинен бути власником root, не міг би зробити це під час встановлення. Цікаво, як ваші системи з цим впораються.
Брам

1
Де в PCI написано, що вам потрібно перейменувати ROOT?
Kidburla

@MichaelMrozek, Зазвичай я б погодився, що відповідь не повинна мати подібних історій. Однак пошук цієї теми в Інтернеті навантажений такою кількістю точних застережень. ОП витрачає три абзаци, я думаю, що це вимагається в цьому випадку. Це допомогло створити його абзац "Як" і полегшило мені слідувати, знаючи, що контекст його рішення схожий на мій власний.
користувач1717828

7

пропозиція: не робіть цього.

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


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

kuhkatz, це лише запобіжна норма. якщо хтось це зробить, це може допомогти відновити його, якщо ви знаєте, що станеться, коли хтось змінить root
yxkb

У статті ви отримали цю ідею з приміток про те, що виконуючи це, він порушує логін як корінь, як використання sudo. отже, ви лише способом повернути це було б чистою перевстановленням. отже, вам не доведеться пробувати це, очевидно, як відновити його. також майте під рукою LART, на всякий випадок, якщо користувач все-таки спробує.
kuhkatz

За рахунок перекомпіляції ... gogo gentoo? Один патч у кожен Ebuild, щоб керувати ними всіма?
Bananguin

4

На мій погляд, найпростіше зробити це створити нового користувача (псевдонім), з UID 0 і /rootяк домашній.

Чому б вам не переключити оболонку за замовчуванням вашого root на /bin/falseабо /sbin/nologin(щоб ніхто не міг увійти до неї, але система все одно використовує її) та увійдіть у новий створений псевдонім?

razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root

Якщо змінити оболонку кореня на нологін, судо, пошта або ftw не будуть пошкоджені.


Звичайно, як @ 5mi11er вказував, я цього не пробував, але якщо встановлено оболонку root /bin/falseабо /sbin/nologinвін не зміг би запустити будь-які послуги. Тому все це доведеться переналаштувати. Крім того, цілью було підвищення безпеки, додавання другого облікового запису з дозволом "root" навряд чи покращує безпеку.
Брам

Я думаю, що це рішення є найкращим на даний момент, воно дозволяє ім'ям uid пошуку для root та вимикає логін для root. Ви можете поміняти порядок рядків, щоб root2 з'явився перед root, тоді whoami повідомить root2, тобто. пошук uid для імені припиняється, коли перший запис uid збігається. Я не погоджуюся, що служби не вдасться запустити, оскільки ядро ​​запускає процес і дає йому uid 0 для установки системи (init, upstart, ...)
X Tian

2

Linux не є Windows, і root зараз не можна легко перейменувати без створення невідомих майбутніх проблем.

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

По суті, ніхто не може використовувати кореневий рахунок для атаки на вашу систему, оскільки він більше не може використовуватися для входу в систему!

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

Налаштування / etc / passwd Змінення кореня: x: 0: 0: root: / root: / bin / nologin

Створіть єдиний резервний обліковий запис адміністратора для ВИКОРИСТАННЯ АВАРІЙНОГО ВИКОРИСТАННЯ! dropbackadmin: x: 0: 0: root: / root: / bin / bash

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

Це реалізує вимоги PCI US Gov, щоб вимкнути облікові записи адміністратора / гостя за замовчуванням та створити єдиний обліковий запис адміністратора.

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

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

Ви можете також реалізувати автентифікацію смарт-карт, якщо хочете покращити безпеку. Для GNU / Linux доступні рішення, які порівняно з рішеннями CAC загального доступу до карт CAC для двофакторної автентифікації.

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