# Dossier inconnu en root mais ok avec sudo

**URL:** <https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136>\
**Category:** Support Debian\
**Created:** [Septembre 12, 2022, 7:28 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136 "2022-09-12T07:28:01Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Septembre 12, 2022, 7:28 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/1 "2022-09-12T07:28:01Z")

</div>

bonjour,  
pour info à propos du fichier pris en exemple ci-dessous et dont les droits ont été modifiés :

```auto
mm@Xfce:~$ ls -l /etc/ssh/sshd_config
-rw------- 1 root root 3748 12 sept. 17:07 /etc/ssh/sshd_config

```

en essayant d’utiliser la commande **diff** pour des fichiers protégés je suis tombé sur un problème avec une console _root_ qui m’a d’abord fait penser , à tort , que **diff** était réservé aux fichiers non protégés .

À des fins de test je commence par copier /etc/ssh/sshd\_config dans /home/mm sous le nom c1 . Puis je modifie c1 afin d’introduire une différence avec l’original ( ici un espace dans le nom d’un utilisateur ) . Ensuite j’essaie la commande **diff** avec sudo puis , dans un autre terminal en _root_

```auto
mm@Xfce:~$ sudo cp /etc/ssh/sshd_config c1
[sudo] Mot de passe de mm : 
mm@Xfce:~$ sudo less c1 [modification de c1]
mm@Xfce:~$ sudo diff /etc/ssh/sshd_config c1
127c127
AllowUsers mm mm3 mm-lvm

AllowUsers mm mm3 mm -lvm

```

avec une 2ème console _root_ :

```auto
mm@Xfce:~$ su -
Mot de passe : 
root@Xfce:~# diff /etc/ssh/sshd_config c1
diff: c1: Aucun fichier ou dossier de ce type

```

pourquoi _root_ ne reconnaît-il pas c1 ?

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Septembre 12, 2022, 7:41 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/2 "2022-09-12T07:41:07Z")

</div>

Bonjour,

> [@zao](#):
>
> en essayant d’utiliser la commande **diff** pour des fichiers protégés je suis tombé sur un problème avec une console _root_ qui m’a d’abord fait penser , à tort , que **diff** était réservé aux fichiers non protégés .

`diff` lit les fichiers lisibles, ce n’est pas son boulot de vérifier s’ils sont protégés ou non, c’est celui du système de fichiers et sa gestion des droits d’accès.

Si ça ne fonctionne pas, c’est que ton environnement (dont le répertoire de travail) est modifié entre tes deux exécutions. Un des deux fichiers comparée est référencé par son chemin relatif, dépendant donc du répertoire de travail.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Septembre 12, 2022, 7:51 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/3 "2022-09-12T07:51:12Z")

</div>

> [@Almtesh](#):
>
> Si ça ne fonctionne pas, c’est que ton environnement (dont le répertoire de travail) est modifié entre tes deux exécutions. Un des deux fichiers comparée est référencé par son chemin relatif, dépendant donc du répertoire de travail.

donc en restant en _root_ :

```auto
root@Xfce:~# cp /etc/ssh/sshd_config c2
root@Xfce:~# less c2 [modif]
root@Xfce:~# diff /etc/ssh/sshd_config c2
127c127
< AllowUsers mm mm3 mm-lvm
---
> AllowUsers mm mm3 mm -lvm

```

merci pour la réponse qui résout un problème que j’avais déjà rencontré et que je n’arrivais pas à solutionner .

note : chemin relatif et donc chemin absolu ? Bon…  
ok j’ai pigé et à relier à une remarque au sujet de l’emploi du raccourci **~** que je n’arrivais pas à comprendre ; enfin je suppose :

```auto
root@Xfce:~# diff /etc/ssh/sshd_config c1
diff: c1: Aucun fichier ou dossier de ce type
root@Xfce:~# diff /etc/ssh/sshd_config /home/mm/c1
127c127
< AllowUsers mm mm3 mm-lvm
---
> AllowUsers mm mm3 mm -lvm

```

ps : tant qu’on est avec **diff** : je sais comment comparer 2 fichiers non protégés sur 2 machines différentes , mais est-ce possible avec des fichiers protégés ?

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Septembre 12, 2022, 8:44 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/4 "2022-09-12T08:44:21Z")

