Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| linux:pureftp [06-02-2012 16:05] – edmc73 | linux:pureftp [15-05-2024 14:28] (Version actuelle) – [Ajouter un utilisateur] edmc73 | ||
|---|---|---|---|
| Ligne 18: | Ligne 18: | ||
| | | ||
| ===== Configuration ===== | ===== Configuration ===== | ||
| + | |||
| + | ==== Avec l' | ||
| On peut utiliser | On peut utiliser | ||
| dpkg-reconfigure pure-ftpd-common | dpkg-reconfigure pure-ftpd-common | ||
| Ligne 32: | Ligne 34: | ||
| Voila les seules choses configurable via cet outils... | Voila les seules choses configurable via cet outils... | ||
| + | ==== Avec les fichiers de config ==== | ||
| + | |||
| + | < | ||
| Passons aux fichiers de configuration à modifier dans notre cas | Passons aux fichiers de configuration à modifier dans notre cas | ||
| Ligne 64: | Ligne 69: | ||
| iptables -A OUTPUT -p tcp -o eth0 --sport 40000:40100 -j ACCEPT | iptables -A OUTPUT -p tcp -o eth0 --sport 40000:40100 -j ACCEPT | ||
| - | ===== Administration | + | ==== Configuration du système d' |
| - | ==== Ajouter un utilisateur ==== | + | |
| - | Dans cet exemple, je vais créer une liste d' | + | |
| - | Nous allons donc utiliser une database de pure-ftpd appelé puredb\\ | + | |
| - | Créons maintenant un utilisateur : | + | |
| - | pure-pw useradd toto -u totounix -d / | + | |
| - | + | ||
| - | L' | + | |
| - | L' | + | |
| - | Si on oublie -m on peut toujours recompiler la puredb par cette commande : | + | |
| - | pure-pw mkdb | + | |
| - | | + | |
| Pour s' | Pour s' | ||
| Ligne 83: | Ligne 77: | ||
| | | ||
| Vérifiez donc l' | Vérifiez donc l' | ||
| + | # ls | ||
| + | auth conf db pureftpd-dir-aliases | ||
| - | Maintenant vérifions que cette base est pris en compte lors du lancement du serveur FTP | + | Et bien non, par défaut il n' |
| - | < | + | Nous allons faire en sorte que cette base soit pris en compte lors du lancement du serveur FTP |
| - | # cd / | + | |
| - | # ls -l | + | # cd / |
| - | # total 0 | + | # ls -l |
| - | lrwxrwxrwx 1 root root 26 2005-11-08 10:24 65unix -> ../ | + | # total 0 |
| - | lrwxrwxrwx 1 root root 25 2005-11-08 10:24 70pam -> ../ | + | lrwxrwxrwx 1 root root 26 2005-11-08 10:24 65unix -> ../ |
| + | lrwxrwxrwx 1 root root 25 2005-11-08 10:24 70pam -> ../ | ||
| Par défaut il n'y a que les 2 autorisations des utilisateurs systèmes. | Par défaut il n'y a que les 2 autorisations des utilisateurs systèmes. | ||
| Il n'y a pas notre base d' | Il n'y a pas notre base d' | ||
| - | # rm * Supprimons ces autorisations. | + | |
| - | # ln -s / | + | # ln -s / |
| On crée un lien symbolique vers notre fichier de config. | On crée un lien symbolique vers notre fichier de config. | ||
| Cela permet au programme de prendre en compte notre base de données. | Cela permet au programme de prendre en compte notre base de données. | ||
| - | </ | ||
| - | Par défaut, pureftpd autorise seulement les utilisateurs qui ont pour UID une valeur de 1000.\\ | + | Par défaut, pureftpd autorise seulement les utilisateurs qui ont pour UID une valeur |
| - | Pour régler | + | Notre utilisateur www-data a pour UID 33 ce qui va nous poser problème.\\ |
| - | + | Pour résoudre ce problème,mettez | |
| - | Dans le cas d'un serveur web, on peut mettre | + | |
| Redémarrons maintenant le serveur | Redémarrons maintenant le serveur | ||
| # / | # / | ||
| + | Restarting ftp server: / | ||
| + | Et la c'est la CATA, le fichier / | ||
| + | Pour créer ce fichier, il va falloir ajouter au moins un utilisateur en suivant le chapitre qui suit. | ||
| + | ===== Administration ===== | ||
| + | ==== Ajouter un utilisateur ==== | ||
| + | Dans cet exemple, je vais créer une liste d' | ||
| + | Nous allons donc utiliser une database de pure-ftpd appelé puredb\\ | ||
| + | Créons maintenant un utilisateur toto qui aura les droits de l' | ||
| + | pure-pw useradd toto -u totounix -d / | ||
| + | | ||
| + | | ||
| + | L' | ||
| + | L' | ||
| + | <note tip>-d ne permet pas à l' | ||
| + | contrairement à\\ | ||
| + | -D qui permet cette possibilité.</ | ||
| + | L' | ||
| + | Si on oublie -m on peut toujours mettre à jour la puredb par cette commande : | ||
| + | pure-pw mkdb | ||
| + | |||
| + | Restreindre par ip un user existant (bien penser à remettre les ip existante) | ||
| + | pure-pw usermod toto -r 192.168.0.0/ | ||
| + | ===== Vérification ===== | ||
| + | Maintenant que vous avez créé vos utilisateurs, | ||
| + | |||
| + | # / | ||
| + | Restarting ftp server: Running: / | ||
| + | |||
| + | On voit que la ligne de commande a complètement changé, notre fichier de base de données utilisateur est bien le fichier / | ||
| + | |||
| + | ===== Exécuter un script à la réception d'un fichier ===== | ||
| + | |||
| + | vi / | ||
| + | |||
| + | Renseigner la variable **UPLOADSCRIPT** | ||
| + | <code bash> | ||
| + | # UPLOADSCRIPT: | ||
| + | # pure-uploadscript will also be run to spawn the program given below | ||
| + | # for handling uploads. see / | ||
| + | # pure-uploadscript(8) | ||
| + | |||
| + | # example: UPLOADSCRIPT=/ | ||
| + | UPLOADSCRIPT=/ | ||
| + | </ | ||
| + | |||
| + | Les variables suivantes sont accessible dans votre script bash | ||
| + | * $1 est le chemin et le nom du fichier. | ||
| + | * UPLOAD_SIZE The size of the file, in bytes. | ||
| + | * UPLOAD_PERMS The permissions, | ||
| + | * UPLOAD_UID The numerical UID of the owner. | ||
| + | * UPLOAD_GID The numerical GID of the owner. | ||
| + | * UPLOAD_USER The login of the owner. | ||
| + | * UPLOAD_GROUP The group name the files belongs to. | ||
| + | * UPLOAD_VUSER The full user name, or the virtual user name (127 chars max) . | ||
| + | |||
| + | Du coup vous pouvez exécuter une commande en fonction de l' | ||
| + | <code bash> | ||
| + | if [ " | ||
| + | echo -e `date " | ||
| + | echo -e " | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | ou en fonction du fichier | ||
| + | |||
| + | <code bash> | ||
| + | if [ " | ||
| + | echo -e `date " | ||
| + | echo -e " | ||
| + | fi | ||
| + | </ | ||