J'ai un utilisateur myuser, qui n'est autorisé à se connecter à ssh que via sftp. J'aimerais que cet utilisateur crée toujours des fichiers avec rwx-rwx-r-x et qu'il appartienne toujours au groupe apache. J'ai essayé d'accomplir la partie des permissions de fichier avec umask, mais dans umask, les fichiers et les répertoires obtiennent des permissions différentes pour le même umask. Toute aide est la bienvenue.
Réponse
Trop de publicités?Contexte
C'est un problème permanent de sftp
et le partage de fichiers. C'est parce que les permissions résultantes sont basées sur la permission originale du fichier du côté de l'utilisateur et umask ( -u
) n'impose pas ces permissions, mais supprime seulement les permissions non désirées. Cela signifie que seulement si l'utilisateur essaie de télécharger un fichier avec la permission 0777
il est appliqué et dépouillé jusqu'à 0775
. Sinon, il est simplement laissé tel quel. Par exemple, si l'utilisateur a un fichier stocké sur son système de fichiers avec la permission 0700
il apparaîtra aussi après le téléchargement comme 0700
.
Solución
Récemment, nous avons résolu ce problème dans Fedora en appliquant un correctif qui force la permission exacte des nouveaux fichiers téléchargés en utilisant -m
passer à sftp-server
. Il est basé sur ce bug upstrem :
https://bugzilla.mindrot.org/show_bug.cgi?id=1844
Ceci est disponible dans le courant CentOS 7.2 . Du journal des modifications :
- Add sftp option to force mode of created files (#1197989)
Solution de rechange
Il n'y a pas d'autre solution élégante que de lancer périodiquement un script (à partir de cron
), ce qui revient à fixer les mauvaises permissions. Il s'agirait d'une simple ligne de commande en bash, mais je suppose que vous pouvez en trouver. Je peux vous en dire plus si vous êtes intéressé.
Ou vous pouvez utiliser inotify
pour "attraper" les changements plus tôt.
Le groupe devrait être hérité du répertoire parent, n'est-ce pas ?