</div>

Bonjour

**Répertoire courant**  
On peut faire s’afficher le répertoire courant en lançant la commande `pwd` :

```nohighlight
michel@deb114x:~$ pwd
/home/michel
michel@deb114x:~$ 

```

```nohighlight
michel@deb114x:/media/michel/128M_déchiffré$ pwd
/media/michel/128M_déchiffré
michel@deb114x:/media/michel/128M_déchiffré$ 

```

```nohighlight
michel@deb114x:~/Téléchargements/xmlVirsh$ pwd
/home/michel/Téléchargements/xmlVirsh
michel@deb114x:~/Téléchargements/xmlVirsh$ 

```

ou, en faisant s’afficher la valeur qui a été assignée à la variable `PWD`

```auto
michel@deb114x:~$ echo $PWD
/home/michel
michel@deb114x:~$ 

```

* * *

**Chemin absolu** \<=\> relatif à la racine du système de fichiers du système linux utilisé  
Ce type de chemin pourra être utilisé dans une commande quelque soit le répertoire courant depuis lequel la commande sera lancée.

dans les deux blocs de texte suivants,  
comme le chemin du fichier donné en argument à la commande `ls` était un chemin **absolu** ,  
la même ligne commande `ls` a listé exactement le même fichier.

```nohighlight
michel@deb114x:~/Téléchargements/xmlVirsh$ pwd
/home/michel/Téléchargements/xmlVirsh
michel@deb114x:~/Téléchargements/xmlVirsh$ ls -l /etc/fstab
-rw-r--r-- 1 root root 1043 7 sept. 15:04 /etc/fstab
michel@deb114x:~/Téléchargements/xmlVirsh$ 

```

```nohighlight
michel@deb114x:~$ pwd
/home/michel
michel@deb114x:~$ ls -l /etc/fstab
-rw-r--r-- 1 root root 1043 7 sept. 15:04 /etc/fstab
michel@deb114x:~$ 

```

* * *

**Chemin relatif** \<=\> relatif au répertoire courant  
Ce type de chemin indiquera un chemin différent selon le répertoire courant depuis lequel la commande sera lancée.

Dans les deux blocs de texte suivants,  
comme le chemin du fichier donné en argument à la commande `ls` était un chemin **relatif** ,  
la même ligne commande `ls` n’a pas listé le même fichier.

```nohighlight
michel@deb114x:~$ pwd
/home/michel
michel@deb114x:~$ ls -l .bashrc
-rw-r--r-- 1 michel michel 4006 11 juin 00:24 .bashrc
michel@deb114x:~$ 

```

```nohighlight
root@deb114x:~# pwd
/root
root@deb114x:~# ls -l .bashrc
-rw-r--r-- 1 root root 571 10 avril 2021 .bashrc
root@deb114x:~# 

```

* * *

Avec l’interpréteur de commande(s) `bash` et dans une ligne de commande(s),  
le caractère tilde (~) sera remplacé par le chemin absolu du **répertoire personnel du compte utilisateur** qui lancera la ligne de commande :

```nohighlight
michel@deb114x:~/Téléchargements/xmlVirsh$ ls -l ~/.bashrc
-rw-r--r-- 1 michel michel 4006 11 juin 00:24 /home/michel/.bashrc
michel@deb114x:~/Téléchargements/xmlVirsh$ 

```

```nohighlight
jeff@deb114x:~/Images$ ls -l ~/.bashrc
-rw-r--r-- 1 jeff jeff 4006 3 sept. 2018 /home/jeff/.bashrc
jeff@deb114x:~/Images$ 

```

```nohighlight
root@deb114x:/etc/apt# ls -l ~/.bashrc
-rw-r--r-- 1 root root 571 10 avril 2021 /root/.bashrc
root@deb114x:/etc/apt# 

```

