J'ai un système de fichiers sshfs distant monté sur /mnt/data . Voici la ligne pertinente dans /etc/fstab :
[email protected]:/var/www/ /mnt/data fuse.sshfs rw,noauto,nodev,nosuid,noexec,_netdev,allow_other,default_permissions,uid=martin,gid=martin 0 0
Les fichiers dans /var/www/ sur le système distant appartiennent à l'utilisateur www-data , mais j'utilise uid=martin,gid=martin pour mapper la propriété sur le système de fichiers monté à uid 1000.
Quand je cd vers /mnt/data/ en tant que martin, j'ai les bonnes autorisations/propriété de fichier, mais je dois changer le umask.
Sur le système de fichiers distant, l'utilisateur www-data a umask 0027 . Sur mon système de fichiers local, l'utilisateur martin a umask 0077 . Je veux garder le umask 0077 sur mes fichiers locaux, mais utilisez 0027 sur les fichiers montés sshfs (c'est-à-dire tous les fichiers dans /mnt/data/).
Est-ce même possible ?
J'ai essayé de définir des autorisations acl sur l'ensemble du répertoire sur le système de fichiers distant :
setfacl -d -m g::rx /var/www/
setfacl -d -m o::--- /var/www/
mais cela n'a aucun effet sur le partage monté sshfs.
Réponse acceptée :
sshfs utilise sftp sous le capot et le umask la création de nouveaux fichiers est gérée par le sftp-server distant . Vous pouvez définir umask comme argument du sftp-server dans /etc/ssh/sshd_config sur le serveur, comme
Subsystem sftp /usr/lib/openssh/sftp-server -u 027 # Debian/Ubuntu
ou
Subsystem sftp /usr/libexec/openssh/sftp-server -u 027 # RHEL/Fedora
ou
Subsystem sftp /usr/lib/ssh/sftp-server -u 027 # Arch
Les paramètres umask et l'ACL étendue ne sont pas transférés via le protocole SFTP tel qu'implémenté par openssh. Notez également qu'il n'y a pas de "umask sur les fichiers", mais umask est toujours associé à l'exécution du processus de création des fichiers.