1 (edited by Kristy 2013-02-25 18:28:46)

Topic: Erreur Directives HideFiles

Bonjour,
Alors je suis sur une debian 6 x64 un serveur sans interface graphique puisqu'en prod.
J'ai récupé l'installation de ce serveur, mon prédécesseur avait mis en place un SFTP avec mysecureshell pour chroot les utilisateurs tout bien.
Bon jusque la OK, le truc c'est que depuis l'installation a changé.
Je voudrais Chroot mes utilisateurs dans "/home/" pour qu'ils puissent accéder à "/home/www/" et écrire dans ce répertoire (oui comme ca ils peuvent test des sites web voyait big_smile)
Mon problème c'est que j'ai pas mal de répertoires "autres" dans /home/ auquel je ne  veux pas que mes utilisateurs accèdent.
Alors certes je pourrais déplacer mon répertoire /www/ d'un rang et chroot au dessus etc... mais c'est adapté son installation aux solutions et normalement on fait l'inverse smile.

J'ai donc testé la mise en place du paramètres "HideFiles" mais rien ne change je vois toujours tous les autres répertoires :S.

Si vous pouviez me renseigner ca serait fort sympatique !!!

Voici mon fichier de config sftp_config :

 
  1 ## MySecureShell Configuration File ##
  2 #Default rules for everybody
  3 <Default>
  4         GlobalDownload          50k     #total speed download for all clients
  5                                         # o -> bytes   k -> kilo bytes   m -> mega bytes
  6         GlobalUpload            0       #total speed download for all clients (0 for unlimited)
  7         Download                5k      #limit speed download for each connection
  8         Upload                  0       #unlimit speed upload for each connection
  9         StayAtHome              true    #limit client to his home
 10         VirtualChroot           true    #fake a chroot to the home account
 11         LimitConnection         100     #max connection for the server sftp
 12         LimitConnectionByUser   10      #max connection for the account
 13         LimitConnectionByIP     100     #max connection by ip for the account
 14 #       Home                    /home/$USER     #overrite home of the user but if you want you can use
 15                                                 #       environment variable (ie: Home /home/$USER)
 16         IdleTimeOut             5m      #(in second) deconnect client is idle too long time
 17         ResolveIP               true    #resolve ip to dns
 18 #       IgnoreHidden            true    #treat all hidden files as if they don't exist
 19 #       DirFakeUser             true    #Hide real file/directory owner (just change displayed permissions)
 20 #       DirFakeGroup            true    #Hide real file/directory group (just change displayed permissions)
 21 #       DirFakeMode             0400    #Hide real file/directory rights (just change displayed permissions)
 22                                         #Add execution right for directory if read right is set
 23 #       HideFiles               "^(lost\+found|public_html)$"   #Hide file/directory which match
 24                                                                 #this extented POSIX regex
 25         HideNoAccess            true    #Hide file/directory which user has no access
 26 #       MaxOpenFilesForUser     20      #limit user to open x files on same time
 27 #       MaxWriteFilesForUser    10      #limit user to x upload on same time
 28 #       MaxReadFilesForUser     10      #limit user to x download on same time
 29         DefaultRights           0640 0750       #Set default rights for new file and new directory
 30 #       MinimumRights           0400 0700       #Set minimum rights for files and dirs
 31
 32 #       PathDenyFilter          "^\."   #deny upload of directory/file which match this extented POSIX regex
 33
 34         ShowLinksAsLinks        false   #show links as their destinations
 35 #       ConnectionMaxLife       1d      #limits connection lifetime to 1 day
 36
 37 #       Charset                 "ISO-8859-15"   #set charset of computer
 38 #       GMTTime                 +1      #set GMT Time (change if necessary)
 39 </Default>
 40 <Group sftp-users>
 41 Shell /bin/bash
 42 Home /home/www
 43 Download 0
 44 Upload 0
 45 IdleTimeOut 0
 46 StayAtHome true
 47 VirtualChroot true
 48 LimitConnection 20
 49 LimitConnectionByIP 20
 50 DefaultRights 0775 0775
 51 </User>
 52
 53 <User jean>
 54 Home /home
 55 StayAtHome true
 56 VirtualChroot true
 57 HideNoAccess true
 58 DefaultRights 0775 0775
 59 IgnoreHidden true
 60 HideFiles "^(backup|backupmail|pascal|lab)$"
 61 </User>

Alors au cas ou voici la ligne de l'utilisateur "jean" dans le /etc/passwd :

 jean:x:1021:1001::/home/bin/MySecureShell 

et on voit bien que "jean" ne fait pas parti du groupe "sftp-users" dans le /etc/group :

 sftp-users:x:1001:pascal,lab 

