1 (edited by eljosai 2010-05-27 21:55:04)

Topic: Umask par défaut sur les fichiers transférés

Bonjour,

Tout d'abord merci pour ce programme que je connais depuis la version 0.7 mais que j'avais abandonné. Son amélioration est fulgurante depuis cette version.


Excusez-moi si la question a déjà été posée et que je ne l'ai pas trouvé.

Je cherche à positionner le umask par défaut à 0002 pour les fichiers qui sont transférés.  Si j'ai bien compris, les directives s'appliquent uniquement pour les fichiers qui sont créés sur le serveur via SSHFS ou autre.


J'ai fait pas mal de test et je n'arrive pas à m'en sortir :

- j'ai tenté de modifier le sshd_config avec " Subsystem sftp /bin/sh -c 'umask 0002; exec /usr/lib/openssh/sftp-server' "

la solution que je n'ai pas testé est de patcher openssh avec - "http://sftpfilecontrol.sourceforge.net/" qui permet de postionner le umask dans sshd_config


Voici mon sftp_config  :

## MySecureShell Configuration File ##
#Default rules for everybody
<Default>
    GlobalDownload        240k    #total speed download for all clients
                    # o -> bytes   k -> kilo bytes   m -> mega bytes
    GlobalUpload        240k    #total speed download for all clients (0 for unlimited)
    Download         40k    #limit speed download for each connection
    Upload             40k    #unlimit speed upload for each connection
    Home            $HOME    #overrite home of the user but if you want you can use
    ResolveIP        true    #resolve ip to dns
</Default>

<User user1>
    VirtualChroot    true
    StayAtHome    true
    IgnoreHidden    true
    CanChangeRights false
#    DirFakeMode 0444
    DisableMakeDir true
    DisableRename true
    DisableSetAttribute true
    DisableSymLink true
#    DisableWriteFile true
    DefaultRights 0664 0700
#    ForceRights 0664 0440
    LimitConnection 2
    LimitConnectionByUser 2
    IdleTimeOut 2m
    HideNoAccess    true
#    MinimumRights        0664 0700
</User>

Mon utilisateur se nome "user1" et est dans le groupe "moniteur"
j'ai un utilisateur "moniteur" avec comme groupe "moniteur"

L'arborescence que je souhaite utiliser est :

/itf/moniteur/user1
/itf/moniteur/user2
/itf/moniteur/user...

L'objectif est que chaque utilisateur puissent déposer des fichiers dans leur HOME ("/itf/moniteur/user...")  et que moniteur via son HOME (/itf/moniteur) puisse récupérer les fichiers et les supprimer.

Je tiens à un maximum de sécurité d'où les directives DisableRename, DisableMakeDir, DisableSetAttribute.


Merci par avance à ceux qui pourront me répondre.

josai

Re: Umask par défaut sur les fichiers transférés

Bonsoir,

toujours dans mon optique d'umask par défaut, j'ai trouvé qu'avec la version d'openssh 5.4 on pouvait mettre un umask par défaut aux transferts sftp.

cela se fait dans le sshd_config via :

Subsystem sftp /usr/lib/openssh/sftp-server -u 002

ça marche bien quand je me connecte avec un utilisateur standard mais cela ne fonctionne pas avec ceux MySecureShell.

Peut-être est ce une piste à investiguer...

josai

Re: Umask par défaut sur les fichiers transférés

Bonsoir,

Dans MySecureShell, il y a 3 tags, qui vont pouvoir vous aider:
http://mysecureshell.sourceforge.net/fr … ights.html
http://mysecureshell.sourceforge.net/fr … ights.html
http://mysecureshell.sourceforge.net/fr … ights.html

Re: Umask par défaut sur les fichiers transférés

Sauf que selon ce post http://mysecureshell.free.fr/forum/viewtopic.php?id=206 ces tags ne fonctionnent pas !!  mad En effet, en mettant les 4 tags dans le sftp_config comme suit:

ForceRights   0666 0777
DefaultRights 0666 0777
MinimumRights 0666 0777
MaximumRights 0666 0777

Si je crée un dossier il hérite des droits 755 (et non 777 comme attendu). En conséquence, le mask de l'ACL en est modifié d'autant et du coup tous les sous éléments du nouveau dossier ne sont plus modifiables par personne d'autre que le propriétaire. Pas bien du tout.  sad

En attendant la correction -urgente à mon avis- du bug, le post propose de tranférer la gestion des droits au niveau du client...  hmm

Re: Umask par défaut sur les fichiers transférés

Bonsoir,

Tout à fait, j'attends d'avoir mon serveur de compilation pour releaser MySecureShell...  hmm  (Deimos ?)
Sinon le CVS SourceForge contient les sources MySecureShell à jour smile

Re: Umask par défaut sur les fichiers transférés

ok, super  smile . J'attends avec grande hâte la version officielle compilée pour mettre mon serveur en production. Merci bien.

Re: Umask par défaut sur les fichiers transférés

Bon, finalement j'ai compilé la dernière version disponible depuis le CVS:

MySecureShell is version 1.25rc4 build on Nov 16 2010

