[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