Cambia directory usando sudo


22

Come posso cambiare in una directory di proprietà di root?

Se lo faccio: sudo cd RootOwedDir

Ottengo: sudo cd: command not found

Se io su root

Ottengo:, authentication failureprobabilmente perché non ho mai creato un vero account root.

Cosa sto facendo di sbagliato qui?


Riassumendo: sia "sudo su" che "sudo sh -sc" cd dir_path "di cYrus (notate il parm delle aggiunte) hanno risolto il problema. Grazie a tutti per il loro aiuto.
Utente google sconosciuto

Risposte:


20

Prova invece a utilizzare sudo -sper avviare una shell di root e quindi semplicemente cdnella directory.
Quando hai finito come root, premi CtrlDo digita exit.

È importante notare che come root si può facilmente danneggiare i componenti essenziali del sistema. Usare con cura!


5

Questo perché cdnon è un comando ma una funzione di shell integrata; e si suaspetta la password di root. Usa semplicemente:

sudo su

per eseguire una shell con i privilegi di root. Digita exito premi Ctrl+ Dper tornare alla shell precedente quando hai finito.


2
sudo suè inutilmente complicato. sudo -sfa sudo avviare una shell; oppure puoi correre sudo basho sudo zshse non vuoi ricordare l' -sopzione.
Gilles 'SO- smetti di essere cattivo' l'

3
sudo sh -c "cd dir_path"

Questo non funziona neanche per me. Potrebbe essere perché la directory che voglio inserire ha spazi incorporati nel nome. Ho provato le varianti su sudo sh -c "cd my \ path" senza fortuna. Nessun messaggio di errore ritorna come se avesse fatto qualcosa, ma rimango nella stessa directory. sh è installato sul mio sistema anche se normalmente utilizzo bash.
utente google sconosciuto l'

@unknown - Ho sempre pensato che avresti dovuto spawnare una subshell per far girare i builtin della shell come root, sia in bash che semplicemente in vecchio sh. Sono determinato a capirlo.
Wesley Rice,

L'aggiunta dell'opzione -s lungo -c ha fatto il trucco. Grazie per lo sforzo.
utente google sconosciuto

1

Puoi anche fare un sudo vimsulla cartella, cioè sudo vim RootOwedDire mostrerà la vista vim per le cartelle, che mostrerà tutti i file / cartelle che si trovano in quella cartella. quindi puoi semplicemente eseguire ciò che ti serve dall'esterno della cartella e eseguirlo come al solito.


0

su -quindi digitare la password. Ora puoi semplicemente cd nella directory. Ricorda che ora sei root, quindi ctrl-d prima di fare qualsiasi cosa per cui non vuoi essere root.


Ciò produce un errore di autenticazione su Ubuntu.
Wesley Rice,

Veramente? Non ho mai avuto problemi per me.
Nofundednut,

2
Per OP sarebbe certamente, dato che non ha un account root adeguato.
Wesley Rice,

Interessante, sono su una nuova installazione di Ubuntu, non ho mai "configurato" un utente root ma posso semplicemente sudo -e bam sono il dio del sistema.
Nofundednut,

Sì, ho appena ricevuto un errore di autenticazione.
utente google sconosciuto l'

0

Per me una combinazione di sudoed screenelaborato:

sudo -iu vagrant screen -mS npm_install bash -c 'cd /vagrant && npm install'

Questo comando passa prima vagrantall'utente. Quindi come vagrantcambia la directory in /vagranted esegue npm install.


-2

Il modo più semplice per farlo è abilitare l'account root e usare su per diventare root. Ubuntu è molto protettivo nei confronti dell'account root a causa del potenziale uso improprio, ma a volte è molto più semplice utilizzare l'account root piuttosto che sudo su ogni linea. Basta essere consapevoli dell'account che si sta utilizzando in un determinato momento.

Tratto da qui :

Apri il terminale e digita: sudo passwd root . Quando viene visualizzato il messaggio "Inserisci nuova password UNIX" , immettere la password desiderata per l'utente root e confermarla.

A questo punto, sarai in grado di passare a root usando su e cd nella directory.


-1. Questo è pieno di torto. Cosa c'entra GDM con qualcosa? OP vuole "cd" su una directory leggibile solo da root. Nessuno dovrebbe mai accedere come root tramite GDM.
Wesley Rice,

Buon punto. Non ho letto completamente cosa stavo incollando lì.
zcid,

Molto più facile di questo è abilitare una shell root con sudo -s come altri hanno già detto, e molto meglio di questo è imparare su sudo, uno strumento molto più flessibile e granulare di su, se ben usato.
Adriano Varoli Piazza
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.