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.