[gull] sshfs - droits distant
Frederic Dumas
f.dumas at ellis.siteparc.fr
Wed Nov 11 16:37:04 CET 2020
Bonjour Félix,
Merci pour ces pistes. Ma question porte sur sshfs. sshfs n'est pas
interactif. Ce que tu proposes n'est possible qu'avec le client sftp,
qui lui est interactif.
Le man de sshfs est léger, et ne donne pas d'exemples. J'ai relu
plusieurs fois la description d'options telles que -o idmap=TYPE par
exemple, je reste incertain de leur résultat sans avoir testé
laborieusement.
Comme je l'avais lu ailleurs, passer à sshfs l'option -o umask=0 est une
impasse complète. J'ai malgré tout tenté. Cette option ne fait que
modifier sur la machine locale la façon dont les droits dans le
répertoire distant **s'affichent** localement, mais ne change rien à la
façon dont les droits s'appliquent effectivement dans le répertoire
distant. Pour être plus clair, voici un exemple avec une connexion sshfs
ouverte avec l'option -o umask=0 :
Affichage (trompeur) depuis le shell de la machine locale:
-rwxrwxrwx 1 1001 nopasswdlogin 0 Nov 11 15:51 toto.test*
-rwxrwxrwx 1 1001 nopasswdlogin 0 Nov 11 15:58 toto_local.test*
->-rwxrwxrwx par ce que -o umask=0
-> 1001 parce que l'utilisateur distant n'existe par sur le système local
-> nopasswdlogin parce que les GUID ne correspondent pas sur la
machine distante et locale
Affichage (correct) depuis le shell de la machine distante:
-rw-r--r-- 1 bot data-team 0 Nov 11 15:51 toto.test
-rw-rw-r-- 1 bot data-team 0 Nov 11 15:58 toto_local.test
-> le fichier toto.test a été créé par bot à travers sshfs (umask
0133, trop restrictif)
-> le fichier toto_local.test a été créé par bot à travers ssh (umask
0113, configuré dans .profile)
Mon problème, c'est que les deux fichiers, créés depuis le même
utilisateur sur la machine distante, à quelques minutes d'intervalle,
sont soumis à des droits différents, selon que l'utilisateur soit
connecté par sshfs ou ssh. Manifestement, sshfs impose un umask 0133,
tandis que ssh respecte le umask 0113 défini dans le .profile de
l'utilisateur. Se pourrait-il qu'il y ait un paramètre systemwide de
sshfs (ou de sftp, sur lequel je crois il est basé) qui impose un umask
prioritaire (et plus restrictif) que celui de l'utilisateur ?
Ma question demeure donc: comment configurer sshfs pour qu'il applique
effectivement l'umask voulu pour l'utilisateur qui se connecte ?
J'espère être parvenu à bien présenter là où ça coince.
--
Frederic Dumas
f.dumas at ellis.siteparc.fr
Le 10/11/2020 à 09:21, felix a écrit :
> On Mon, Nov 09, 2020 at 05:57:08PM +0100, Frederic Dumas wrote:
>> Pour monter en local un système de fichiers distant, j'ai recours à sshfs.
>> ...
>> Comment définir un umask sur la machine distante pour l'utilisateur qui
>> ouvre la session ssh sous-jacente à sftp (si je comprends un peu le principe
>> de sshfs) ?
> Pour commencer, as-tu essayé la ligne de commande?
>
> $ sftp user at target
> sftp> help
>
> tu y verras, entre autres:
>
> lumask umask Set local umask to 'umask
>
> Mais il y a aussi
>
> chgrp grp path Change group of file 'path' to 'grp'
> chmod mode path Change permissions of file 'path' to 'mode'
> chown own path Change owner of file 'path' to 'own'
>
> A voire comment sont organisés les groupes dans le ``target'', tu peux
> égallement utiliser le bit SETGID, (voire SETUID et STICKY: `man chmod`)
>
More information about the gull
mailing list