Serveur ftp droit d'acces

Résolu
M4-SiS Messages postés 15 Statut Membre -  
 m4-sis -
Bonjour,

Voila j'ai acquis un Netgear Readynas duo v2 qui a un noyau Debian si je di pas de bêtise! avec l'interface du Nas c'est une grosse %$#@ a configurer les droits!

Je souhaite en fait que
- l'Admin (moi) ait accès à tout sur le serveur,
- et je souhaite créer un utilisateur qui a accès uniquement à un seul dossier (et qu'il ne voit pas les autres).

Je me connecte en ssh au NAS mais après c'est l'histoire du chmod que j'ai du mal!

Architecture du ftp:

-Media
-musique
-Video

-Www

Compte Admin a tout les droits partout ;)
Compte webmaster a accès juste a Www et ne voit pas le dossier Media

18 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Parfait maintenant il ne reste plus qu'à configurer proftpd correctement et le redémarrer pour prendre les modifications en compte.

    Par défaut la configuration de proftpd sous debian consiste à avoir un utilisateur ftp qui correspond à chaque utilisateur linux (et en utilisant le même mot de passe) hormis root. Par exemple si sur ta machine sont configurés les utilisateurs toto et tata, alors il y a implicitement moyen de se connecter via ftp en tant que toto ou en tant que tata. La seule exception est root.

    On va supposer que toto peut se promener partout, tandis que tata doit resté prisonnier dans /home/tata. Pour cela on va utiliser cette option :
    http://www.proftpd.org/docs/directives/linked/config_ref_DefaultRoot.html

    Pour comprendre cette exemple il faut bien comprendre que en shell, /home/toto = ~toto = ~ quand on est loggué en toto. Sur le même principe, /home/tata = ~tata = ~ quand on est loggué en tata. En écrivant ceci on dit que tous les utilisateurs vont atterrir (et rester prisonniers) dans leur home directory. Ainsi on pourrait par exemple écrire dans /etc/proftpd/proftpd.conf ceci :

    DefaultRoot ~


    Maintenant, supposons que seul tata doit être prisonnier, mais pas toto. Alors on va expliciter qui est soumis à la règle "DefaultRoot" comme suggéré dans le lien précédent :

    DefaultRoot ~ tata,!toto


    Il ne reste plus qu'à sauver le fichier /etc/proftpd/proftpd.conf et relancer proftpd :

    service proftpd restart


    Enfin, un petit test (par exemple avec le client lftp) et c'est parti :

    aptitude install lftp
    lftp toto@localhost


    Une fois authentifié en ftp affiche le contenu du répertoire courant, essaye de remonter, puis réaffiche le contenu du répertoire courant (dans lftp les commandes sont inspirées de celles du shell) :

    ls
    cd ..
    ls
    bye


    Même test avec lftp tata@localhost, et normalement l'affaire est dans le sac :-)

    Bonne chance
    1
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    En fait ça dépend un peu du serveur ftp que tu utilises (protftpd, vsftpd etc...). Le plus simple c'est peut être d'installer proftpd (par exemple) et une interface graphique pour le configurer (gproftpd).

    Bonne chance
    0
  3. M4-SiS Messages postés 15 Statut Membre
     
    justement c'est pas possible! car c'est L'OS propriétaire netgear du nas la seul facon que je puisse faire est via ssh en root a l'ancienne :S
    0
  4. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Ok, mais en attendant tu as quand même un serveur ftp qui tourne, non ?

    Et ce serveur tu peux le configurer via ssh en altérant ses fichiers de configuration (par exemple avec nano) et en relançant le serveur ftp. Typiquement :
    http://www.mistra.fr/tutoriel-linux-nano.html

    En root :

    nano /etc/proftpd/proftpd.conf


    Une fois le fichier corrigé :

    service proftpd restart


    Ça c'est en admettant que ce soit proftpd qui soit utilisé, mais il faudrait déjà voir quelle serveur est installé sur ton OS. Tu peux par exemple le voir avec la commande "dpkg -l" si tu es sous debian ou en regardant qu'est ce qui écoute sur le port 21 (qui est utilisé par ftp).

    (root@silk) (~) # dpkg -l | grep ftp
    ii  lftp                                 4.3.6-1                            Sophisticated command-line FTP/HTTP client programs
    ii  proftpd-basic                        1.3.4a-2+b1                        Versatile, virtual-hosting FTP daemon - binaries
    
    (root@silk) (~) # netstat -ntlp | grep 21
    tcp6       0      0 :::21                   :::*                    LISTEN      2398/proftpd: (acce
    


    Bonne chance
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. M4-SiS Messages postés 15 Statut Membre
     
    c'est proftpd a la base mais la j'ai mis vsftpd mais je n'arrive plus a l'enlever message d'erreur

    dpkg: error processing vsftpd (--remove):
     subprocess installed post-removal script returned error exit status 1
    configured to not write apport reports
                                          Errors were encountered while processing:
     vsftpd
    
    0
  7. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Quelle commande as-tu lancé pour désinstaller vsftpd ? Au pire essaye de le réinstaller et de le supprimer

    aptitude update
    aptitude safe-upgrade
    aptitude reinstall vsftpd
    aptitude purge vsftpd
    aptitude install proftpd-basic


    Bonne chance
    0
  8. M4-SiS Messages postés 15 Statut Membre
     
    j'ai fais un reset du coup c'est de retour proftpd qui fonctionne

    root@nas:~# vi /etc/proftpd.conf
    TimeoutNoTransfer 600
    TimeoutStalled 600
    TimeoutIdle 1200
    DisplayLogin welcome.msg
    DisplayChdir .message
    DenyFilter \*.*/
    PersistentPasswd on
    #Quotas off
    Port 21
    
    DynMasqRefresh 7200
    PassivePorts 1121 1122
    AllowForeignAddress off
    MaxInstances 30
    User nobody
    Group nogroup
    RequireValidShell off
    <Directory /*>
    Umask 022 022
    AllowOverwrite on
    </Directory>
    Include /etc/frontview/proftpd/ftps.conf
    Include /etc/frontview/proftpd/User.conf
    - /etc/proftpd.conf 44/44 100%
    # Do not edit.
    ServerName "NETGEAR ReadyNAS"
    ServerType standalone
    DeferWelcome off
    MultilineRFC2228 on
    DefaultServer on
    ShowSymlinks on
    AllowOverwrite on
    AllowStoreRestart off
    UseReverseDNS off
    IdentLookups off
    TimesGMT off
    WtmpLog off
    ServerLog /var/log/proftpd.log
    SystemLog /var/log/proftpd.log
    TransferLog /var/log/proftpd.log
    BanLog /var/log/proftpd.log
    MaxLoginAttempts 2
    BanEngine on
    BanTable /ramfs/ftp_ban.tbl
    BanOnEvent MaxLoginAttempts 5/00:10:00 00:15:00
    TimeoutNoTransfer 600
    TimeoutStalled 600
    - /etc/proftpd.conf 1/44 2%
    
    0
  9. M4-SiS Messages postés 15 Statut Membre
     
    ok je comprends, on mets ça dans proftpd.conf ?

    Moi mon souhait est je me connecte en root je vois tout ceux qui est normal, mais je veux que par exemple toto quand il se connecte voit seulement un dossier qui est a la racine du ftp et non sont dossier user
    0
    1. Mykkel Messages postés 170 Statut Membre 6
       
      salut ,

      si tu n ' y arrives pas avec vsftpd une autre méthode :

      -sftp : utilisation ssh + ftp
      -rssh : commandes restrictives pour l 'utilisateur qui se connecte (shell réduit)
      -chrootage: l' utilisateur est enfermé dans un répertoire (et sous répertoire) bien défini.

      sftp n ' est pas la même chose que ftps qui utilise openssl, à ne pas confondre.


      et bien évidement, cela reste compatible aussi avec un client Windows comme WinSCP.

      si je t' indique ceci, c' est parceque le noyau en question est Debian.

      les explications qui répondent exactement à ce que tu cherches:
      https://www.debian-fr.org/t/serveur-sftp-shell-reduit-rssh-et-chroot/26813
      0
  10. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Oui dans /etc/proftpd/proftpd.conf (puis relance proftpd).

    Si tu regardes ce que j'ai écrit dans mon précédent message, il suffit de voir ce que j'ai défini pour toto et tata et de l'adapter avec les profils que tu veux utiliser (root et toto).
    0
  11. M4-SiS Messages postés 15 Statut Membre
     
    j'ai ajouté la ligne

    DefaultRoot ~ tata,!toto
    et j'ai essayer DefaultRoot /www ~ webmaster,!root

    et aucun changement..
    0
  12. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Déjà tu es sûr que ce n'est pas plutôt /var/www (au lieu de /www). Ensuite Tu as mis deux répertoires derrière DefaultRoot (/www et ~) or normalement il n'y en n'a qu'un. Du coup la ligne serait plutôt

    DefaultRoot /var/www webmaster,!root


    Autre possibilité, tu fais atterrir tout le monde dans son ~ (respectivement /home/webmaster et /root), quitte à monter le contenu de /www (ou de /var/www) dans /home/webmaster/ avec un mount bind :
    https://forums.commentcamarche.net/forum/affich-16654048-lien-symbolique-sur-ftp

    Concrètement ça consiste à ajouter une ligne dans /etc/fstab, ou tu indiques que le contenu de /var/www et de /home/webmaster/www concordent. Ajoute à la fin de /etc/fstab cette ligne :

    /var/www   /home/webmaster/www       none        bind        0 0


    Ensuite tape les commandes suivantes en root :

    mkdir -p /home/webmaster/www
    mount /home/webmaster/www


    Bonne chance
    0
  13. M4-SiS Messages postés 15 Statut Membre
     
    j'ai essayer des solution mais en vain

    mon utilisateur a bien un dossier /home/web
    mais quand il se connecte il y se trouve la racine..
    0
  14. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Si tu ne me reportes pas la ligne DefaultRoot de /etc/proftpd/proftpd.conf et le résultat pour root (quel répertoire, peut-il aller partout) + pareil pour l'autre utilisateur, je vois difficilement comment je peux t'aider.
    0
  15. M4-SiS Messages postés 15 Statut Membre
     
    Bon j'avance :D

    DisplayLogin welcome.msg  
    DisplayChdir .message  
    DenyFilter \*.*/  
    PersistentPasswd on  
    #Quotas off  
    Port 21  
    
    DefaultRoot ~  
    
    
    DynMasqRefresh 7200  
    PassivePorts 1121 1122  
    AllowForeignAddress off  
    MaxInstances 30  
    User nobody  
    Group nogroup  
    RequireValidShell off  
    <Directory /*>  
    Umask 022 022  
    AllowOverwrite on  
    </Directory>  
    Include /etc/frontview/proftpd/ftps.conf  
    Include /etc/frontview/proftpd/User.conf  
    root@nas:~# service proftpd restart  
    Stopping ftp server: proftpd.  
    Starting ftp server: proftpd.  
    root@nas:~# service proftpd restart  
    Stopping ftp server: proftpd.  
    Starting ftp server: proftpd.  
    root@nas:~# vi /etc/proftpd.conf  
    TimeoutStalled 600  
    TimeoutIdle 1200  
    DisplayLogin welcome.msg  
    DisplayChdir .message  
    DenyFilter \*.*/  
    PersistentPasswd on  
    #Quotas off  
    Port 21  
    
    DefaultRoot ~ !admin  
    
    
    DynMasqRefresh 7200  
    PassivePorts 1121 1122  
    AllowForeignAddress off  
    MaxInstances 30  
    User nobody  
    Group nogroup  
    RequireValidShell off  
    <Directory /*>  
    Umask 022 022  
    AllowOverwrite on  
    </Directory>  
    root@nas:~# service proftpd restart  
    Stopping ftp server: proftpd.  
    Starting ftp server: proftpd.  
    


    Dernier bug c'est que quand je me log en admin je souhaiterai voir et modifier le dossier web

    drwx------ 2 admin admin 4096 2012-08-19 00:42 admin
    drwx------ 2 web   users 4096 2012-08-21 21:19 web
    
    0
  16. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Juste quelques remarques, ça m'étonne que tu es la directive DefaultRoot a deux endroits. À mon avis tout peut s'écrire sur une ligne, non ?

    DefaultRoot ~  
    ...
    DefaultRoot ~ !admin  


    Autre conseil, je te conseille d'écrire tes noms de fichiers en minuscules pour avoir des notations homogènes (même si ce que tu as écris est tout à fait juste).

    Include /etc/frontview/proftpd/ftps.conf  
    Include /etc/frontview/proftpd/User.conf 


    Dernier bug c'est que quand je me log en admin je souhaiterai voir et modifier le dossier web

    Plusieurs solution :
    - tu attribues le dossier web à admin:web et tu donnes les droits en écriture au groupe web

    cd /le/repertoire/dans/lequel/est/place/web
    sudo chown -R admin:web web/
    find web/ -type f -exec chmod 640 {} \;
    find web/ -type d -exec chmod 750 {} \;

    Si la gestion des droits te paraît obscure (chown, chmod etc...) je t'invite à lire le man correspondant et ce cours :
    http://www.mistra.fr/tutoriel-linux-profils-et-droits.html
    http://www.mistra.fr/tutoriels-linux-mode-texte/tutoriel-linux-man.html

    man chown
    man chmod


    Note qu'ici les fichiers appartiennent à admin pour que web ne puisse pas changer les droits associés à ces fichiers.

    - autre solution, tu peux utiliser des droits acl :
    http://doc.ubuntu-fr.org/acl
    0
  17. M4-SiS Messages postés 15 Statut Membre
     
    Bien vu pour le doublon de defaultroot je vai regler le soucis ;)

    Pour les histoires de majuscule c'est mon Nas qui le fait ..

    donc si je dit pas de betise il suffit de faire:

    root@nas:/home# chown -r admin:web web

    puis un chmod -r 770 web

    exact?
    0
  18. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Ouais, et vu que tu as marqué le problème en résolu, j'imagine que tu es satisfait du résultat !

    Bonne continuation
    0