Come si rinomina root?


27

Non è una buona idea cambiarlo, ma per divertimento. Secondo questo messaggio, ci sono ancora alcuni problemi anche dopo la modifica delle voci in /etc/passwd, /etc/shadowe /etc/sudoers. Eventuali suggerimenti?


il nome dell'account "root"? la directory di livello superiore "/"?
Akira,

4
il nome utente root
yxkb

1
quindi chiarisci la tua domanda ...
Akira

7 anni dopo, mi chiedo se tu sia andato avanti con esso e che tipo di BadStuff sia successo a causa sua ... ^ _ ^
Mioriin

Risposte:


29

Teoricamente, cambiarlo in /etc/passwde /etc/shadowsarebbe tutto ciò che serve per "rinominare" root. Il problema si verifica perché praticamente ogni singolo pezzo di software Unix esistente presuppone che il nome utente 'root' esista e che sia il superutente - alias di posta, vari demoni, cron ...

Se sei davvero intenzionato a provarlo, find /etc -type f -exec grep -l root {} +dovrebbe essere un buon inizio per trovare un elenco di tutti i file di configurazione che probabilmente dovrai cambiare - ma come hai già detto, questa è una pessima idea in quasi ogni situazione immaginabile.

MODIFICA Un altro pensiero: se non lo hai già fatto (cosa che dovresti avere), assicurati che /etc/aliasescontenga una voce per roote un nome utente esistente o un indirizzo email che valuti correttamente. Molte attività automatizzate a livello di sistema ( cronad esempio) inviano il loro output via e-mail root, che è tradizionalmente aliasato dagli amministratori di sistema responsabili delle operazioni di quel sistema.


2
/ etc / group ha anche i nomi utente ...
vrdhn

Solo dei nomi utente quando il gruppo in questione non è il loro gruppo predefinito, ma un buon punto.
Shadur

3
è? ho pensato che la maggior parte delle app andasse per UID e non per il nome. Penso che idealmente, nessuna applicazione dovrebbe assumere "root = UID 0"
yxkb

2
@yxkb: hai ragione, nessuna applicazione dovrebbe supporlo . Ma mi piacerebbe davvero ricevere 1 $ per ogni applicazione o script che lo fa! :)
Bram,

1
Infatti. Pensiamo a tutte le volte che tutti abbiamo scritto personalmente chown root …o simili in uno script di shell.
derobert

24

Tutta questa paura mongering, dicendo "Non farlo!" è ridicolo. Una volta, sì, probabilmente ha rotto molti script scritti male, ma sospetto che quelli non siano più così comuni; almeno non nelle distribuzioni standard.

Ci è stato detto di rinominare l'account root su un sottoinsieme di server Linux. Quindi, dopo aver tentato di cercare come fare correttamente, ho invece trovato molti, molti post che dicevano "Non farlo!" con un sacco di avvertimenti terribili di "cose ​​cattive" che accadono se si sceglie di farlo. Ma devo ancora trovarne qualcuno con esempi concreti delle "cose ​​cattive" che potrebbero accadere.

Quindi, lasciami fare un passo indietro e spiegare dove sono e come siamo arrivati ​​qui. Stiamo creando un ambiente conforme a PCI e uno degli strumenti che ci aiuta a soddisfare tali "requisiti" ci sta dicendo che dobbiamo rinominare gli account root, amministratore e guest in qualcos'altro. Per quelli non istruiti su PCI, hai la possibilità di seguire le linee guida o documentare il motivo per cui non puoi o scegliere di non seguire quella linea guida e quale strategia di mitigazione devi tenere al sicuro i sistemi. Quindi, immagino che molti luoghi documentino perché non rinomineranno i loro account di root, tuttavia, il nostro gruppo ha deciso che, se riusciamo a rinominare gli account di amministratore di Windows senza problemi, rinomineremo anche gli account di root di Linux.

