Bonjour tout le monde.
Situation :
Le dossier /var/www/html/test/ doit être partagé par plusieurs utilisateurs.
Pour ce faire il doit avoir comme utilisateur et groupe www-data, et comme permission pour les users:groups R+W
Trucs déjà testé :
(à chaque fois le fichiers test.txt a été supprimé puis recréé (via CLI sans passer par apache2) après passage du chmod)
chmod 0770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:07 test.txt ( anciens fichiers = rwxrwx---)
chmod 1770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:15 test.txt ( anciens fichiers = rwsrws--T)
chmod 2770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:18 test.txt ( anciens fichiers = rwxrws---)
chmod 3770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:17 test.txt ( anciens fichiers = rwxrws--T)
chmod 4770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:09 test.txt ( anciens fichiers = rwsrwx---)
chmod 5770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:11 test.txt ( anciens fichiers = rwsrwx--T)
chmod 6770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:10 test.txt ( anciens fichiers = rwsrws---)
chmod 7770 = -rw-r--r-- 1 www-data2 www-data 0 Sep 5 13:11 test.txt ( anciens fichiers = rwsrws--T)
chown -R www-data:www-data /var/www/html/test/ ; chmod u+rws -R /var/www/html/test/ ; chmod g+rws -R /var/www/html/test/
ls -l
-rw-r----- 1 www-data2 www-data 0 Sep 5 13:21 test.txt
Un grand merci à toute aide et infos apportées.
Edit (section éditée au fur et a mesure):
Ça avance (ou pas), les permissions sont bien bloquées sur la machine locale (sauf pour SSHFS) mais pas le propriétaire qui continue d'être le créateur du fichier. Reste donc soit à verrouiller le groupe propriétaire, soit à forcer SSHFS à respecter l'umask, soit les deux (monde idéal). Le tout sans jeter le serveur par la fenêtre 😁
# sur EXT4
chown www-data:www-data -R /var/www/
chmod 2770 -R /var/www/
setfacl -dRm u::rw,g::rw /var/www/
touch /var/www/test.txt
ls /var/www/test.txt -l
-rw-rw---- 1 root www-data 0 Sep 5 15:03 /var/www/test.txt
# sur ZFS
zfs set acltype=posixacl NomPool
zfs umount NomPool
zfs mount NomPool
chown www-data:www-data -R /media/NomPool/test
chmod 2770 -R /media/NomPool/test
setfacl -dRm u::rw,g::rw /media/NomPool/test
touch /media/NomPool/test/plop.txt
ls -l /media/NomPool/test/plop.txt
-rw-rw---- 1 root www-data 0 Sep 5 14:56 /media/NomPool/test/plop.txt
# test création sur ZFS depuis SSHFS avec l'option -u 0007 dans sshd_config
touch /remote_sshfs/test/plop.txt
# le ls se fait depuis le serveur local
ls -l /media/NomPool/test/plop.txt
-rw-r----- 1 www-data2 www-data 0 Sep 5 15:48 test.txt
PFFFFFffffffffff, à quand de la simplification dans Linux ! (carrément abusé qu'un truc aussi con que partager un dossier soit aussi prise de tête)
# les bons partages aux bons endroits
Posté par NeoX . Évalué à 4.
parce qu'il faut faire les bons partages aux bons endroits.
umask permet de figer les droits (umask = 022 => chmod 755 sur le fichier)
les sticky bit chmod Xabc X = 1, 2, 4 permet de figer l'appartenance d'un dossier
chmod 1775 /var/www/ledossier
fera qu'il va garder son groupe propriétaire (www-data)
ainsi tout fichier deposer dedans appartiendra à
utilisateur:www-data
avec le bon umask sur le systeme de fichier,
le fichier sera 775, donc modifiable par n'importe qui du groupe www-data (dont le serveur apache)
[^] # Re: les bons partages aux bons endroits
Posté par voxdemonix . Évalué à 1.
Pour l'umask ce dernier point est assez galère. (si je suis mon tuto (parce que de tête y a pas): /etc/apache2/envvars , /etc/init.d/apache2 , /etc/profile , /home/$USER/.profile et celui du logiciel de sync)
Il me semble que l'umask et les perms sont bons côté "filesystem", c'est du côté de SSHFS que l'umask est mauvais.
Quand je crée un fichier depuis le client sshfs (en CLI, pas via apache2), sur le serveur je vois
J'ai essayé avec (dans le fichier /etc/ssh/sshd_config) côté serveur
et
Côté client j'ai tenté en ajoutant dans /etc/fstab , default_permissions,umask=0007 au point de montage.
[^] # Re: les bons partages aux bons endroits
Posté par Matthieu Moy (site web personnel) . Évalué à 3. Dernière modification le 06 septembre 2019 à 08:19.
Non. Le sticky bit, c'est pour X=1 seulement, et ça permet d'empêcher qu'un autre utilisateur puisse supprimer les fichiers des copains. Utilisation classique :
/tmp/
.X=2 et 4, ce sont les setuid et setgid. Le setgid permet d'affecter le groupe en question automatiquement aux nouveaux fichiers. Le bit setuid n'a aucun effet sur un répertoire sur la plupart des Unix (d'après Wikipedia, il fait à peu près la même chose que setuid chez FreeBSD mais je n'ai pas testé).
[^] # Re: les bons partages aux bons endroits
Posté par NeoX . Évalué à 2.
merci de la correction entre le sticky/setuid/setgid
je m'en sert peu, mais c'etait pour lui donner l'idée
[^] # Re: les bons partages aux bons endroits
Posté par totof2000 . Évalué à 2.
C plus simple dfe faire un chmod +t ou chmod -t.
# UMASK
Posté par Anthony Jaguenaud . Évalué à 4.
man umask
il faut lui passer l’inverse de se que tu veux. Si tu veux par défaut
r-x-wxr--
soitchmod 534
il faut faireumask 243
.La commande change l’
umask
de l’appelant. Donc il faut le mettre au bon endroit dans ton<shell>rc
,.profile
, etc.umask
seul te donne le mask actuel.[^] # Re: UMASK
Posté par voxdemonix . Évalué à 1.
Il y a une différence entre un umask 007 et 0007 ?
[^] # Re: UMASK
Posté par NeoX . Évalué à 2.
pour moi le umask sur 3 digits ne modifie que les droits UGO (User, Group, Other)
là ou le umask sur 4 digits va aussi modifier les stickybit/setuid/setguid (le X des chmod expliqués plus haut)
# sshfs et umask
Posté par voxdemonix . Évalué à 1.
L'un de vous a-t-il déjà réussi a régler l'umask avec un montage sshfs ?
[^] # Re: sshfs et umask
Posté par voxdemonix . Évalué à 1.
SOLVED !
Donc voici la liste de tout ce que j'ai du modifier juste pour l'umask sur le partage (donc sans la partie logiciel). Certains trucs sont peut-être optionnels ou oublié.
Côté clients :
- ~/.profile
- ~/.bashrc
- /etc/fstab (marche pas pour l'umask)
Côté serveur :
- /etc/ssh/sshd_config
- ~/.profile
- /etc/pam.d/sshd (inutile à première vue)
infos : https://wiki.gilug.org/index.php/How_to_mount_SFTP_accesses
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.