Voir la page du **man** uel du shell `bash`  
en lançant une des lignes de commandes suivantes :

```auto
man --pager='less -p "Développement du tilde$"' bash

```

```auto
LANG=C man --pager='less -p "Tilde Expansion$"' bash

```

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Septembre 12, 2022, 9:06 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/5 "2022-09-12T09:06:27Z")

</div>

> [@anon29980398](#):
>
> Ce type de chemin pourra être utilisé dans une commande quelque soit le répertoire courant depuis lequel la commande sera lancée.

c’est ce que j’avais retenu de mes déboires avec _sudo_ et _root_ et après l’explication de Almtesh : à moins de savoir exactement où on est mieux vaut développer une adresse à partir de **/**.

merci d’avoir pris le temps de développer ces notions de chemin .

Et pour ce qui est de comparer 2 fichiers protégés sur 2 machines différentes , est-ce possible ? Ma réponse intuitive est non à cause des mots de passe différents , mais peut-être que je me trompe .

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Septembre 12, 2022, 9:26 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/6 "2022-09-12T09:26:56Z")

</div>

> [@zao](#):
>
> mieux vaut développer une adresse à partir de / .

C’est une autre façon de dire qu’il s’agirait d’une adresse utilisant un chemin absolu.

* * *

> [@zao](#):
>
> … Et pour ce qui est de comparer 2 fichiers protégés sur 2 machines différentes , est-ce possible ? …

Je ne sais pas ce que veux dire «&nbsp;_fichiers protégés_&nbsp;»  
mais pour pouvoir comparer le contenu de deux fichiers en utilisant la commande `diff`,  
il faudra seulement que le compte utilisateur qui va lancer la commande `diff` ait la possibilité d’avoir accès au contenu des deux fichiers.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Septembre 12, 2022, 9:32 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/7 "2022-09-12T09:32:37Z")

</div>

> [@anon29980398](#):
>
> il faudra seulement que le compte utilisateur qui va lancer la commande `diff` ait la possibilité d’avoir accès au contenu des deux fichiers.

le mieux est que je fasse un essai en passant par le protocole _scp_ pour transférer un fichier /etc/ssh/sshd\_config modifié pour introduire une différence , sur ma machine .

- fichier protégé dans mon esprit = tout fichier dont le propriétaire est _root_ et qui n’écessite donc un mot de passe pour le lire .

c’est bien ce que je pensais le fichier à transférer ayant _root_ pour propriétaire conduit à **Permission denied** ( à partir d’une console **user** ) . Peut-être en utilisant _scp_ à partir d’une console _root_ mais tu m’avais dit qu’utiliser _ssh_ avec **sudo** (donc en tant que _root_ ? ) n’est pas conseillé . Donc une clef USB s’impose , non ?

Ou alors uniquement pour le transfert je change le propriétaire , mais est-ce acceptable du point de vue de la sécurité ?

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Septembre 12, 2022, 10:00 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/8 "2022-09-12T10:00:04Z")

</div>

Mais quel est le but final de cette comparaison des fichiers de configuration du serveur `ssh` de deux systèmes différents ?

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Septembre 12, 2022, 10:12 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/9 "2022-09-12T10:12:02Z")

</div>

pour régler mon problème d’autentification refusée , avec _ssh_ , j’ai eu à trouver dans /etc/ssh/sshd\_config une erreur qui s’y était glissée lorsque je l’ai modifié suite aux recommandations de zargos , pour améliorer la sécurité de la connexion . Or je disposais d’un autre fichier sur une autre machine , modifié à la main lui aussi et de la même manière et qui était fonctionnel . Donc j’aurais voulu comparer à l’aide de **diff** ces deux fichiers de propriétaires **root** car le fameux espace blanc qui m’a servi ci-dessus était l’erreur à trouver au milieu du fichier ( depuis j’ai transféré le **AllowUsers…** en fin de fichier , c’est nettement plus visible ) .

Dans ce cas précis le protocole _scp_ n’était de toute façon pas en état de fonctionner , donc je devais passer par une clef USB . Mais du coup je me suis posé la question du transfert entre 2 machines de fichiers de propriétaire _root_ à des fins de comparaison ou autres .

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Septembre 12, 2022, 10:58 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/10 "2022-09-12T10:58:14Z")

</div>

Merci beaucoup pour cette très claire explication du besoin 🙂

* * *

> [@zao](#):
>
> … la question du transfert entre 2 machines de fichiers de propriétaire _root_ à des fins de comparaison ou autres . …

Les attributs du fichier `/etc/ssh/sshd_config` permettent un accès en lecture à un compte utilisateur non privilégié :

```plaintext
michel@deb114x:~$ ls -l /etc/ssh/sshd_config
-rw-r--r-- 1 root root 3289 2 juil. 00:37 /etc/ssh/sshd_config
michel@deb114x:~$ 

```

donc, il est possible de comparer le contenu de ce fichier avec celui qui serait sur une machine distante sans avoir besoin d’utiliser les privilèges du compte `root`:

- En supposant que le nom du compte utilisateur existant et accessible sur la machine distante soit : `zao`
- et que l’adresse IP du système qui tourne sur la machine distante soit : `192.168.122.1`

```bash
ssh zao@192.168.122.1 "cat /etc/ssh/sshd_config" | diff /etc/ssh/sshd_config -

```

(ne pas oublier le tiret qui est en fin de ligne de commandes car il est indispensable)

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Septembre 12, 2022, 11:18 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/11 "2022-09-12T11:18:09Z")

</div>

> [@anon29980398](#):
>
> Les attributs du fichier `/etc/ssh/sshd_config` permettent un accès en lecture à un compte utilisateur non privilégié :

sauf que en suivant les recommendations pour améliorer la sécurité de _ssh_ et tirées de la doc **CIS\_Debian\_Linux\_8\_Benchmark\_v2.0.2** trouvée à partir de la source située à [https://workbench.cisecurity.org/sections/1431439/recommendations/2296983](https://workbench.cisecurity.org/sections/1431439/recommendations/2296983) ( lien non direct qui conduit aux téléchargements gratuits ) ces permissions ont été rognées et sont devenues (0600) chez moi . mais j’ai compris le principe et c’est l’essentiel .

merci pour toutes ces explications .

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Septembre 12, 2022, 11:24 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/12 "2022-09-12T11:24:58Z")

</div>

Et oui,  
sans les données précises du contexte, on a toutes les chances de proposer une mauvaise solution.

Je précise que je ne dis pas ça pour toi et que ce n’est pas du tout un reproche :

- du côté du demandeur il est difficile de savoir quelles informations donner concernant le contexte
- et du côté de l’aidant il est difficile de devoir tout demander à chaque fois.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Septembre 12, 2022, 2:43 UTC](https://www.debian-fr.org/t/dossier-inconnu-en-root-mais-ok-avec-sudo/87136/13 "2022-09-12T14:43:50Z")

</div>

> [@anon29980398](#):
>
> sans les données précises du contexte, on a toutes les chances de proposer une mauvaise solution.

j’ai remis temporairement les droits à (0644) et cette commande fonctionne bien . Elle m’a d’ailleurs permis de constater que je n’avais pas tout mis aux préconisations de la doc de CIS . J’ai rajouté une sortie diff.txt ( juste pour tester ce que j’ai lu ) .

je viens de réaliser la situation :

- depuis mon 1er message , du fait de mon imprécision due à mon manque de connaissances , il y a un malentendu car j’aurais dû préciser que j’avais modifié les droits de ce fichier = passage de 0644 à 0600 et alors la nécessité de l’utilisation de **sudo diff** ou d’une console _root_ devenait plus claire
- de plus je me focalisais sur le propriétaire , root en l’occurence , alors que le plus important sont les permissions associées , ce qui m’a fait réaliser que même un fichier de propriétaire _root_ peut être lu par un utilisateur et donc ma notion de «&nbsp;fichier protégé&nbsp;» était bien trop imprécise

mea culpa , mea culpa .

- du coup j’ai modifié mon 1er message … mieux vaut tard que jamais .
