Come posso ottenere le autorizzazioni per modificare i file di configurazione del sistema?


47

Non riesco a modificare e salvare i file di configurazione nel sistema di root (ad esempio:) /etc/dhcp/dhcpd.config; dice solo "permesso negato" o l'opzione di salvataggio è bloccata nell'editor di testo.

Sono abbastanza sicuro di essere un utente root, ma come posso essere sicuro? Se sono un utente root, come posso risolvere questo problema?

Risposte:


42

Quale editor di testo stai usando? Se sei un utente root e conosci la password, prova (in un terminale):

  • sudoedit /etc/dhcp/dhcpd.configse stai usando un editor basato su terminali come nanoo stai lanciando un server.
  • gksudo <text editor here> /etc/dhcp/dhcpd.config se si utilizza un editor basato sulla GUI come gedit

In entrambi i casi, dovrai prima fornire la password di root quando richiesto.

In Ubuntu 14.04 in poi, gksudonon è installato di default. Dovrai installare il gksupacchetto (dal Software Center o via sudo apt-get install gksu) per ottenerlo.

In Ubuntu 17.10, Wayland è predefinito invece del tradizionale server X, ed è difficile eseguire editor grafici come root. Vedi Perché gksu / gksudo o l'avvio di un'applicazione grafica con sudo non funzionano con Wayland? per dettagli.

In Ubuntu 18.04, gksudonon è disponibile nei repository ufficiali. Utilizzare sudo -H <text editor>invece o il admin://protocollo :

gedit admin:///etc/dhcp/dhcpd.config

15

Se non si desidera utilizzare un terminale, è possibile richiamare un programma GUI come root (in questo esempio è per Gedit):

  1. Premi Alt+ F2per visualizzare la finestra di dialogo Esegui.
  2. Digitare gksudoseguito dal nome eseguibile del programma (che potrebbe essere diverso dal nome visualizzato dalla GUI). Per esempio:

    gksudo gedit
    
  3. Hit Enter.

10

Non riesco a pensare a un caso in cui sarebbe arrivato root permission denied.

In 12.04 puoi farlo in questo modo: alt+ f2ed entrare gksudonella casella che appare così:

Dialogo F2

Ottieni una casella come questa e inserisci gedite fai clic ok:

Digita gedit nella finestra di dialogo Esegui

Clicca Open:

Apri la scheda all'interno di gedit

Basta cercare il file:

aprire il dialogo dei file

Fatto

Avvertenza: esiste un superutente / root per un motivo. È così che non sbagli accidentalmente qualcosa di brutto o fuori dalla struttura in qualcosa di importante per errore. Dovresti essere estremamente attento che qualunque cosa modifichi come root sia il file corretto che intendi modificare E che la tua sintassi sia perfetta. Se sono disponibili altri strumenti per la modifica, si consiglia di utilizzarli. Ad esempio, utilizzare il visudo comando terminal invece di modificarlo manualmente /etc/sudoers.

Alcuni file che potrebbero incasinare sono facili da recuperare. Altri sono relativamente complicati o devi usare la console di ripristino e molte linee di comando.

Sì, la riga di comando della console di ripristino sembra un po 'più spaventosa di così . Solo stai attento.


Potrebbe essere necessario aggiornare questo per 13.04 e successivi. Alcune cose relative a gksu / gksudo sono cambiate (non sono sicuro se ciò si applica alla tua risposta o no).
Seth,

Comprendo che sudo ora esporta magicamente le variabili di ambiente DISPLAY e gksu / gksudo sono andati o se ne stanno andando. Non ho controllato però.
RobotHumans,

rootpuò essere negato il permesso se il file è stato impostato come immutabile usando chattro talvolta se il disco è di sola lettura.
Chai T. Rex,

6

È possibile verificare se la shell corrente è in esecuzione come root in diversi modi

~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)

Altre risposte offrono buoni modi per passare al privilegio di root, quindi non lo ripeterò. Supponendo che tu sia root e non riesci ancora a modificare il file /etc/dhcp/dhcpd.config- molto probabilmente qualcuno o qualche programma ha usato il chattrprogramma per rendere il file immutabile.

Dalla pagina di manuale di chattr :

Un file con l'attributo 'i' non può essere modificato: non può essere eliminato o rinominato, non è possibile creare alcun collegamento a questo file e nessun dato può essere scritto nel file. Solo il superutente o un processo che possiede la CAP_LINUX_IMMUTABLEcapacità può impostare o cancellare questo attributo.

