Changer de répertoire avec sudo


22

Comment changer en un répertoire appartenant à root?

Si je fais: sudo cd RootOwedDir

Je reçois: sudo cd: command not found

Si je su root

J'obtiens:, authentication failureprobablement parce que je n'ai jamais vraiment créé de compte root.

Qu'est-ce que je fais mal ici?


Pour résumer: les deux "sudo su" et "sudo sh -sc" cd dir_path "de cYrus (notez le parm des ajouts) ont résolu le problème. Merci à tous pour leur aide.
utilisateur google inconnu

Réponses:


20

Au lieu de cela, essayez d'utiliser sudo -spour démarrer un shell racine, puis simplement cddans le répertoire.
Lorsque vous avez terminé en tant que root, appuyez sur CtrlDou tapez exit.

Il est important de noter qu'en tant que root, on peut facilement endommager les composants essentiels du système. À utiliser avec précaution!


5

C'est parce que ce cdn'est pas une commande mais une fonction shell intégrée; et suattend le mot de passe root. Utilisez simplement:

sudo su

pour exécuter un shell avec des privilèges root. Tapez exitou appuyez sur Ctrl+ Dpour revenir au shell précédent lorsque vous avez terminé.


2
sudo suest inutilement compliqué. sudo -sfait démarrer sudo un shell; ou vous pouvez exécuter sudo bashou sudo zshsi vous ne voulez pas avoir à retenir l' -soption.
Gilles 'SO- arrête d'être méchant'

3
sudo sh -c "cd dir_path"

Cela ne fonctionne pas non plus pour moi. C'est peut-être parce que le répertoire dans lequel je veux entrer a des espaces intégrés dans le nom. J'ai essayé des variantes de sudo sh -c "cd my \ path" sans succès. Aucun message d'erreur, il revient juste comme s'il avait fait quelque chose mais je reste dans le même répertoire. sh est installé sur mon système bien que j'utilise normalement bash.
utilisateur google inconnu

@unknown - J'ai toujours pensé que vous auriez à générer un sous-shell pour exécuter les commandes internes de shell en tant que root, que ce soit en bash ou en sh simple. Je suis déterminé à comprendre cela.
Wesley Rice du

L'ajout de l'option -s avec -c a fait l'affaire. Merci pour l'effort.
utilisateur google inconnu

1

Vous pouvez également faire un sudo vimsur le dossier, c'est-à sudo vim RootOwedDir- dire et il affichera la vue vim pour les dossiers, qui montrera tous les fichiers / dossiers qui se trouvent dans ce dossier. alors vous pouvez simplement exécuter ce dont vous avez besoin depuis l'extérieur du dossier et le créer comme d'habitude.


0

su -puis saisissez votre mot de passe. Vous pouvez maintenant simplement cd dans le répertoire. N'oubliez pas que vous êtes maintenant root, donc ctrl-d avant de faire tout ce pour quoi vous ne voulez pas être root.


Cela produit une erreur d'authentification sur Ubuntu.
Wesley Rice du

Vraiment? Je n'ai jamais eu de problème pour moi.
Undundednut

2
Pour OP, ce serait certainement le cas, car il n'a pas de compte root approprié.
Wesley Rice du

Intéressant, je suis sur une nouvelle installation d'Ubuntu, je n'ai jamais "configuré" un utilisateur root mais je peux simplement sudo -et bam je suis le dieu du système.
Undundednut

Ouais, je reçois juste une erreur d'authentification.
utilisateur google inconnu

0

Pour moi, une combinaison de sudoet screentravaillé:

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

Cette commande passe d'abord à l' vagrantutilisateur. Puis comme vagrantchange le répertoire /vagrantet s'exécute npm install.


-2

La façon la plus simple de le faire est d'activer le compte root et d'utiliser su pour devenir root. Ubuntu est très protecteur du compte root en raison du potentiel d'utilisation abusive, mais parfois, il est beaucoup plus facile d'utiliser le compte root plutôt que sudo sur chaque ligne. Sachez simplement quel compte vous utilisez à tout moment.

Extrait d' ici :

Ouvrez le terminal et tapez: sudo passwd root . Lorsque vous voyez l'invite qui dit «Entrez un nouveau mot de passe UNIX» , entrez le mot de passe que vous souhaitez pour l'utilisateur root et confirmez-le.

À ce stade, vous pourrez passer à root en utilisant su et cd dans le répertoire.


-1. C'est plein de mal. Qu'est-ce que GDM a à voir avec quoi que ce soit? OP veut «cd» dans un répertoire lisible uniquement par root. Personne ne devrait jamais se connecter en tant que root via GDM.
Wesley Rice,

Bon point. Je n'ai pas entièrement lu ce que je collais là-bas.
zcid

Il est beaucoup plus facile que cela d'activer un shell racine avec sudo -s comme d'autres l'ont dit, et beaucoup mieux que cela est d'apprendre à propos de sudo, un outil beaucoup plus flexible et granulaire que su, s'il est bien utilisé.
Adriano Varoli Piazza
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.