Installation des RPMs requis
- Pilote pour lecteur de carte ACR38 USB Reader (ACS) :
http://www.acr38u.com/pages/pc-linked-smart-card-readers/drivers/
- Application eID :
http://files.eid.belgium.be/rpm/fedora/19/x86_64/
vendredi 27 juin 2014
samedi 4 juillet 2009
Configuration de Fedora pour le JDK de Sun
Par défaut, Fedora s'installe avec une implémentation "open" de Java (openjdk). Il se peut que pour une raison "xyz" vous souhaitiez utiliser le Java de Sun. On peut éviter la désinstallation de l'implémentation par défaut openjdk et faire coexister pacifiquement plusieurs Java en utilisant la commande alternatives. Sans entrer trop dans les détails, la commande alternatives va permettre de basculer d'une implémentation sur l'autre en redirigeant un ensemble de liens symboliques.
Concrètement, pour réaliser une migration en douceur, vous installer votre JDK de Sun, et ensuite, vous lancer le script suivant que vous aurez préalablement adapté :
-------------------------------------------------------#!/bin/bash
JDK=/usr/java/jdk1.6.0_14
/usr/sbin/alternatives \
--install /usr/bin/java java $JDK/bin/java 250673 \
--slave /usr/bin/rmiregistry rmiregistry $JDK/bin/rmiregistry \
--slave /usr/share/man/man1/java.1 java.1 $JDK/man/man1/java.1 \
--slave /usr/share/man/man1/rmiregistry.1 rmiregistry.1 $JDK/man/man1/rmiregistry.1 \
--slave /usr/lib/jvm/jre jre $JDK/jre \
--slave /usr/lib/jvm-exports/jre jre_exports $JDK/jre/lib
/usr/sbin/alternatives \
--install /usr/bin/javac javac $JDK/bin/javac 250673 \
--slave /usr/bin/javadoc javadoc $JDK/bin/javadoc \
--slave /usr/bin/javah javah $JDK/bin/javah \
--slave /usr/bin/jar jar $JDK/bin/jar \
--slave /usr/bin/rmic rmic $JDK/bin/rmic \
--slave /usr/lib/jvm/java java_sdk $JDK \
--slave /usr/lib/jvm-exports/java java_sdk_exports $JDK/lib \
--slave /usr/share/man/man1/javac.1 javac.1 $JDK/man/man1/javac.1 \
--slave /usr/share/man/man1/javadoc.1 javadoc.1 $JDK/man/man1/javadoc.1 \
--slave /usr/share/man/man1/javah.1 javah.1 $JDK/man/man1/javah.1 \
--slave /usr/share/man/man1/jar.1 jar.1 $JDK/man/man1/jar.1 \
--slave /usr/share/man/man1/rmic.1 rmic.1 $JDK/man/man1/rmic.1
ln -s $JDK/jre/lib/amd64/libjavaplugin_jni.so /home/mdupont/.mozilla/plugins/libjavaplugin_jni.so
-------------------------------------------------------
Dans ce script, vous devrez adapter la valeur de la variable JDK (deuxième ligne), pour qu'elle contienne le chemin du Java de Sun. Vous devrez aussi changer le nom d'utilisateur (mdupont) à la dernière ligne (qui sert à installer le plugin pour Firefox).
et entrer 250673 pour sélectionner le Java souhaité (vous aurez sans doute compris que ce nombre est arbitraire dans le script, et qu'il doit simplément être différent des nombres attribués aux autres alternatives...)
Et voilà ! Comme disait ma grand-mère dans son dialecte : "én sakwê tfé". A+
Une fois, le script lancé, il ne vous reste qu'à taper la commande suivante :
alternatives --config javaet entrer 250673 pour sélectionner le Java souhaité (vous aurez sans doute compris que ce nombre est arbitraire dans le script, et qu'il doit simplément être différent des nombres attribués aux autres alternatives...)
Et voilà ! Comme disait ma grand-mère dans son dialecte : "én sakwê tfé". A+
jeudi 2 juillet 2009
Sauvegarde avec rsync en SSH
Imaginons que vous vouliez sauvegarder vos données sur une machine distance accessible en SSH. Appelons cette machine ordi.domaine.net. et supposons que vous y disposiez d'un compte mdupont. La commande rsync permet très facilement de faire cela. Voici le code d'un script que j'utilise pour effectuer mes propres sauvegardes :
------------------------------------------------------------------------------
#!/bin/bash
------------------------------------------------------------------------------
#!/bin/bash
rsync -avz -R -e ssh --delete --delete-excluded /home/mdupont --exclude Music --exclude .gvfs --exclude Videos mdupont@ordi.domaine.net:/home/mdupont/backups/pcboulot/
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Placez ce code dans un fichier que vous nommerez par exemple backup.sh et rendez ce fichier exécutable avec la commande chmod u+x backup.sh.
Si vous lancez ce script, rsync va effectuer une commade ssh (en fait plutôt un scp) sur la machine distante, et donc un mot de passe va être demandé pour l'utilisateur mdupont, ce qui peut être génant si vous souhaitez automatiser vos backups avec cron par exemple. La solution simple et sûre pour éviter cela est de copier la clef publique de mdupont dans son fichier ~/.ssh/authorized_keys sur la machine distante. Le -R va faire en sorte que les fichiers soient sauvés avec leur chemin complet.
Analysons maintenant la commande rsync donnée ci-dessus :
Si vous lancez ce script, rsync va effectuer une commade ssh (en fait plutôt un scp) sur la machine distante, et donc un mot de passe va être demandé pour l'utilisateur mdupont, ce qui peut être génant si vous souhaitez automatiser vos backups avec cron par exemple. La solution simple et sûre pour éviter cela est de copier la clef publique de mdupont dans son fichier ~/.ssh/authorized_keys sur la machine distante. Le -R va faire en sorte que les fichiers soient sauvés avec leur chemin complet.
Analysons maintenant la commande rsync donnée ci-dessus :
- L'option -a signie que l'on va effectuer la copie des données en mode "archive", ce qui veut dire que liens symboliques, les permissions, les ownerships, etc. seront conservés sur la destination du backup.
- L'option -v sert, comme d'habitude, à rendre la commande verbeuse.
- L'option -z est elle aussi très sympa puisque elle active la compression des données avant transfert, ce qui permet d'épargner de la bande passante et d'accélérer le backup.
- L'option --exclude permet d'indiquer le nom d'un fichier que l'on veut exclure de la sauvegarde. Remarquez que l'on peut mettre plusieurs exclude et que le nom du fichier exclu est relatif au répertoire source.
- Le --delete va avoir pour effet de supprimer sur la destination tout fichier absent de la source.
- Dans le même ordre d'idée, --delete-excluded va faire supprimer de la destination les fichiers exclus (voir option --exclude).
Remarquez aussi l'absence de "trailing slash" dans le nom de la source, ce qui précise que l'on veut copier le répertoire ainsi que son contenu. Si on ajoute un slash à la fin de la source, alors rsync ne copie que le contenu du répertoire, et pas le répertoire lui-même.
Et maintenant, la cerise sur le gâteau : automatisons l'exécution du script grâce à cron ! Pour cela, il faut lancer la commande :
crontab -u mdupont -e
Cette commande sert à éditer avec vi le crontab de l'utilisateur mdupont. Pour info, le résultat de cette commande sera la création d'un fichier /var/spool/cron/mdupont. Mettez la ligne suivante dans le crontab :
2 * * * * /home/mdupont/backup.sh >/home/mdupont/backup.log 2>&1
Cela aura pour effet de lancer le script de backup toutes les heures et 2 minutes et d'afficher le résultat dans un fichier log.
Voilà une bien longue explication, mais je n'ai fait que couvrir une partie de toutes les possibilités de rsync !
A bientôt !
Et maintenant, la cerise sur le gâteau : automatisons l'exécution du script grâce à cron ! Pour cela, il faut lancer la commande :
crontab -u mdupont -e
Cette commande sert à éditer avec vi le crontab de l'utilisateur mdupont. Pour info, le résultat de cette commande sera la création d'un fichier /var/spool/cron/mdupont. Mettez la ligne suivante dans le crontab :
2 * * * * /home/mdupont/backup.sh >/home/mdupont/backup.log 2>&1
Cela aura pour effet de lancer le script de backup toutes les heures et 2 minutes et d'afficher le résultat dans un fichier log.
Voilà une bien longue explication, mais je n'ai fait que couvrir une partie de toutes les possibilités de rsync !
A bientôt !
mercredi 25 mars 2009
Sauvegardes automatiques avec rsnapshot
Comme j'en avais assez de perdre du temps à faire mes backups "à la main", j'ai installé rsnapshot. Il s'agit en fait d'un script Perl utilisant rsync et assez simple à configurer : il suffit de modifier le fichier /etc/rsnapshot.conf. Voici ma configuration (sans les commentaires) :
config_version 1.2snapshot_root /mnt/vm/Backups/rsnapshot/
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
interval hourly 2
interval daily 1
verbose 2
loglevel 3
logfile /var/log/rsnapshot
lockfile /var/run/rsnapshot.pid
backup /home/ pc999/
backup /etc/ pc999/
Le paramètre "snapshot_root" définit l'emplacement de stockage des sauvegardes. Les éléments à sauvegarder ont été définis dans les deux dernières lignes : la première valeur spécifie le répertoire à sauver, la deuxième valeur spécifie le dossier de stockage de la sauvegarde relativement au chemin donné dans "snapshot_root".
Les lignes avec le paramètre "interval" permettent de définir la rotation des sauvegardes. Elles permettent de définir combien de sauvegardes rsnapshot doit conserver par heure, par jour, par semaine, etc. Dans mon cas, j'ai demandé pour ne conserver qu'un maximum de deux sauvegardes par heure, et une par jour.
Une fois ces paramètres définis, ont peut tester la configuration :
#rsnapshot configtest#rsnapshot -t hourly
#rsnapshot -t daily
Pour lancer une sauvegarde manuellement :
#rsnapshot -v hourlyPour automatiser les sauvegardes avec cron, j'ai créé le fichier :
/etc/cron.d/backup_hourly
avec le contenu suivant :
15 10 * * * root /usr/bin/rsnapshot hourly > /dev/null 2>&1
15 12 * * * root /usr/bin/rsnapshot hourly > /dev/null 2>&1
15 15 * * * root /usr/bin/rsnapshot daily > /dev/null 2>&1
Je peux maintenant dormir sur mes deux oreilles !
/etc/cron.d/backup_hourly
avec le contenu suivant :
15 10 * * * root /usr/bin/rsnapshot hourly > /dev/null 2>&1
15 12 * * * root /usr/bin/rsnapshot hourly > /dev/null 2>&1
15 15 * * * root /usr/bin/rsnapshot daily > /dev/null 2>&1
Je peux maintenant dormir sur mes deux oreilles !
samedi 14 mars 2009
Fingerprint reader UPEK sous Fed10 64 bit - Suite...
Après l'installation des dépendances, on peut passer à celle du soft proprement dite. On ne peut utiliser directement le script d'installation car il fait appel à la commande "getlibs". Alors j'ai simplement modifié ce script en mettant en commentaire les différentes parties qui y font appel. Après avoir lancé le script :
./install.sh --with-upekj'ai créé un lien symbolique vers la librairie libbsapi.so :
ln -s /usr/local/lib/libbsapi.so /usr/lib64/libbsapi.so
et un autre vers libpam_fingerprint.so :
ln -s /lib/security/libpam_fingerprint.so /lib64/security/libpam_fingerprint.so
Il ne me restait plus qu'à lancer le programme :
fingerprintGUI &
et à scanner mes empreintes ;-) Celles-ci sont stockées dans le répertoire ~/.fingerprints/libbsapi/. Et j'ai testé que mes doigts étaient bien reconnus avec la commande :
fingerprintIdentifier &J'ai pu remarqué que cette commande fonctionnait seulement si elle était invoquée à partir du compte root. J'en ai déduit qu'il fallait positionner à 1 le setuid :
chmod u+s /usr/local/bin/fingerprintIdentifierJ'ai fait de même pour la commande fingerprintGUI.
On arrive à la partie la plus délicate, celle de la configuration du service PAM pour qu'il utilise Fingerprint pour l'authentification. Pour ce faire, j'ai simplement suivi les instructions du pdf. J'ai ainsi configurer la commande su via le fichier /etc/pam.d/su pour pouvoir m'authentifier avec mes empreintes digitales lorsque je me logge en root, ce qui a fonctionné.
Fingerprint reader UPEK sous Fed10 64 bit
Je me suis mis en tête de vouloir utiliser le lecteur d'empreintes digitales de mon portable à des fins d'authentification. Mon portable est équipé de Fedora Core 10 64 bit. La commande "lspci" m'a permis d'identifier le lecteur d'empreintes (UPEK 147e:1000). N'ayant pas trouvé les drivers/firmwares correspondant avec la commande "yum", après quelques recherches sur Google, j'ai découvert que le constructeur ne fournissait que le driver 32 bit. D'autres recherches m'ont amené sur le site :
http://www.n-view.net/Appliance/fingerprint/Le soft proposé s'appelle "Fingerprint GUI" (version 0.9). J'ai décompressé le tgz, j'ai lu le pdf expliquant l'installation pas à pas, et j'ai lu le code source du script d'installation. Ce qui m'a permis de découvrir que le soft proposé sur ce site a été conçu en 32 bit. Et que le script d'installation prend cependant en considération le cas d'un Linux 64 bit mais uniquement pour les distributions genre Debian et Ubuntu, car il utilise la programme "getlibs" uniquement disponible sous ces OS. Cet utilitaire est capable de récupérer toutes les dépendances d'un programme et de les installer.
Ne disposant donc pas de la commande magique "getlibs", j'ai du passer mon temps à passer au crible toutes les dépendances 32 bits des applications fingerprintGUI, fingerprintIdentifier et fingerprintHelper à l'aide de la commande "ldd", et les ai ensuite installées avec "yum". (A suivre...)
Inscription à :
Articles (Atom)
