Risposte:
Le due principali possibilità da riga di comando sono:
su
e immettere la password di root quando richiesto.sudo
davanti al comando e inserisci la tua password quando richiesto.Questo è il metodo preferito sulla maggior parte dei sistemi, inclusi Ubuntu, Linux Mint, (probabilmente) Debian e altri. Se non si conosce una password di root separata, utilizzare questo metodo.
Sudo richiede di digitare la propria password. (Lo scopo è limitare il danno se si lascia la tastiera incustodita e sbloccata, e anche per assicurarsi che si desideri davvero eseguire quel comando e che non fosse un errore di battitura.) È spesso configurato per non chiedere più minuti in modo da poter eseguire diversi sudo
comandi in successione.
Esempio:
sudo service apache restart
Se è necessario eseguire diversi comandi come root, aggiungere un prefisso a ciascuno di essi sudo
. A volte, è più conveniente eseguire una shell interattiva come root. Puoi usare sudo -i
per quello:
$ sudo -i
# command 1
# command 2
...
# exit
Invece di sudo -i
, puoi usare sudo -s
. La differenza è che -i
ri i nitializes l'ambiente di default sensati, mentre -s
usa i file di configurazione per il meglio o per il peggio.
Per ulteriori informazioni, consultare il sito Web sudo o digitare man sudo
sul sistema. Sudo è molto configurabile; ad esempio, può essere configurato per consentire a un determinato utente di eseguire solo determinati comandi come root. Leggi la sudoers
pagina man per maggiori informazioni; usare sudo visudo
per modificare il file sudoers.
Il su
comando esiste sulla maggior parte dei sistemi unix-like. Ti consente di eseguire un comando come un altro utente, a condizione che tu conosca la password dell'utente. Se eseguito senza l'utente specificato, su
verrà impostato automaticamente sull'account di root.
Esempio:
su -c 'service apache restart'
Il comando da eseguire deve essere passato utilizzando l' -c
opzione. Si noti che sono necessarie le virgolette in modo che il comando non venga analizzato dalla shell, ma passato intatto alla shell radice in su
esecuzione.
Per eseguire più comandi come root, è più conveniente avviare una shell interattiva.
$ su
# command 1
# command 2
...
# exit
Su alcuni sistemi, devi essere nel gruppo numero 0 (chiamato wheel
) per usare su
. (Il punto è limitare il danno se la password di root viene accidentalmente trapelata a qualcuno.)
Se è stata impostata una password di root e ne sei in possesso, puoi semplicemente digitare root
al prompt di accesso e inserire la password di root. Fai molta attenzione ed evita di eseguire applicazioni complesse come root in quanto potrebbero fare qualcosa che non volevi. Accedere direttamente come root è utile soprattutto in situazioni di emergenza, come guasti del disco o quando ti sei bloccato fuori dal tuo account.
La modalità utente singolo o livello di esecuzione 1 offre anche privilegi di root. Ciò è destinato principalmente a situazioni di manutenzione di emergenza in cui non è possibile eseguire l'avvio in un livello di esecuzione multiutente. È possibile avviare in modalità utente singolo passando single
o emergency
dalla riga di comando del kernel. Si noti che l'avvio in modalità utente singolo non equivale all'avvio normale del sistema e all'accesso come root. Piuttosto, il sistema avvierà solo i servizi definiti per il livello di esecuzione 1. In genere, si tratta del numero più piccolo di servizi richiesti per disporre di un sistema utilizzabile.
Si può anche arrivare a modalità utente singolo utilizzando il comando telinit: telinit 1
; tuttavia, questo comando richiede di avere già ottenuto i privilegi di root tramite qualche altro metodo per essere eseguito.
In molti sistemi l'avvio in modalità utente singolo consentirà all'utente di accedere a una shell di root senza richiedere una password. In particolare, systemd
quando si avvia in questo modo , i sistemi basati su di esso richiederanno la password di root.
Calife ti consente di eseguire comandi come un altro utente digitando la tua password, se autorizzata. È simile al sudo molto più diffuso (vedi sopra). Calife è più leggero del sudo ma anche meno configurabile.
Op ti consente di eseguire comandi come un altro utente, incluso root. Questo non è uno strumento completo per eseguire comandi arbitrari: si digita op
seguito da un mnemonico configurato dall'amministratore di sistema per eseguire un comando specifico.
Super ti consente di eseguire comandi come un altro utente, incluso root. Il comando deve essere stato autorizzato dall'amministratore di sistema.
Vedi anche Wikipedia .
È sufficiente aggiungere il comando desiderato al comando desiderato pkexec
. Tieni presente che mentre funziona nella maggior parte dei casi, non funziona universalmente.
Vedi man pkexec
per maggiori informazioni.
kdesu
e kdesudo
sono front-end grafici rispettivamente a su
e sudo
. Ti consentono di eseguire i programmi X Window come root senza problemi. Fanno parte di KDE . genere
kdesu -c 'command --option argument'
e inserisci la password di root o digita
kdesudo -c 'command --option argument'
e inserisci la tua password (se autorizzata all'esecuzione sudo
). Se selezioni l'opzione "Mantieni password" in KdeSu, dovrai digitare la password di root solo una volta per sessione di accesso.
Ktsuss ("keep the su simple, stupid") è una versione grafica di su.
BeesuBeesu è un front-end grafico al comando su che ha sostituito Gksu nei sistemi operativi basati su Red Hat. È stato sviluppato principalmente per RHEL e Fedora.
gksu
e gksudo
gksu
e gksudo
sono front-end grafici rispettivamente a su
e sudo
. Ti consentono di eseguire i programmi X Window come root senza problemi. Fanno parte di Gnome . genere
gksu command --option argument
e inserisci la password di root o digita
gksudo command --option argument
e inserisci la tua password (se autorizzata all'esecuzione sudo
).
gksu
e gksudo
sono obsoleti. Sono stati sostituiti da PolicyKit in GNOME e molte distribuzioni (come Ubuntu) non le installano più per impostazione predefinita. Non dovresti dipendere dal fatto che siano disponibili o funzionino correttamente.
Utilizzare uno dei metodi nella "esecuzione di un comando shell come sezione radice". Dovrai assicurarti che né la DISPLAY
variabile di ambiente né l' XAUTHORITY
ambiente vengano ripristinati durante la transizione a root. Ciò potrebbe richiedere una configurazione aggiuntiva di quei metodi che non rientrano nell'ambito di questa domanda.
Nel complesso, questa è una cattiva idea, soprattutto perché le applicazioni grafiche leggeranno e scriveranno i file di configurazione come root e quando si tenta di riutilizzare quelle applicazioni come normali utenti, tali applicazioni non avranno l'autorizzazione a leggere le proprie configurazioni.
sudo
funzionerà solo se (1) è installato e (2) se il tuo uso è nel file sudoers e ha permesso di eseguire l'operazione.
pkexec
sta sostituendo gksu
/ gksudo
in molte distribuzioni al giorno d'oggi.
Utilizzare su
:
$ su -c command
o
$ su
# command
# exit
In entrambi i casi, ti verrà richiesta la root
password. Per ulteriori informazioni, consultare la pagina del manuale .
Poiché la domanda non era specifica di Linux, ecco come raggiungere lo stesso obiettivo in Solaris 9+ (o Trusted Solaris 8):
Solaris, dalla versione 9, include una suite di strumenti affettuosamente denominati RBAC, o controllo degli accessi in base al ruolo.
L'essenza di RBAC è che attraverso la concessione di autorizzazioni e diritti, agli utenti e / o al ruolo, o la concessione di ruoli agli utenti, è possibile creare modelli incredibilmente dettagliati per chi può eseguire ciò con quali privilegi.
In sostanza, identifichi l'autorizzazione in / etc / security / auth_attr, quindi li concedi agli utenti o ai ruoli in / etc / user_attr.
I profili vengono definiti in / etc / security / prof_attr. Quindi si associano i comandi a tali profili in / etc / security / exec_attr, seguito dall'assegnazione di tali profili agli utenti nel file / etc / user_attr.
Una volta che queste cose sono fatte, si esegue effettivamente pfexec <command>
eseguire il comando con privilegiati o autorizzazioni che vengono concesse a quella dell'utente per quel comando.
La cosa bella di RBAC è che non ci sono privilegi aggiuntivi concessi al comando stesso, o all'utente, solo alla combinazione di utente + comando. Quindi è più sicuro che fare un binario + s, o semplicemente usare sudo per rendere un utente in grado di eseguire praticamente qualsiasi cosa. (So che puoi bloccare sudo, ma nella mia esperienza la maggior parte delle persone non lo fa)
Un altro vantaggio di RBAC è che puoi rendere root un account di ruolo e assegnare quel ruolo agli utenti che sono in grado di diventare root con il comando 'su' e la password di root. L'utente root sarà anche in grado di accedere in modalità utente singolo, che è migliore (a mio avviso) rispetto al modello Linux in cui è possibile disabilitare la password di root passwd -d root
o bloccare l'account di root passwd -l root
, entrambi i quali rendono l'accesso come root abbastanza difficile quando qualcosa va storto.
Ben Rockwood ha un ottimo post sul blog su RBAC che può essere letto su Uso di RBAC su (Apri) Solaris .
Oppure puoi dare ad alcuni comandi una superpotenza. Sto parlando di autorizzazioni speciali in cui i comandi vengono eseguiti con l'autorizzazione del proprietario.
Ottieni il percorso del comando #which <command>
e imposta SUID o SGID per quel percorso.
PS - I bit SUID e SGID devono essere dati con cura. Possono rendere insicuro il tuo sistema.