Lorsqu'on copie/colle une image dans un répertoire sur une machine de type Unix (GNU/Linux), et non de type Windows car Windows est incapable de gérer ces droits là (shame), plutôt que passer par un script d'upload d'un site internet, on pourrait être amené à changer les droits sur ce seul fichier via un « chown ». Exemple :
chown monuser:www-data monimage.png
Mais il y a plus intelligent à faire. Il s'agit en fait de donner le « sgid » (ou « setgid ») qui concerne les programmes et les répertoires :
Un programme lancé avec ce droit « sgid » sera exécuté avec les droits du groupe du programme et non les droits du groupe de l'utilisateur qui l'a lancé (ex: /usr/bin/write ou /usr/bin/wall). Dans notre cas, ça ne nous intéresse pas.
Mais par contre, un fichier créé dans un répertoire ayant le droit « sgid » aura pour groupe le groupe du répertoire et pas celui de l'utilisateur qui a créé le fichier.
Dans notre exemple, le répertoire de nos images a comme droits ce qui suit :
ll drwxrwx--- 19 monuser www-data 12288 Mar 21 07:40 files/
Autrement traduit, en octal, files est en : 770
Nous allons changer ça par, en octal toujours, par : 2770
sudo chmod 2770 files/ ll drwxrws--- 19 monuser www-data 12288 Mar 21 07:40 files/
Notez le s minuscule en place du x précédemment : le répertoire a bien le sgid actif, et transmettra le nom du groupe à tous les fichiers créés dorénavant ou déplacés manuellement à l'intérieur.
Pour en savoir plus sur les droits Unix, je vous conseille cette ressource.
Ajouter un commentaire