Inscrivez-vous maintenant pour accéder à toutes nos fonctionnalités. Une fois inscrit et connecté, vous pourrez créer des sujets, publier des réponses aux discussions existantes, donner de la réputation à vos collègues, obtenir votre propre messager privé, publier des mises à jour de statut, gérer votre profil et bien plus encore. Si vous avez déjà un compte, connectez-vous ICI autrement Inscription un compte gratuit aujourd'hui!
-
Compteur de contenus
84 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Messages posté(e)s par dokkun
-
-
Premièrement, un petit schema.
Merci a Michael BIDEAU pour son talent graphique
Les points forts de l'infra
Cette infrastructure permet une haute disponibilite, par la redondance de tous les services, mais aussi une évolutivité importante grâce à la virtualisation. La mise en place de cette solution n'est donc pas des plus simple. Cependant, elle permet d'évoluer, en termes de visites / charge d'une façilité par la séparation initiale de tous les services.
Les points faibles (oui il y en as, malheureusement)Vu le niveau technique de cette infra, et surtout due à la séparation des services, il est indispensable d'avoir un code propre et étudié pour fonctionner sur cette infra.
Listes des serveurs virtuels, avec les applicatifs qui vont tourner dessus : Les routeursIls gèrent le routage entre les différentes classe IPs de l'infra structure, avec notemment les possibilites d'extension sur deux sites physiques.
Liste des services :
- Postfix pour l'envoi de mails système
- Rsync, pour assurer le backup du service
- KeepAlived Pour assurer la redondance de la route par defaut pour les IPs internes
- Quagga, pour assurer un routage BGP entre plusieurs sites / prestataires réseau
- Bind - Afin d'assurer une résolution de nom pour les domaines hébergés
- OpenSSH
Ils assurent la répartition de la charge pour les différents services qui le nécessitent. Pour rappel :
- Le WEB Statique
- Le WEB Dynamique
- Le SQL Lecture
- La réception des mails
- Les protocoles de lecture de mails (POP(s) / IMAP(s))
Liste des services :
- Postfix pour l'envoi de mails système
- Rsync, pour assurer le backup du service
- KeepAlived Pour assurer la redondance et le load balancing
- OpenSSH
Ces deux serveurs seront utilisé simultanément, afin de répartir la charge sur les deux. L'arrêt d'un des serveurs entraine une exclusion de celui-ci du pool WEB.
Liste des services :
- Apache avec le module PHP pour interpreter le code source
- Eventuellement un accelerateur PHP, eaccelerator, APC ...
- Postfix pour l'envoi de mails via PHP & mails système
- Rsync, pour assurer le backup du service
- Un client NFS, pour acceder aux données
- OpenSSH
Ces serveurs seront eux aussi utilisés de manière simultanée. A l'inverse de leurs homologues dit dynamiques, ils ne serviront que du contenu statique.
Liste des services :
- Nginx ou Lighttpd, avec possiblement une surcouche de cache via un proxy squid
- Postfix pour l'envoi de mails système
- Rsync, pour assurer le backup du service
- Un client NFS, pour acceder aux données
- OpenSSH
Afin d'éviter des problèmes de duplication de clef primaire, il est nécéssaire d'écrire les données SQL sur un seul serveur, le serveur maitre. De ce fait, nous aurons un service SQL écriture en simple tolérance à la panne.
Par ailleurs, afin d'éxploiter au maximum la puissance de calcul disponible, il est intéressant de répartir les lectures sur les n serveurs SQL. Les lectures SQL seront donc sur load balancées.
Liste des services :
- MySQL
- Postfix pour l'envoi de mails système
- Rsync, pour assurer le backup du service
- KeepAlived pour assurer la redondance du service "écriture"
- OpenSSH
Vu que les mails sont aussi importants que le service WEB, ils sont eux aussi redondés.
Liste des services :
- Postfix
- Courier pour les couches IMAP / POP
- Rsync, pour assurer le backup du service
- OpenSSH
- Bind - Afin d'assurer une résolution de nom pour les domaines hébergés
- MySQL - Afin de gérer les boites mails et les alias en BDD
Et oui, il faut bien sauvegarder les données. Le principe est simple, le serveur de backup sur un serveur hôte sauvegarde les serveurs qui sont sur le second serveur hôte.
Liste des services :
- Postfix pour l'envoi de mails système
- Rsync, pour assurer le backup du service / pour backuper
- OpenSSH
- Un démon NFS pour permettre la copie de DUMPS SQL / tar des sites si besoin
Afin d'assurer un suivi strict et régulier de l'infra, il est vital de la monitorer, pour déceller les défaillance d'une node, et intéréssant de grapher les serveurs et leurs ressources.
Le serveur primaire assure donc le monitoring via Nagios, et le serveur secondaire assure le monitoring de backup et les graphs (via Cacti).
Liste des services :
- Postfix pour l'envoi de mails système
- Rsync, pour assurer le backup du service / pour backuper
- OpenSSH
- Nagios
- Cacti
- KeepAlived
Nous allons maintenant voir la couche données avec nos trois serveurs de fichiers. Pour chacun des couples de filer, les technologies utilisées seront très similaires.
Liste des services :
- Postfix pour l'envoi de mails système
- Rsync, pour assurer le backup du service / pour backuper
- OpenSSH
- Un démon NFS
- Une surcouche de données DRBD pour assurer la réplication sur le second filer
- KeepAlived pour assurer la tolérence a la panne
Afin de dissocier (encore) les trafics réseau, j'utilise des vlans. Ainsi, dans cette version théorique, chaque type de trafic interne (NFS WEB ou mail / SQL / Backup) sera associé a un vlan distinct, chacun dans sa classe IP. Cela aura pour effet de permettre une évolutivité réseau importante. En effet, même si je rajoute des hôtes, et que mon hébergeur ne peut me fournir des IPs dans la même classe, je peux gérer les accé aux ressources par classe IP interne.
Nous aurons donc comme IPs :
Publique :
- Une /29 associé afin de fournir des IPs à chacune des machines le nécessitant. (sera doublé lors de la mise en place de la redondance intersite) Trafic routé par nos deux routeurs
- Une /29 ou 2 /30 pour les interconnexion BGP avec notre hébergeur(sera doublé lors de la mise en place de la redondance intersite)
- Une /29 ou /30 pour assurer la redondace inter site (qui ne sera pas mise en place dans un premier temps
Privé :
- Une /24 pour les connexions SSH
- Une /24 pour le service WEB statique
- Une /24 pour le service WEB dynamique
- Une /24 pour le NFS Web
- Une /24 pour le NFS Mail
- Une /24 pour le NFS pour les Dumps (export régulier de dumps sur les serveurs de backup)
- Une /24 pour le SQL
- Une /24 pour le backup
Pour rappel, voici le nombre d'IP dans chacune des tailles de classes IP
- /30 : 4 IPs , 2 utilisables
- /29 : 8 IPs , 6 utilisables
- /28 : 16 IPs , 14 utilisables
- /27 : 32 IPs , 30 utilisables
- /26 : 64 IPs , 62 utilisables
- /25 : 128 IPs, 126 utilisables
- /24 : 256 IPs, 254 utilisables
Comme vous le voyez, j'assure une énorme évolitivité dans mon plan d'adressage privé
Ou puis-je trouver et faire entretenir une telle infra structure?Cette infra, ou toute autre infra structure plus adaptée à vos besoin peut être mise en place par moi même (je suis en cours de re-création d'entreprise), ou par WDMEDIA.
SIVIT, depuis peu racheté par NERIM, mon ancien employeur, m'ayant banni de leur salon IRC, ne mérite plus, selon moi, que je leur fasse de la publicité. D'autant plus qu'il y a eu un turn-over très important dans l'équipe hébergement, ayant a mon sens fait baissé leur qualité.
Leur réseau est aussi, pour le moment, très instable, j'ai pu constater des latences de 800 ms entre le serveur hébergeant ce site et le routeur.
-
Le tuto (aussi détaillé soit-il) ne dispense pas
de la lecture des infos/questions affichées à l'écran
Insérer le cd "net install" dans le lecteur et booter dessus (appuyez sur "entrée")
1ère étape: choix de langue des menus de l'installation
-> french - français
2ème étape: choix du pays
-> france
3ème étape: Carte de Clavier à utiliser (langue du clavier)
-> français (fr-latin9)
// Chargement des librairies pour l'install
// Examen du cd
// Détection du matériel
// Configuration automatique du réseau par dhcp
en cas d'echec de la configuration automatique du réseau par dhcp
-> Continuer
-> Configurer vous-même le réseau
-> Adresse IP : choisissez une adresse ip de la forme
192,168,1,x ou 192,168,0,x selon votre réseau (cf passerelle)
-> Valeur du masque réseau : en général laissez par defaut
-> Passerelle : entrez l'ip de la passerelle
-> Adresse des serveurs de nom : en général identique à la passerelle
éventuellement ajouter après un "espace" le serveur DNS de votre FAI
4ème étape: choix du nom de la machine
-> choix du nom de la machine : entrer ce que vous voulez
5ème étape: choix du nom de domaine
-> choix du nom de domaine : en général on ne met rien
// Détection des disques et autres périphériques
6ème étape: partitionnement des disques
-> le partitionnement idéal diffère selon l'utilisation de la machine
liste des partitions selon l'utilisation: (on considère que le disque est > 20 Go)
- pour la bureautique :
"/" (racine) d'environ 5 Go ou plus pour être tranquil
"/home" (rep perso) sur une partition a part et de grande taille
"swap" (fichier d'échange) en général RAM+swap = 1 Go (min 500Mo)
conseil : séparer le swap sur plusieurs disques si possibles
type des partitions:
"/" : ext3 en général ou ReiserFS (cf ci-dessous)
"/home" : idem
"swap" : c'est déjà un type
- pour les serveurs :
"/" d'environ 5 Go ou plus pour être tranquil
"/boot" (fichiers de boot + noyau) 100 à 150 Mo pas plus
"/var" (les logs systeme + fichiers volatiles) de 600 Mo à 6 Go
"/tmp" (fichiers temporaires) 2 à 3 Go en moyenne
"swap" peut de reboot => swap grand > 500 Mo
conseil : séparer le swap sur plusieurs disques si possibles
"/home" (contiendra le web, ftp, BD, etc) reste du disque (très grand)
"/usr" (facultatif) (les applications et librairies utilisateur) de 3 à 4 Go
type des partitions:
"/" : ext3 en général ou ReiserFS (cf ci-dessous)
"/boot" : historiquement en ext3
"/var" : surtout du ReiserFS (petit fichier de log)
"/tmp" : idem que "/var"
"swap" : c'est déjà un type
"/home" : ext3 ou ReiserFS selon l'utilisation
"/usr" : plutôt du ReiserFS
nb: on peut mettre toutes les partitions en LVM (logical volume manager)
afin de pouvoir changer leur taille plus facilement sauf "/boot" et "swap".
Caractéristiques des types de partition: (source Wikipédia)
- ext3:
journalisé
robuste (récupération après crash)
vieillissant (a une dizaine d'année)
compatible avec presque toute les applis
- ReiserFS:
journalisé
plus rapide que ext3 si énormément de (petits) fichiers
supporte le redimmensionnement à chaud avec LVM
incompatible avec dump (sauvegarde)
// Formatage des partitions
7ème étape: Créer les utilisateurs et choisir les mots de passe
-> Mot de passe du super utilisateur (root) : choisissez un passe
-> Nom du nouvelle utilisateur : choisissez un nom
-> Identifiant compte utilisateur : choisissez votre pseudo
-> Mot de passe de l'utilisateur : choisissez un passe
// Configuration de l'horloge
// Installation du système de base (5 à 20 min selon la machine)
8ème étape: configuration de l'outil de gestion des paquets
-> faut-il utiliser un miroir sur le réseau ? Oui
-> pays du miroir de l'archive Debian : france
-> miroir de l'archive Debian ?
- si vous êtes chez free : ftp.fr.debian.org
- si chez orange : ftp2.fr.debian.org
- sinon un des deux ;-)
-> mandataire http (proxy)
si vous utilisez un proxy il faut l'indiquer ici de la facon suivante:
http://user:password@serveur_proxy:port
// Configuration (automatique) de l'outil de gestion des paquets (apt)
// en fait il réceptionne la liste des paquets disponibles sur l'archive Debian
9ème étape : Configuration de popularity-contest
-> souhaitez-vous participer à l'étude statistique sur l'utilisation des paquets ?
à vous de choisir, cela n'aura aucune incidence sur la suite de l'installation
10ème étape : sélection des logiciels Debian
-> ne rien choisir : on installera plus tard ceux dont on a besoin à la main
11ème étape: installer le programme de démarrage "Grub" sur un disque dur
-> installer sur le secteur d'amorçage ? Oui
// Installation du programme de démarrage "Grub"
// Fin de l'installation -> éjection automatique du cd
// Redémarrage
Se logger en tant que root
12ème étape: Suppression du cd en tant que source de depots
-> editer le fichier /etc/apt/sources.list
vi /etc/apt/sources.list
supprimer toutes les lignes de la forme : deb cdrom:// ...
nb: pour supprimer une ligne appuyez sur "dd"
pour insérer du texte activez l'insertion en appuyant sur "i"
pour sauvegarder et quitter faire "echap" ":wq"
quittez
Mettez à jour la liste des paquets (logiciels) disponibles avec apt
apt-get update
Mettez à jour la distribution compète avec apt
apt-get dist-upgrade
si vous avez une fenetre pour la configuration de la console data
acceptez les choix par defaut
Activer la complétion automatique
C'est le système qui termine vos commandes lorsque vous appuyez sur "tab"
Pour l'activer il faut éditer le fichier "/etc/bash.bashrc"
vi /etc/bash.bashrc
Recherchez la ligne contenant "bash completion":
appuyez sur "échap" puis "/" et saisissez "bash completion" (sans les guillemets)
Ensuite supprimez les "#" au debut des 3 lignes suivantes afin d'obtenir:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Appuyez sur "echap" puis ":wq" pour sauvegarder et quitter
-
SSH est un protocole de prise de commande a distance de maniere securisee.
Il fonctionne en mode client/serveur.
OpenSSH est un des nombreux projet de l'equipe OpenBSD
Le tuto (aussi détaillé soit-il) ne dispense pas
de la lecture des infos/questions affichées à l'écran
Partie Client
Permet la prise de controle d'une machine distante ayant un serveur SSH.
Installation du client openSSH (debian)
-> Mettez à jour la liste des paquets disponibles
apt-get update
-> Installez openSSH client
apt-get install openssh-client
Le systeme indique qu'il dépend d'autres paquets / librairies, notamment de:
libedit2 --
Librairie permettant de gerer un historique
et certaines fonction d'edition.
libkrb53 --
Librairie pour le protocole Kerberos
Kerberos est un systeme d'autentification des
utilisateurs/services d'une machine ou d'un reseau, de
maniere securisee. (Ce n'est ni le systeme ni
l'utilisateur qui valide, mais une troisieme entitee,
le serveur kerberos). Ce paquet contiens aussi le client
kerberos.
Le système suggère aussi l'installation d'autres paquets tels que:
krb5-doc --
documentation / implementations pour le protocole kerberos5
krb5-user --
Contiens les outils basiques pour communiquer avec un
serveur kerberos, qui permettent notemment de changer
de mot de passe etc...
ssh-askpass --
/! Il s'agit d'une application graphique
Permet de demander a un utilisateur une "passphrase"
lors de l'utilisation de "ssh-add".
ssh-add ajoute une clef (systeme de base pour
l'autentification par openssh) a u utilisateur donne.
xbase-clients --
/! Il s'agit d'une application graphique
Il s'agit d'uneinterface entre le serveur graphique
et les applications tierces.
Il ne me parait pas nécessaire d'installer les paquets suggérés car
les mécanisme d'autentifications kerberos me parraissent trop lourd
pour un usage personnel et/ou un petit serveur. De plus, selon moi,
l'autentification doit se faire du cote du serveur ssh et non du client.
-> Indiquez que vous confirmez l'installation :
Souhaitez vous continuer [O/n] ? O
Il s'effectue donc l'installation proprement dite de tous les paquets.
Il n'y as pas de configuration post-installation.
Partie Serveur
Le serveur permet d'accepter les connection de type SSH depuis des machines
distantes. Cela permet donc de laisser une machine munie d'un serveur ssh dans
un coin, et de la controler à distance, sans pour autant s'allourdir d'un
écran et d'un clavier pour la dite machine.
Les cas ou cette utilisation peut etre utile :
* Un serveur web perso
* Un serveur de donnee pour la maison / le bureau
* Une passerelle internet
* Un serveur mail
Installation du serveur openSSH (debian)
-> Mettez à jour la liste des paquets disponibles
apt-get update
-> Installez openSSH server
apt-get install openssh-server
Le système suggère aussi l'installation d'autres paquets tels que:
ssh-askpass --
/! Il s'agit d'une application graphique
Permet de demander a un utilisateur une "passphrase"
lors de l'utilisation de "ssh-add".
ssh-add ajoute une clef (systeme de base pour
l'autentification par openssh) à un utilisateur donné.
xbase-clients --
/! Il s'agit d'une application graphique
Il s'agit d'une interface entre le serveur graphique
et les applications tierces.
rssh --
Shell alternatif a BASH par exemple mais qui fonctionne en
mode restreint. En effet, seules les commandes scp (copie
au travers d'un tunnel ssh) sftp (ftp par un tunnel ssh)
les commandes relatives aux cvs, ou encore pour rsync
sont autorisées.
Ce shell permet aussi de vérouiller les utilisateurs dans
leur répertoire personnels.
Il n'y as pas d'action de validation de l'installation du fait qu'il n'y
as pas de paquets nécessaire au fonctionnement de openssh-server à installer
(probablement les mêmes que pour openssh-client).
L'installation proprement dite commence alors...
/! cette étape est longue du fait de la génération des clefs de cryptage
servant à authentifier le serveur. (A priori unique car aléatoire, cette
clef est échangée a la connexion du client. Celui-ci doit accepter la clef
lors de la premiere connexion, et refuse de se reconnecter sur le serveur
ayant le meme nom si cette clef change, ceci afin d'eviter les usurpation de
serveur.)
Conseil : Interdire aux gens de se connecter en root directement
quand ils passent par ssh. Indépendamment de la "force" des mot de passe,
cela oblige un intrus eventuel à connaitre le login d'un autre compte avant
de pouvoir passer root sur la machine.
Pour se faire tapez les commandes :
vi /etc/ssh/sshd_config -> édite le fichier de conf du serveur
apputez sur "echap" puissaisissez "/PermitRootLogin" -> recherche la ligne à changer
se placer sur le "y" de "yes"
tapez "cw" (change word => changer un mot)
tapez "no"
appuyez sur "echap" puis saisissez ":wq" (sauvegarder et quitter)
Enfin relancez le serveur ssh avec la nouvelle configuration:
/etc/init.d/ssh restart
Les clefs SSH
OpenSSH permet une authentification par clef. Cela est très intéressant notamment
pour utiliser des copies par dessus SSH, et ce sans mot de passe.
Sur le serveur qui va initier la connexion, il faut générer la clef SSH.
Nous allons donc gén&eacure;rer une clef de 2048 bits, ce qui est suffisant
pour la pluspart des utilisations.
ssh-keygen -t rsa -B 2048
Ensuite, appuyez sur entrée à chaque questions.
- La première vous demande ou savegarder la clef SSH;
- La seconde vous demande le mot de passe de la clef (utile si c'est pour uniformiser votre mot de passe sur toutes vos machines)
- La troisième vous demande de confirmer votre mot de passe de la clef.
Dans le cas d'une tâche cron, il est intéréssant de ne pas mettre de mot de passe.
Ensuite, il faut copier la clef ainsi générée :
cat ~/.ssh/id_rsa.pub
Et de le copier dans le fichier authorized_keys du serveur.
Editez donc ~/.ssh/authorized_keys et ajoutez y la clef copiée.
-
sudo est une application permettant d'exécuter une commande sous une
autre identitée sans se reloguer et sans connaitre le mot de passe
de l'autre compte.
Exemple :
* pour redemarrer la machine en mode console, un simple
"sudo reboot" sufit la ou precedemment il fallait passer en root,
puis faire un reboot.
* Pour mettre a jour la liste des paquets disponibles :
"sudo apt-get update"
* pour mettre a jour le systeme :
"sudo apt-get upgrade" ou "sudo apt-get dist-upgrade"
Afin de réaliser un tuto de la meilleurs qualité qu'ils soit
Nous nous sommes inspirés d'un autre tuto déjà bien complet
Le tuto (aussi détaillé soit-il) ne dispense pas
de la lecture des infos/questions affichées à l'écran
On considere les droits root aquis pour la suite du tuto.
Installation de sudo (debian)
-> Mettez à jour la liste des paquets disponibles
apt-get update
-> Installez sudo
apt-get install sudo
Pas de validation (sudo fonctionne tout seul, sans être dépendant d'autres
librairies / applications).
Configuration de sudo
-> Tout se passe dans le fichier /etc/sudoers.
-> Ce fichier se decompose en 4 parties :
A/ Host alias specification
Utile uniquement pour des parcs de serveurs ou le fichier sudoers sera repliqué
(avec des droits spécifiques selon la machine)
L'hôte se définit par le nom de serveur, l'adresse IP, une plage d'IP.
MACHINE_PERSO=serveur,192.168.1.3,192.168.0.0/255.255.255.0
B/ User alias specification
Cette section permet de définir des groupes d'utilisateurs afin de ne pas
créer une règle par utilisateur.
Par exemple, un groupe "PROF" qui contiens les profs et un groupe "ELEVE",
chacun de ces deux groupes ayant plus ou moins de droits root.
Pour ce faire, c'est les lignes :
User_Alias PROF=prof1,prof2
User_Alias ELEVE=eleve1,eleve2
C/ Cmnd alias specification
Dans le meme genre que la section précèdente, ce bloc permet de faire des
groupes de commandes. Par exemple, le groupe POWER qui contient halt et reboot.
Cmnd_Alias POWER=/sbin/halt,/sbin/reboot
D/ User previlege specification
Ceci est la section qui contrôle réellement les droits.
Syntaxe :
user host=(new_user) [NOPASSWD:]cmd
user = Utilisateur (ou groupe)
host = Machine (ou groupe)
new_user = Utilisateur à remplacer -- facultatif car par defaut root.
NOPASSWD : ne demande pas le mot de passe pour cette commande.
cmd = commande (ou groupe)
Il y as une ligne déjà présente,
root ALL=(ALL) ALL
donc cela donne :
l'utilisateur "root" sur la machine "ALL" donc sur toutes les machines
a le droit d'éxécuter en tant que ALL donc n'importe qui la commande ALL
donc toutes les commandes.
Pour avoir les droits de rebooter les machines pour les profs, la ligne
serait donc :
PROF ALL=POWER (commande root)
Pour que l'utilisateur michael ait les droit de l'utilisateur richard, la
commande serait :
michael MACHINE_PERSO=(richard) ALL
Autorisez aux élèves la commande permettant de relancer le serveur Web
sans mot de passe serais :
ELEVE ALL=NOPASSWD:/etc/init.d/apache2 restart
-
Je me présente
Pseudo: dokuro/dokkun :P
Age : 23ans et toutes mes dents
Mes Mangas : Bleach,Gto,naruto,love hina,get beckers....
Mes Passions : l'informatique,les jeux vidéos, lire, les sorties, le cinéma...
Mes Dramas : flower the boy, para para sakura... -
trop mimi=) et à moi tu me dis pas ?

-
Chat Méchant
dans Humour
hoo trop cutty huhuuuu XD
Installer un sftp avec chroot sur debian
dans Linux
Posté(e) · Signaler la réponse
Introduction
Ce tutoriel explique pas à pas comment installer un serveur sftp sur debian wheezy avec les droits d'accès qui vont bien sur les répertoires.
SFTP se base sur ssh. Il faut installer quelques packages :
apt-get install ssh openssh-server
Ce groupe contiendra la liste des users qui peuvent se connecter en sftp
Evolutions à faire dans /etc/ssh/sshd_config
Subsystem sftp /usr/lib/openssh/sftp-server
# ajouter à la fin du fichier :
Match Group sftp_chroot
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
# pensez à relancer le serveur ssh : /etc/init.d/ssh restart
Créer un user unix classique
Pour empêcher le sftp de remonter dans l'arborescence, on peut jouer avec les droits d'accès
chown root /home/testuser
chmod go-w /home/testuser
# create a writable directory
mkdir /home/testuser/writeable
chown testuser:sftp_chroot /home/testuser/writeable
chmod ug+rwX /home/testuser/writeable
Voilà un petit script bash qui fait tout pour vous.
N'utilisez le qu'une fois que vous avez compris ce que vous faites. Et si ça casse tout chez vous, je plaide non coupable :-).
# author : Philippe Le Van, twitter: @plv
USER_NAME=$1
SFTP_GROUP_NAME=sftp_chroot
if [ "x$USER_NAME" == "x" ]; then
echo "you have to provide a user name"
exit;
fi
getent group $SFTP_GROUP_NAME > /dev/null 2&>1
if [ $? -ne 0 ]; then
echo "group $SFTP_GROUP_NAME does not exist.";
echo "see this (french) tutorial : http://www.kitpages.fr/fr/cms/193/installer-un-sftp-chroote-sur-debian";
exit;
fi
getent passwd $USER_NAME > /dev/null 2&>1
if [ $? -eq 0 ]; then
echo "user already exists";
exit;
fi
useradd $USER_NAME --gid $SFTP_GROUP_NAME --groups $SFTP_GROUP_NAME -m --shell /bin/false
echo "user created";
# base directory given to root only
chown root /home/$USER_NAME
chmod go-w /home/$USER_NAME
# create a writable directory
mkdir /home/$USER_NAME/writeable
chown $USER_NAME:$SFTP_GROUP_NAME /home/$USER_NAME/writeable
chmod ug+rwx /home/$USER_NAME/writeable
echo "access right ok";
echo "change password";
passwd $USER_NAME