Page 1 sur 1

Aide commande CHMOD

Posté : ven. 18 oct. 2019 12:52
par mouth
Bonjour !

Je recherche une commande chmod qui définit les autorisations d'accès à un répertoire afin que tous les utilisateurs puissent créer de nouveaux fichiers dans ce répertoire, mais seul le propriétaire d'un fichier du répertoire peut supprimer ce fichier.

Merci de votre aide !

Re: Aide commande CHMOD

Posté : ven. 18 oct. 2019 13:39
par arghlub
Salut,

Code : Tout sélectionner

chmod -R 777 /chemin/vers/répertoire
ou

Code : Tout sélectionner

chmod -R a+rwx /chemin/vers/répertoire
P'tite explication :
  • l'option -R c'est pour faire du "récursif", c'est-à-dire appliquer aussi les droits aux sous-répertoires ;
  • dans la 1ère commande, le "777" est une assignation en octal qui donne les permissions de lecture/écriture/exécution au proprio, à son groupe et aux autres ;
  • dans la 2ème commande, qui est équivalente : a=all (tous les utilisateurs), r=read (lecture), w=write (écriture), x=exécution.
Le droit d'exécution est nécessaire sur le répertoire pour que l'on puisse le "traverser" et voir ce qu'il y a dedans.

──────────────────────────────
Un fois la commande lancée, tu peux vérifier que les permissions ont bien été appliquées avec cette commande :

Code : Tout sélectionner

ls -ld /chemin/vers/répertoire
ça devrait te retourner un truc du style :

Code : Tout sélectionner

drwxrwxrwx 2 ton_nom ton_groupe 4096 oct.  18 13:37 nom_répertoire/
Plus d'infos : https://doc.ubuntu-fr.org/permissions#c ... les_droits
;)

Re: Aide commande CHMOD

Posté : sam. 19 oct. 2019 10:51
par tescan
Bonjour,
oui mais... chmod 777 accorde tous les droits à tout le monde... y compris la suppression.

Pour ce que mouth désire, voir ici "Sticky-Bit": https://fr.wikipedia.org/wiki/Permissio ... Sticky_Bit

Re: Aide commande CHMOD

Posté : sam. 19 oct. 2019 11:15
par arghlub
Salut tescan,

ah oui pardon, j'avais mal saisi la question de mouth (j'avais omis de lire la dernière phrase concernant la suppression) :oops: :oops:
merci tescan de m'avoir repris ;)

Donc effectivement pour que les autres puissent créer, lire, modifier des fichiers mais n'aient pas la permission de supprimer (seul le proprio des fichiers pourra le faire), il faut effectivement y placer un “sticky bit”.

Pour cela :

Code : Tout sélectionner

chmod -R 1777 /chemin/vers/répertoire
;)

Re: Aide commande CHMOD

Posté : mer. 23 oct. 2019 13:33
par mouth
Merci pour votre aide !

Si je donne les droit :

Code : Tout sélectionner

chmod -R 1777 /repertoire
Les fichiers dans le répertoire auront également 777 non ?

Re: Aide commande CHMOD

Posté : mer. 23 oct. 2019 17:37
par arghlub
Oui, tous les fichiers auront les permissions 777 (écriture, lecture, exécution pour tout le monde) et tous les fichiers dans les sous-répertoires aussi (grâce à l'option -R = mode “récursif”).

En plus, les fichiers et dossiers auront un “sticky bit” (bit collant) : seuls les utilisateurs qui auront créé un fichier (les propriétaires) pourront le supprimer.
Vu que toi, tu as le mot de passe “root”, tu pourras supprimer les fichiers des autres avec un “sudo”.

Linuxement parlant, les répertoires/dossiers sont aussi des fichiers ... comme on dit : «sous Linux, tout est fichier» (même ton imprimante, ta souris, ton écran, etc... )
;)

Re: Aide commande CHMOD

Posté : dim. 24 nov. 2019 11:14
par yomane
@mouth

Bonjour

Heu mettre tout un répertoire en 1777 est dangereux et spéciale. au même titre que les droits 666

N'oublie pas le rôle d'un fichier sous linux .

Expl: il peut être en txt, doc et devenir un excutable script après modification.

Donc l'interdiction de supprimer n'enlève pas le danger de le rendre exécutable en script malicieux ou pas ...

A savoir que les droits 777 sont a titre exeptionnel, certains répertoire web etc etc , et à 98% des cas pour du debug...

En pratique pour un dossier partagé on est sur du : 750, 751, 754, 755, .

Autre point, n'oublie pas ton UMASK. Car dans l'optique d'un dossier partagé, ceux qui vont crée des dossiers ou fichiers , seront overridé par l'UMASK même si tu as défini des droits 1777 a ton dossier

C'est à dire si tu as un UMASK 022
droit Récursif que tu as donné : 777
777 - 022 =755

Donc les nouveaux dossiers ou fichier crées auront des droits 755 et non 777 .
Les autres personnes ne pourront que Read (4) et Execute (1) les nouveaux dossiers ou fichiers créés.

Maintenant si c'est un dossier entre potes de confiance et que vous bosser sur un projet en local et non sur un dossier accessible par le web, why-not pour le 777, mais la règle de l'UMASK restera.