Maleureusement, pas d'amélioration sur mon pb.   sad Quelque soit ma valeur des paramètres:

ForceRights   0660 0770       #Set rights for new file and new directory
DefaultRights 0660 0770       #Set default rights for new file and new directory
MinimumRights 0660 0770       #Set minimum rights for files and dirs

Les fichiers héritent bien des droits définis dans /etc/ssh/sftp_config et je ne peux pas modifier les droits depuis mon client sftp. C'est parfait pour les fichiers donc.

Par contre ça ne marche pas pour les dossiers:
  - un nouveau dossier hérite par défaut des droits 750 => DefaultRights ne marche pas
  - un dossier uploadé garde ses droits d'origine => ForceRights ne marche pas

Le pb se présente aussi bien sous un dossier parent avec ACL que sous un dossier parent sans ACL. Néanmoins, j'ai ceci:

MySecureShell is version 1.25rc4 build on Nov 16 2010
Options:
  ACL support: no
  UTF-8 support: yes

Sftp Extensions:
  Disk Usage

Or j'aimerais pouvoir activer la prise en charge des ACL; me faut-il ajouter un paramètre particulier lors de la compilation pour avoir l'option "ACL support: yes" ?

Re: Umask par défaut sur les fichiers transférés

Effectivement les directives ForceRights, DefaultRights et MinimumRights héritent toutes d'un bug qui ne prend pas en compte les paramètres pour les répertoires...  hmm


Concernant la compilation, il faut le package 'libacl1-dev' (sous Debian/Ubuntu) et ensuite refaire la compilation depuis le "./configure" smile

Re: Umask par défaut sur les fichiers transférés

ok, j'ai donc installé le paquet; ACL support est activé maintenant.

Bizarrement, la compilation me donne:

Option supported:
ACL               : yes
Remote Admin      : yes
UTF-8 Encoding    : yes

Sftp extension supported:
Disk Usage        : yes
Disk Usage OpenSSH: yes
File Hashing      : no

et la commande

root@test:~/cvs/mysecureshell# /bin/MySecureShell --version

retourne ceci:

MySecureShell is version 1.25rc4 build on Nov 17 2010

Options:
  ACL support: yes
  UTF-8 support: yes

Sftp Extensions:
  Disk Usage

Je donne les commandes pour ceux qui veulent tester la version 1.25rc4 (sous Ubuntu 8.04).

Installer CVS:

root@test:~# apt-get install cvs

Installer le paquet 'libacl1-dev':

root@test:~# apt-get install libacl1-dev

Créer un répertoire d'accueil pour les fichiers sources:

root@test:~# mkdir cvs
root@test:~# cd cvs
root@test:~/cvs# 

Récupérer le source depuis le CVS:

root@test:~/cvs#  cvs -d:pserver:anonymous@mysecureshell.cvs.sourceforge.net:/cvsroot/mysecureshell checkout mysecureshell

Rem: le port destination est le 2401; pensez-y si vous êtes derrière un firewall  wink

La fichiers sources sont déposés localement dans le dossier ./mysecureshell (créé lors de l'appel cvs)

Compiler les sources:

root@test:~/cvs# cd mysecureshell
root@test:~/cvs/mysecureshell# ./configure
root@test:~/cvs/mysecureshell# make all

Installer:

root@test:~/cvs/mysecureshell# ./install.sh fr

Vérifier la nouvelle version:

root@test:~/cvs/mysecureshell# /bin/MySecureShell --version
MySecureShell is version 1.25rc4 build on Nov 17 2010

Options:
  ACL support: yes
  UTF-8 support: yes

Sftp Extensions:
  Disk Usage

Redémarrer MySecureShell:

root@test:~/cvs/mysecureshell# /etc/init.d/mysecureshell restart

Re: Umask par défaut sur les fichiers transférés

Merci pour ce mini-tuto !

Re: Umask par défaut sur les fichiers transférés

Re-bonjour,

Je ne vois pas trop comment remédier à ce pb de droits sur répertoire. Mon projet est à l'arrêt  sad . Y a-t-il une chance que ce bugg soit corrigé dans un délai "raisonnable"  roll ?

Re: Umask par défaut sur les fichiers transférés

Bonsoir,

Malheureusement, le serveur que j'utilisais pour compiler est indisponible... je n'ai rien pour faire les packages MySecureShell donc impossible de releaser jusqu'à que je puisse changer mon pc personnel (j'espère après les fêtes de Noël) smile

Re: Umask par défaut sur les fichiers transférés

ok je veux bien partir des sources mais est-ce que le bug est corrigé dans le cvs ? car dans la version 1.25rc4 cela ne semble pas être le cas...

Re: Umask par défaut sur les fichiers transférés

Effectivement le CVS SourceForge n'était pas à jour, j'ai pousser une version 1.25rc5 qui contient le correctif ! big_smile

Re: Umask par défaut sur les fichiers transférés

rc5 rocks ! big_smile

Merci beaucoup pour cette correction. Je crois que mon serveur sftp "powered by MySecureShell" va pourvoir passer en prod' très bientôt. Bien cool. cool

Re: Umask par défaut sur les fichiers transférés

Merci à vous pour le report de bug big_smile