105 votes

Comment accéder à un répertoire avec la commande 'cd' s'il a une permission de 700 et ne m'appartient pas ?

J'ai essayé d'utiliser sudo cd name_of_dir mais je reçois le message d'erreur:

sudo: cd: command not found

Y a-t-il un autre moyen d'entrer dans un répertoire appartenant à un autre utilisateur qui a une permission de 700?

133voto

Rinzwind Points 270388

sudo cd ne fonctionnera pas car la commande cd est intégrée dans la console. Donc vous demandez à devenir root et ensuite exécutez cette commande. Vous devenez root et ensuite la commande après sudo est recherchée mais il n'y a pas de commande cd à trouver.

La méthode à utiliser est de passer à l'utilisateur qui possède le répertoire. La permission 700 signifie "le propriétaire peut lire, écrire et exécuter".

Donc si root possède le répertoire sudo -i, mot de passe et ensuite cd {dir} est la seule méthode correcte. Si quelqu'un d'autre possède le répertoire, vous pouvez toujours utiliser la 1ère méthode mais pouvez aussi changer vers cet utilisateur avec su {nom_utilisateur} puis utiliser cd en tant qu'utilisateur.

55voto

Vojtech Trefny Points 14011

sudo -i

pour ouvrir la "console root" et ensuite

cd /chemin/vers/le/dossier

(cd est une commande intégrée au shell, donc elle ne peut pas être la cible du sudo)

21voto

Takkat Points 135194

Pour ouvrir un répertoire racine, nous pouvons exécuter un shell root, par exemple :

sudo su
# cd /root

11voto

Marc Bernier Points 1789

Comme d'autres l'ont souligné -- c'est un shell intégré :

~ % which cd
cd: commande intégrée au shell

Alors, pourquoi ne pas exécuter sudo sur le shell lui-même ?

~ % sudo $SHELL -c "cd nom_du_dossier"

7voto

Vicky Dev Points 423

Vous pouvez également vous élever en tant qu'utilisateur root en :

sudo -s

Ensuite, vous pouvez vous rendre dans n'importe quel répertoire auquel un utilisateur normal n'a pas accès, comme :

cd /root

Ou

cd /var/lib/

Ensuite, une fois que vous avez terminé, tapez :

exit

Pour vous déconnecter des privilèges de l'utilisateur root.

Pour vous élever en tant que root, vous pouvez également combiner les deux commandes avec l'opérateur && comme ci-dessous, cet opérateur maintient également leur séquence d'exécution, si la commande actuelle s'exécute avec succès, alors seulement la commande suivante est autorisée à s'exécuter :

sudo -s && cd /var/lib

Ou

sudo -s && cd /root

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X