Comment changer de répertoire dans un répertoire appartenant à root?
Si je le fais: Sudo cd RootOwedDir
Je reçois: Sudo cd: command not found
Si je su root
Je reçois: authentication failure
, probablement parce que je n'ai jamais vraiment créé de compte root.
Qu'est-ce que je fais mal ici?
Essayez plutôt d'utiliser Sudo -s
pour démarrer un shell racine, puis simplement cd
dans le répertoire.
Lorsque vous avez terminé en tant que root, appuyez sur CtrlD ou tapez exit
.
Il est important de noter qu’en tant que racine, on peut facilement endommager les composants essentiels du système. à utiliser avec précaution!
C'est parce que cd
n'est pas une commande mais une fonction intégrée dans le shell; et su
attend le mot de passe root. Utilisez simplement:
Sudo su
exécuter un shell avec les privilèges root. Tapez exit
ou appuyez sur Ctrl + D pour revenir au shell précédent lorsque vous avez terminé.
Sudo sh -c "cd dir_path"
Vous pouvez également faire un Sudo vim
sur le dossier, c’est-à-dire Sudo vim RootOwedDir
et il affichera la vue vim des dossiers, qui affichera tous les fichiers/dossiers qui se trouvent dans ce dossier. Ensuite, vous pouvez simplement exécuter ce dont vous avez besoin en dehors du dossier et utiliser Sudo comme d'habitude.
su -
puis tapez votre mot de passe. Vous pouvez maintenant juste cd dans le répertoire. Rappelez-vous que vous êtes maintenant root, ctrl-d avant de faire quoi que ce soit pour lequel vous ne voulez pas être root.
Pour moi, une combinaison de Sudo
et screen
a fonctionné:
Sudo -iu vagrant screen -mS npm_install bash -c 'cd /vagrant && npm install'
Cette commande bascule d'abord vers l'utilisateur vagrant
. Puis, comme vagrant
change le répertoire en /vagrant
et exécute npm install
.