Bon je poste aussi un petit Mysecureshell --configtest

root@monserveur:/etc/ssh# MySecureShell --configtest
--- root ---
GlobalDownload        = 51200 bytes/s
GlobalUpload          = 0 bytes/s
Download              = 5120 bytes/s
Upload                = 0 bytes/s
StayAtHome            = true
VirtualChroot         = true
LimitConnection       = 100
LimitConnectionByUser = 10
LimitConnectionByIP   = 100
Home                  = /root
ResolveIP             = true
IdleTimeOut           = 300s
HideNoAccess          = true
ShowLinksAsLinks      = false
SftpProtocol          = {default}
LogFile               = {default}
CanRemoveDir          = true
CanRemoveFile         = true
CanChangeRights       = true
CanChangeTime         = true
DefaultRights         = 0640 0750
Config is valid.

Alors euh chef, est ce que j'ai fait un truc de mal ?
Je comprends vraiment pas pourquoi ca fonctionne pas... quand je me connecte a FileZilla je vois bien tout le contenu du /home/ et pas seulement les répertoires que je souhaite (en faite je ne souhaite voir qu'un répertoire le WWW)

Alors par contre dans mon fichier sshd_config j'ai un petit :
Subsystem sftp internal-sftp

Parce que mysecureshell n'a pas toujours était la et qu'il faut bien chroot ces users quand même big_smile

Re: Erreur Directives HideFiles

Bonsoir,

Votre configuration MySecureShell est correcte.

Le problème vient effectivement d'OpenSSH qui utilise sont implémentation (oh le vilain) !

Voir le lien http://mysecureshell.sourceforge.net/fr … #question8 wink

3 (edited by Kristy 2013-02-26 11:54:57)

Re: Erreur Directives HideFiles

Merci pour la réponse rapide smile.

Je regarde ca, je test je vous mets la suite des évenements en réponse dès que j'ai fini mes tests smile.

Edit : OK Ca marche nikel merci bien smile

Par contre petite information, dans le fichier sftp_config la direct <Group XYZ> ne se ferme pas avec une balise </Group> mais avec une balise </User> sinon ca fonctionne pas.

Euh je trouve ca bizarre perso, erreur ou volontaire ? yikes Pck dans la doc je cite

Exemples

# La directive Group est optionnelle

<Default>
home /home
GlobalDownload 100k
</Default>

<Group sftp>
DirFakeMode 0777
</Group>

# Le groupe sftp aura comme home /home

*

Comment dire, j'ai l'impression qu'ya une co***** dans le potage big_smile.
En tout cas merci pour l'aide c'est nikel j'ai réussi à faire ce que je voulais.
Ps 2 : par contre petit défaut , c'est que les répertoires cachés reste accessible si on fait mumuse à tapé l'url dans la barre

Edit 2 : Je viens de voir que le poste juste en dessous du mien correspond a la même erreur... désolé j'ai l'impression d'être un boulet la hmm//

Re: Erreur Directives HideFiles

Depuis MySecureShell 1.30, il y a un remplaçant à HideFiles (qui est supprimé du coup) wink

Doc: http://mysecureshell.sourceforge.net/fr/FileSpec.html

5 (edited by Kristy 2013-03-04 17:45:32)

Re: Erreur Directives HideFiles

Rebonjour Teka,
Alors je suis entrain de regardé pour mettre en place des FileSpec du coup et mettre à jour mon MSS après.
Je lisais la documentation que tu ma gentillement link, et bon j'ai un peu de mal à l'appliquer à mon cas précis.

Dans mon cas je voudrais autoriser /rep/www mais interdire tout le reste du contenu /rep/ , mais je regarde la documentation et jvois pas trop comment faire ce que je souhaite.

Pourrais-tu me renseigner ? smile

Parcequ'en faites avec la directive hidefiles j'ai caché un répertoire "config" et dans les sous répertoires les répertoires config ne sont pas visible non plus.
En cas pratique ca donne :
Mes users sont roots dans /rep/ et ils ne voient que /rep/www/, mais par exemple dans /rep/www/site1/ j'ai un répertoire "config" et je ne le vois plus du coup hmm.

Re: Erreur Directives HideFiles

Bonjour,

Voici un exemple qui cacherai le répertoire "config" (et seulement le "bon"):

<FileSpec HideMyConfigDir>
   # Ici on vérifie sur le chemin complet à la place du nom du fichier / répertoire
    UseFullPath true

    Order DenyAllow
    Deny "^/rep/www/config"
    Allow all
</FileSpec>

<Default>
ApplyFileSpec HideMyConfigDir
</Default>

Re: Erreur Directives HideFiles

Je ne comprends pas!!!!!





________________________
Guild Wars 2 Gold,GW2 Gold