Sono ben versato negli argomenti "sicurezza attraverso l'oscurità"; So che cambiare il nome dell'account di root in realtà non migliora di molto la sicurezza, il root dovrebbe essere disabilitato su SSH, ecc. Lo so, non è questo il punto, non mi interessa saperne di più. Inoltre, non mi interessano più avvertimenti "il cielo cadrà". Sto cercando affermazioni come questa: "> questa cosa negativa <accadrà con> questo pacchetto standard <(a meno che tu non faccia questo <)".

Finora ho 3 sistemi CentOS (RHEL) che apparentemente non hanno problemi con la ridenominazione dell'account root. Ecco cosa ho fatto: ho cambiato il nome dell'account in / etc / passwd, / etc / shadow, / etc / group e / etc / gshadow. Quindi ha cercato il nome root in / etc / e ha modificato il file alias postfix in modo che root fosse un alias per il nostro nuovo nome account, chiamandolo rojotoro. (Qualcosa di simile dovrebbe essere fatto per altri sistemi di posta elettronica). Ho anche scoperto che dovevo cambiare alcune configurazioni per logrotate quando descrivevo chi avrebbe dovuto possedere i file che avrebbe creato automaticamente. E questo è stato tutto ciò che ho cambiato finora.

Ho esaminato molti script init.d, ma non ho cambiato nulla e tutto sembra iniziare bene all'avvio. Devo specificare il nuovo account quando utilizzo sudo: "sudo -u rojotoro vim / etc / passwd" come esempio, ma in realtà non ho bisogno di cambiare nulla all'interno del file sudoers. Mi aspettavo forse alcuni problemi con selinux che abbiamo e applicato, ma finora non ho avuto bisogno di toccare quel sistema.

Vedo anche che potrebbe essere necessario modificare gli script mkdev o mkfs, ma non ho intenzione di usarli, quindi non li ho guardati con il controllo che meritano.

Se è davvero così facile cambiare senza effetti negativi su un sistema abilitato selinux, perché la continuazione di tutta la paura?


11
Questa sarebbe una risposta piuttosto migliore se ritagliate i numerosi paragrafi dedicati a chiamare le persone ignoranti; non è proprio necessario
Michael Mrozek

3
Hai ragione, ma ci è voluto un po 'per ammetterlo. L'intenzione era quella di contribuire a garantire che gli altri avessero effettivamente esperienza con la modifica del nome utente di root prima di colpire l'idea, ma in realtà non era necessario.
5mi11er

3
Dato che sei su CentOS: puoi controllare cosa rpm -Vadice sui sistemi in cui l'account di root viene rinominato? Secondo la guida Maximum RPM "Gli identificativi utente e di gruppo devono essere non numerici", pertanto qualsiasi RPM che specifica i file deve essere di proprietà di root non sarebbe in grado di farlo al momento dell'installazione. Mi chiedo solo come i tuoi sistemi lo gestiranno.
Bram,

1
Dove in PCI dice che è necessario rinominare ROOT?
Kidburla,

@MichaelMrozek, Normalmente concordo che una risposta non dovrebbe avere retroscena come questa. Tuttavia, una ricerca su Internet per questo argomento è carica di così tanti degli avvertimenti esatti che OP impiega tre paragrafi a parlare, penso che sia richiesto in questo caso. Mi ha aiutato a inquadrare il suo paragrafo "How To" e mi ha facilitato di seguire sapendo che il contesto della sua soluzione è simile al mio.
user1717828,

7

suggerimento: non farlo.

Alcuni strumenti provano a parlare con root tramite uid, lì non dovresti avere problemi. alcuni strumenti presumono che il tuo account root sia chiamato root e si romperà. a meno che tu non sia disposto a ricompilare metà del tuo sistema "per divertimento", non provarci.


2
Non credo che nessuno stia contestando che rinominare root sia, nella migliore delle ipotesi, un'idea terribilmente negativa.
Shadur