Puoi scoprirlo usando lsattr

lsattr /etc/dhcp/dhcpd.config

Se davvero è immutabile, puoi disattivarlo in questo modo:

chattr -i /etc/dhcp/dhcpd.config

3

Se si utilizza Ubuntu 17.04 o versioni successive, si consiglia di utilizzare il backend di amministrazione gvfs . Aggiungi semplicemente admin://all'inizio del percorso file completo che desideri aprire in un'app come l' Editor di testo o le app File .

Ad esempio, per modificare le impostazioni di avvio, aprire

admin:///etc/default/grub

Se si utilizza Ubuntu 17.10 con Wayland predefinito sudoe , gksucome indicato nella risposta precedente, qui non funzionerà.


2

Usa il tuo editor di testo preferito

Puoi usare sudo -eo il suo alias sudoeditcon il tuo editor di testo preferito (grafico!) Attraverso la VISUALvariabile d'ambiente 1 :

VISUAL=gedit sudo -e /path/to/some-config-file.cfg

che equivale a

VISUAL=gedit sudoedit /path/to/some-config-file.cfg

Naturalmente è possibile utilizzare qualsiasi altro editor che ti piace, per esempio leafpad, kateo subl.

Alcuni editor offrono un'opzione da riga di comando per avviare sempre una nuova istanza, anche se è attualmente in esecuzione. Poiché sudoeditattende che il processo dell'editor termini per applicare le modifiche al file modificato, questo potrebbe essere necessario se si hanno altre istanze dello stesso editor in esecuzione:

  • Per uso GEdit VISUAL='gedit -s'.
  • Per l'uso di Kate VISUAL='kate -n'.

vantaggi

  • Non richiede applicazioni aggiuntive e / o deprecate.
  • Non richiede modifiche ai criteri di sicurezza come pkexec(per le quali è necessario modificare i file ... come superutente, la cosa esatta che questa risposta sta cercando di risolvere).
  • Non richiede l'esecuzione di applicazioni potenzialmente non sicure con privilegi elevati.
  • Utilizza la configurazione dell'applicazione dell'utente corrente ma confonde con le autorizzazioni di accesso al file di configurazione come sudo -Hecc.
  • Non ricade sui dati di configurazione dell'applicazione utente rootdell'utente che possono o meno apparire e comportarsi in modo accettabile.

svantaggi

  • Devi imparare un nuovo breve comando.

1 EDITOR o SUDO_EDITORanche lavorare ma hanno meno priorità o sono rispettivamente più specializzati. Vedere la pagina del manuale per i dettagli.


0

Per sicurezza cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup esegui il backup usando ed eseguigksu gedit /etc/dhcp/dhcpd.config

Sostituisci geditcon l'editor di tua scelta

riceverai un prompt come questo

richiesta password

Inserisci la tua password qui

Si apre una nuova finestra e qui puoi modificare la tua configurazione.

Se qualcosa va storto, puoi ripristinarlo dal tuo backup nella cartella home.

Ottieni "permesso negato" a causa di come Linux gestisce il permesso.

Qualsiasi cosa nella $HOMEcartella appartiene all'utente, mentre quasi ogni altra cosa appartiene a root.

Il /etc/dhcp/dhcpd.conffile a cui si sta tentando di accedere appartiene a root e la maggior parte dei file in /etc/appartiene a root per impostazione predefinita per motivi di sicurezza.

Puoi comunque modificare questo file aumentando le tue autorizzazioni.

Per fare ciò hai diversi modi:

  • uso suche sta per switch user. Senza alcun attributo ad esso, funziona come un comando per passare all'account root, ma è necessario inserire la password dell'utente a cui si sta passando, e poiché root non ha password per impostazione predefinita su Ubuntu (disabilitando efficacemente l'account root) , questo non funzionerà a meno che non sia stata impostata una password per root, che non è consigliata.

  • usando sudoquale eleva la tua autorizzazione per un solo comando. Questo è generalmente utilizzato solo per le app della riga di comando come editor di testo CLI come vim, nanoecc

  • usando gksuquale eleva la tua autorizzazione per un solo comando, ma a differenza sudoè usato per programmi grafici come editor di testo GUI come gedit. utilizza un prompt grafico per facilitare l'immissione di una password.


0
sudo < editor > < filelocation >

per esempio:

sudo -H gedit etc/dhcp/dhcpd.config
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.