|
Softs
osx2x 2.2.0 DesktopManager 0.5.1 SSHTunnel Manager 1.0 SSHLogin 1.2 Packages Icones grises T610 (60.3 ko) Postfix-1.1.11 (3.9 Mo) fink-0.10.0-cvs (8.9 Mo) MySql 3.23.52 (3.8 Mo) Tech
|
Mac OS X propose en standard un serveur FTP que l’on peut activer dans les options de partage des préférences systeme. Ceci peut s’avérer pratique si on désire copier des fichiers par internet, ou à partir d’une plateforme ne supportant pas AppleShare. Cependant, il faut disposer d’un compte sur la machine et ainsi accéder directement aux fichiers de ce compte. Il n’est donc pas possible à la base de se connecter en anonyme et accéder aux dossiers "Public" des utilisateurs, comme le permet le partage AppleShare. Cet article vous montre donc comment installer un autre serveur FTP et le configurer pour prendre en charge cette fonctionnalité. Je ne me suis pas basé sur le serveur FTP natif de Mac OS X (lukemftpd 1.1) car il n’est pas très répendu, et pure-ftpd dispose de fonctionnalités interessantes. ATTENTION ! Cette méthode autorise tout le monde à lire votre répertoire de base. Les dossiers par défaut créés par le système ne sont pas accessibles, mais les dossiers que vous créez le sont ! N’ouvrez le serveur FTP que quand vous en avez besoin (dans les préférences Partage du systeme)
Les fichiers de cet article
Cet article a été mis à jour et explique à présent comment créer le user ftp ;-) désolé pour la boulette Prérequis
Pour suivre cette méthode, vous devrez disposer des developer tools d’apple. Ces outils sont librement téléchargeables sur le site Développeurs Apple après vous être inscrit. Installation
Tout d’abord, récupérez les sources de la dernière version de pure-ftpd sur sourceforge : http://sourceforge.net/project/showfiles.php ?group_id=18317 et décompressez les. Nous allons supposer tout au long de l’article que les sources se trouvent dans votre répertoire de base, sous le dossier /src et que l’installation se fera dans le répertoire /usr/local/pure-ftpd/ $ tar -xzf pure-ftpd-1.0.12.tar.gz $ cd pure-ftpd-1.0.12/ Voyons un peu quelles fonctionnalités sont disponibles à la compilation : $ ./configure --help [...] --with-dmalloc use dmalloc, as in http://www.dmalloc.com/dmalloc.tar.gz --without-standalone Don't compile the standalone server code --without-inetd Don't support super-servers (like inetd) --without-capabilities Don't use Linux capabilities (default=detect) --without-shadow Don't use shadow passwords (default=detect) --without-usernames Use only numerical UIDs/GIDs --without-iplogging Never log remote IP addresses (privacy) --without-humor Disable humor (enabled by default) --without-longoptions Don't support long options (like --help) --without-ascii Don't support 7-bits (ASCII) transfers --without-banner Don't display any initial banner --without-globbing Don't include globbing code --without-nonalnum Only allow basic alphanumeric characters in file names --without-sendfile Don't use zero-copy optimizations (for network FS) --with-brokenrealpath If your libc has a broken realpath() call --with-probe-random-dev If you want to probe for /dev/*random at run-time --with-minimal Build only a small minimal server --with-paranoidmsg Use paranoid, but not admin-friendly messages --with-sysquotas Use system (not virtual) quotas --with-altlog Support alternative log format (Apache-like) --with-puredb Support virtual (FTP-only) users --with-extauth Support external authentication modules --with-pam Enable PAM support (default=disabled) --with-cookie Support 'fortune' cookies (-F option) --with-throttling Support bandwidth throttling (disabled by default) --with-ratios Support for upload/download ratios --with-quotas Support .ftpquota files --with-ftpwho Support for pure-ftpwho --with-largefile Support for files > 2 Gb (may be slower) --with-welcomemsg Support welcome.msg backward compatibility (deprecated) --with-uploadscript Allow running an external script after an upload --with-virtualhosts Handle virtual servers on different IP addresses --with-virtualchroot Enable the ability to follow symlinks outside a chroot jail --with-diraliases Enable directory aliases --with-nonroot Non-root FTP (experimental) --with-peruserlimits Support per-user concurrency limits (experimental) --with-debug For maintainers only - please do not use --with-everything Build a big server with almost everything --with-language= < english | german | romanian | french | french-funny | polish | spanish | danish | dutch | italian | brazilian-portuguese | slovak | korean | swedish | norwegian | russian | traditional-chinese | simplified-chinese > --with-ldap Users database is an LDAP directory (see doc) --with-mysql Users database is a MySQL database (see doc) --with-pgsql Users database is a PostgreSQL database (see doc) [...] Plutot pas mal, voici ce que je vous propose d’activer, cette ligne va permettre de préparer la compilation avec les options suivantes : ./configure --without-standalone --with-puredb --with-throttling --with-ftpwho --with-language=french --prefix=/usr/local/pure-ftpd —without-standalone : Nous n’avons pas besoin du mode standalone, notre serveur ftp tournera exclusivement via xinetd, le nouveau super-démon qui remplace avantageusement inetd sous Jaguar (Mac OS 10.2).
—with-puredb : Grâce à cette option, nous pourrions éventuellement définir des comptes qui ne sont pas des comptes système (cette documentation n’en parlera pas plus).
—with-throttling : L’une des options les plus interessante, nous allons pouvoir limiter la bande passante disponible afin d’en garder un peu pour notre usage !
—with-ftpwho : Cette option installe un outil supplémentaire pour visualiser les utilisateurs connectés.
—with-language=french : Sans commentaires !
—prefix=/usr/local/pure-ftpd : Nous précisons à quel endroit installer le serveur
Et maintenant, la compilation : $ make Si tout se passe bien, vous pouvez passer à l’installation dans les répertoires finaux, un mot de passe administrateur de votre système sera demandé : $ sudo make install Et voilà ! on peut passer à la suite ! Configuration
Nous avons décidé de configurer pure-ftpd pour qu’il tourne via xinetd, il faut donc configurer ce dernier pour qu’il lance pure-ftpd quand une connexion est demandée, au lieu de lancer le serveur ftp par défaut. Ceci requiert l’édition d’un fichier système, si vous n’êtes pas sûr de vous, vous risquez au pire de rendre inaccessible le serveur ftp, mais rien d’irréversible. Nous allons donc éditer le fichier /etc/xinetd.d/ftp a l’aide de vi, si vous n’êtes pas familier avec vi, vous pouvez utiliser bbedit par exemple, mais vous devrez avoir installé les outils shell, sinon, un rapide résumé des commandes vi :
C’est parti : sudo vi /etc/xinetd.d/ftp Voilà à quoi doit ressembler le fihcier après modification : service ftp { disable = no socket_type = stream wait = no user = root server = /usr/local/pure-ftpd/sbin/pure-ftpd server_args = -A -u 100 groups = yes } Pour la limitation de bande passante, vous pouvez en plus ajouter à server_args : -t
Vous pouvez maintenant valider votre configuration en forçant xinetd à relire sa configuration : $ sudo killall -USR2 xinetd Il reste une dernière opération à faire : Créer l’utilisateur "ftp" du système. En effet, par défaut et pour une raison inconnue, celui-ci n’existe pas ! Armez vous de l’application NetInfo Manager dans le dossier Utilitaires de Applications. ![]() Cliquez sur l’icone en bas à droite pour saisir votre mot de passe d’administrateur. ![]() Naviguez jusqu’à /users et sélectionnez l’utilisateur "games". Cliquez sur l’icone Dupliquer en haut à gauche et confirmez le dialogue. Modifiez ensuite les valeurs de ce nouvel utilisateur pour refléter ce tableau : ![]() Voilà, c’est prêt, vous pouvez tout sauvegarder en quittant NetInfo et vous connecter en anonyme sur votre système, la liste des dossiers des utilisateurs vous sera proposée. Vous pouvez bien sûr aussi vous connecter sous l’identité d’un utilisateur régulier. En anonyme, pour chaque utilisateur, vous avez accès en lecture seule à "Public" et pour pouvez télécharger des documents dans "Drop Box" |