kuhkatz, è solo una precauzione. se qualcuno lo fa, potrebbe essere utile ripristinarlo se sai cosa succede quando qualcuno cambia root
yxkb

l'articolo ti è venuto in mente l'idea che facendo ciò interrompe il login come root, come usando sudo. pertanto, l'unico modo per ripristinarlo sarebbe una reinstallazione pulita. pertanto, non è necessario provarlo, è ovviamente come ripristinarlo. inoltre, tieni un LART a portata di mano, nel caso in cui un tuo utente ci provi comunque.
kuhkatz,

A causa della ricompilazione ... gogo gentoo? Una patch in ogni Ebuild per dominarli tutti?
Bananguin

4

A mio avviso, la cosa più semplice da fare è creare un nuovo utente (alias), con UID 0 e /rootcome home.

Perché non commutare la shell predefinita della radice su /bin/falseo /sbin/nologin(quindi nessuno può accedere ad essa, ma il sistema la utilizza ancora) e accedere al nuovo alias creato?

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

Se cambi la shell di root in nologin, sudo, mail o ftw non saranno danneggiati.


Devo ammettere che @ 5mi11er non l'ho provato, ma se la shell di root è impostata su /bin/falseo /sbin/nologinnon sarebbe in grado di avviare alcun servizio. Quindi tutti questi dovrebbero essere riconfigurati. Inoltre, lo scopo era quello di migliorare la sicurezza, l'aggiunta di un secondo account con autorizzazioni "root" non migliora la sicurezza.
Bram,

Penso che questa soluzione sia la migliore finora, consente al nome di cercare uid per root e disabilita l'accesso per root. Potresti scambiare l'ordine delle linee in modo che root2 appaia prima di root, quindi whoami riporterà root2, cioè. la ricerca del nome si interrompe quando viene trovata la prima voce del comando. Non sono d'accordo sul fatto che i servizi non saranno in grado di avviarsi, dal momento che il kernel avvia un processo e gli dà uid 0 per configurare il sistema (init, upstart, ...)
X Tian,

2

Linux non è Windows e al momento non è possibile rinominare facilmente root senza creare problemi futuri sconosciuti.

Disabilitare l'accesso remoto e persino locale come root è un approccio più sicuro perché disabilita attivamente l'account root! UBUNTU essenzialmente fa questo e forza sudo invece dell'accesso root.

In sostanza nessuno può usare l'account di root per attaccare il tuo sistema poiché non può più essere usato per accedere al sistema!

Sarebbe bello se fosse stato creato un modo standard per modificare facilmente sia il nome dell'account root sia generare casualmente il suo UID al momento dell'installazione e, se possibile, ad ogni avvio a freddo per prevenire il targeting UID, ma al momento non esiste.

Regolazione / etc / passwd Modifica root: x: 0: 0: root: / root: / bin / nologin

Crea un unico account amministratore di fallback SOLO PER USO DI EMERGENZA! fallbackadmin: x: 0: 0: root: root /: / bin / bash

Implementa sudo per tutti gli amministratori in modo che sia possibile implementare il controllo del registro delle modifiche per tracciare con precisione chi apporta le modifiche per responsabilità!

Ciò implementa i requisiti PCI US Gov per disabilitare gli account admin / guest predefiniti e creare un singolo account admin per uso di emergenza.

Un modo per archiviare i registri per il controllo è quello di raccogliere la cronologia dei terminali da tutti gli utenti con accesso all'account sudo se AAA non è implementato.

Una soluzione per implementare account solo amministratore è quella di creare un account solo utente e un account abilitato sudo quindi forzare l'utente a fare il proprio account sudo abilitato per l'accesso amministrativo.

È inoltre possibile implementare l'autenticazione con smart card se si desidera una maggiore sicurezza, esistono soluzioni disponibili per GNU / Linux che sono paragonabili alle soluzioni CAC US Common Card per l'autenticazione a due fattori.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.