Fichiers en -x mais pas les dossiers

Fermé
Lucifugus - 23 nov. 2009 à 09:07
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 23 nov. 2009 à 14:41
Bonjour,

Voilà je me suis penché sur les droits linux dernièrement et j'ai casiment compris tous son fonctionnement.
Seul petit soucis que je n'ai pas encore éclairci c'est les droits sur les dossiers.

En effet pour pouvoir accéder a un dossier via un cd il faut obligatoirement qu'il soit en +x ?
Quel est la différence entre enlever sont droit d'éxecution (-x) et enlever son droit de lecture (-r) ?
Et dernière petite question, dans le cas ou j'ai appliquer la commande avc l'option récursive
chmod -R 700 mondossier/

Comment devrais-je faire pour enlever le droit +x a tous mes fichiers ?sans enlever celui des dossiers ?

Merci d'avance ;)

3 réponses

mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
23 nov. 2009 à 10:46
En effet pour pouvoir accéder a un dossier via un cd il faut obligatoirement qu'il soit en +x ?

Oui, sauf si tu es root (car root s'affranchit des droits spécifiés sur le fichier). Si tu es propriétaire du dossier, tu as accès au premier jeu de droits rwx (visibile en faisant un "ls -l /le/repertoire/qui/contient/le/dossier" (u = user). Tu peux voir quel est le user courant en tapant :

whoami


Si tu es dans le groupe propriétaire, tu as accès au second jeu de droits rwx (g = group). Tu peux voir les groupes auxquels tu appartiens avec :

groups


Sinon tu n'as accès qu'au dernier jeu de droits (o = other). Ainsi si tu veux ajouter les droits en exécution à ce dossier au propriétaire. Avec ce que j'ai indiqué tu peux en déduire l'une des deux syntaxe de chmod, qui permet d'ajouter (+) ou de retirer des droits. Par exemple pour ajouter les droits en exécution à l'utilisateur propriétaire :

chmod u+x /le/dossier


L'autre syntaxe, celle que tu évoques, utilise une syntaxe octale qui permet de configurer directement les triplets rwx : 4 = read, 2 = write, 1 = execute, on fait la somme pour obtenir la valeur d'un triplet rwx. Par exemple :

rwx = 4 + 2 + 1 = 7 ;
r-x = 4 + 1 = 5 ;
--- = 0
etc...

Quel est la différence entre enlever sont droit d'exécution (-x) et enlever son droit de lecture (-r) ?

Le droit en lecture n'a pas vraiment de signification sur un dossier. En général on met soit les droits rx, soit ni l'un ni l'autre.

Comment devrais-je faire pour enlever le droit +x a tous mes fichiers ?sans enlever celui des dossiers ?

Il va falloir jongler avec la commande find, l'option -f et l'option -exec. Attention à ne pas virer les droits en exécution aux exécutables ! De manière générale on ne change jamais les droits sous linux hormis ceux de ses fichiers personnels. Il ne faut jamais toucher aux droits configurés pour les fichiers du système, sans quoi tu risques d'ouvrir des trous de sécurité sur ta machine.

Bonne chance
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
23 nov. 2009 à 10:58
hello
un dossier sans droit de lecture permet d'être traversé sans pouvoir être lu, tout le monde peut faire cd a/b/c mais pas ls a/b, il faut donc connaitre le dossier de destination:
343445    4 drwxr-xr-x   3 1000     1000         4096 Nov 23 10:19 a
343446    4 drwx--x--x   3 1000     1000         4096 Nov 23 10:19 a/b
343447    4 drwxr-xr-x   2 1000     1000         4096 Nov 23 10:19 a/b/c

# pour un autre UID que 1000
$ find a -ls
343445    4 drwxr-xr-x   3 1000     1000         4096 Nov 23 10:19 a
343446    4 drwx--x--x   3 1000     1000         4096 Nov 23 10:19 a/b
find: `a/b': Permission denied
$ cd a/b/c
$
0
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
23 nov. 2009 à 14:41
Merci pour ces précisions dubcek !
0