////////////////////////////////////////////////////////////////////////////////////////////////////// NB : ceci est mon "pense-bête" _personnel_ : j'y mets mes notes au fur et à mesure de ma découverte de Linux - Mandrake/Mandriva principalement, Debian, Knoppix et dérivés(kanotix ...) et Cygwin parfois-. Vous y trouverez donc des erreurs, des explications incomplètes ou qui ne correspondent plus aux versions actuelles et des choses que je suis le seul à comprendre : il est donc bien préférable de se fier aux documents cités en références dont ces explications sont généralement tirées. Mais comme certaines explications peuvent être utiles, je laisse ce fichier en ligne. Il n'y a pas de classement ou de liens : utilisez la fonction "recherche" de votre navigateur (ou de votre éditeur de texte). A utiliser à vos risques et périls :) Jean-Claude Garaud /////////////////////////////////////////////////////////////////////////////////////////////////////// Géographie ========== http://www.geoportail.fr Googleearth Les mines de renseignements =========================== http://mdvmondelinux.tuxfamily.org/Da-Charte,105?lang=fr Charte Mandriva avec liens intéressants http://www.linfo.org/main_index.html The Linux Information Project http://www.linux-pour-lesnuls.com http://www.google.fr/linux Google pour Linux http://wiki.mandriva.com/fr/Accueil http://wiki.mandriva.com/fr/Vade_Mecum http://forum.mandriva.com/index.php?&op=Fr http://forum.mandriva.com/index.php?&op=En http://club.mandriva.com/xwiki/bin/view/KB/GettingHelp Vademecum du débutant http://club.mandriva.com/xwiki/bin/view/KB/GettingHelp?language=fr#HLEVADEMECUMDUDEBUTANT http://librenix.com/ Linux System Administration Portal http://tldp.org/ The Linux Documentation Project http://tldp.org/LDP/intro-linux/html/ Introduction to Linux http://tldp.org/LDP/intro-linux/html/chap_04.html Processes http://www.freenix.fr/unix/linux/Guide/ Le guide du rootard http://www.delafond.org/survielinux/ Guide de survie du débutant sous Linux http://lea-linux.org http://www.trustonme.net/global.php Didacticiels divers http://www.jennings.homelinux.net/tips.html Linux tipsfreenx http://www.ac-creteil.fr/reseaux/systemes/linux/Welcome.html http://www.funix.org/fr/linux/main-linux.php3?ref=main&page=menu http://www.zebulon.org.uk/ http://christian.caleca.free.fr/index.html http://aplawrence.com http://linux-newbie.sunsite.dk/index.html http://www.unixguide.net/linux/linuxshortcuts.shtml http://www.freeos.com http://www.anfalab.org http://tldp.org http://www.linux-france.org/article/cesar/index.php?page=501 Petit journal d'un linuxien novice http://astuce.linux.free.fr/ http://troumad.free.fr/Linux/Linux.sxw http://guide.andesi.org installer distribution Debian http://funix.chez.tiscali.fr/informatique/linux/ Configs diverses http://linux-sottises.net Configs diverses http://homepages.shu.ac.uk/~cmsps/unix/index.html Unix, Linux and X http://www.shu.ac.uk/schools/cms/teaching/ps/unix/utools.html Petits outils (wc, tee, tr, sort, cut, paste, cmp, sdiff, join, lp, pr, uniq, awk etc.) http://www.univ-st-etienne.fr/infsci/linfo/l0/unix/Cours/Html/ UNIX Principes de base http://cyberzoide.developpez.com/unix/ Pense bête pour UNIX http://www.lalitte.com/nat Réseau : NAT http://www.commentcamarche.net/ http://cryptos.ch/ MDKMondelinux http://www.protocols.com/ http://www.w3schools.com/default.asp HTML, XML, SQL, PHP, etc. http://club.mandriva.com/xwiki/bin/KB/ Documentations Mandriva http://soft.zoneo.net/Linux/ ZoneO-trucs pour Mandriva Linux http://tille.xalasys.com/training/tldp/ch04s02.html Boot process http://www.funix.org/fr/linux/main-linux.php3?ref=main&page=menu Courrier Electronique http://www.coagul.org/article.php3?id_article=234 Copier/partager/synchroniser un fichier entre deux postes, sauvegardes http://faculty.ucr.edu/~tgirke/Documents/UNIX/linux_manual.html Linux essentials http://www.comptechdoc.org/os/linux/usersguide/ CTDP Linux User's Guide http://www.linuxguide.it/linux_commands_line_en.htm Linux en ligne de commange http://framasoft.blip.tv/ vidéos sur le libre Interfaces graphiques (bureau, gestionnaire de fenètres) ======================================================== icewm http://troumad.developpez.com/linux/serveurx/icewm/ http://www.trustonme.net/didactels/73.html Aide ==== man help Utiles ====== Easy urpmi http://easyurpmi.zarb.org/?language=fr Easy Mandriva http://s186790720.onlinehome.fr/ Tutorials ========= http://www.linuxplanet.com/linuxplanet/tutorials/?Sort=Title Traducteur en ligne =================== http://www.reverso.net Let me google for you ===================== Amusant : http://lmgtfy.com/?q=reverso Processus de boot de linux, runlevel, services ============================================== http://forum.zebulon.fr/index.php?showtopic=54333 http://www.linux-wizard.net/howto.php?section=1&key=services Pour la gestion des services : # mcc puis -> services ou directement (mcc appelle drakservices) : # drakservices ou, plus puissant (permet de changer l'ordre de démarrage ou arrêt), installer, très sympa ! # tksysv En ligne de commande : - Démarrage/arrêt : # service status | start | stop | restart ou bien (équivalent) # /etc/rc.d/init.d/ status | start | stop | restart - Ajouter un service ou changer l'ordre de démarrage des services Tous les scripts des services sont dans /etc/init.d/ Les services à lancer pour un runlevel "x" (8 runlevel possibles de 0 à 7) sont listés dans les répertoires /etc/rc.d/rcx.d. Les services à lancer (ou arrêter) sont simplement des liens vers les scripts qui sont dans /etc/init.d, avec un nom de la forme : Sxyservice Script de démarrage (S pour start), xy numéro d'ordre de démarrage Kxyservice idem pour l'arrêt (K pour kill) Nb : # runlevel N 5 indique le runlevel actuel (5 en mode graphique pour Mandrake) Démarrage automatique d'applications ==================================== cf : ~/.kde/Autostart /usr/share/autostart Autre solution "à la UNIX" : -------------------------- Créer dans /etc/init.d/ un script contenant la (les) commande(s= à exécuter : cd /etc/init.d/ vi leScript #!/bin/bash commande1 commande2 L'enregistrer et le rendre exécutable : chmod 744 leScript Créer les liens symboliques dans les "runlezvel où il doit s'exécuter : cd /etc/rc3.d; ln -s ../init.d/leScript S99leScript cd /etc/rc3.d; ln -s ../init.d/leScript K99leScript Configuration du démarrage, gestionnaire de connexion ===================================================== Voir mcc > Démarrage Démarrage avec/sans interface graphique et connexion avec/sans login et mot de passe ------------------------------------------------------------------------------------ mcc > Démarrage > Configurer la connexion automatique Démarrage de KDE (sauvegarde de la session) =========================================== K > System > Configuration > KDE > KDE Components > Session Manager ou plus directement : $ kcontrol > KDE Components > Session Manager On Login choisir : Restore previous session : sauvegarde automatique de la session rechargée au prochian démarrage Restore manually saved session : fait apparaître un nouveau choix dans le menu K : "Save Session" La session sauvegardée sera rechargée au prochain démarrage Start with an empty session Screen ====== http://www.rackaid.com/resources/tips/linux-screen.cfm NB : C-a représente l'appui simultanné sur les touches Ctrl et A C-d Ctrl et D $ screen Crée un screen (écran) avec une fenêtre (windows), en fait une nouvelle console avec shell qui répond maintenant, en plus du comportement du shell normal, à l'appui sur C-a C-a Après avoir lancé la commande screen, C-a permet d'envoyer une commande à screen plutôt qu'au shell normal C-a ? Aide touches rapides C-a c Crée dans un screen (écran) une nouvelle fenêtre (window) avec un shell C-a n next window C-a p previous window C-d supprime la fenêtre sur laquelle on est C-a k quitter screen $ exit idem C-a d "détacher" (=ferme) une fenêtre. On revient au shell normal. La fenêtre existe toujours. Pour la "réattacher" (la faire réapparaître), utiliser screen -ls pour lister les fenêtres et leur état (attached/detached), puis : $ screen -r "réattache" la fenêtre $ screen -dr "détache" puis "réattache" lafenêtre (utile pour passer dans une autre session) $ screen -x duplique le fenêtre C-a H Creating logfile "screenlig.0 C-a H Logfile "screenlig.0 closed C-a H Appending to logfile "screenlig.0 etc C-a M monitor (affiche au bas des windows l'état d'activité d'autres windows) $ screen -ls Liste les écrans avec leur PID $ screen -list idem $ screen -S toto crée un écran qui a pour nom "toto" $ ps auwx | grep -i screen Affiche les demons et fenêtres $ killall screen Pour supprimer screen (un peu brutal !) En résumé : ----------- $ screen -S nom crée un screen et lui donne le nom "nom" $ screen -ls liste les "screen" créés [Ctrl][A][d] détache le screen $ screen -r nom rattache le screen "nom" $ screen -r numéro idem en passant le n° donné par screen -ls $ screen -x nom duplique la console "nom" $ exit termine le sceen actuel Consoles (terminal) diverses et graphiques ========================================== screen Yakuake http://yakuake.uv.ro/ Hotwire http://submind.verbum.org/hotwire/wiki http://cgwalters.livejournal.com/ Souris en console texte ======================= # urpmi e # service gpm status et s'il n'est pas démarré : service gpm start Le fichier de configuration est dans /etc/sysconfig/mouse Souris graphique ================ # drakmouse ou mousedrake sort ==== cf. http://www.shu.ac.uk/schools/cms/teaching/ps/unix/utools.html Soit le fichier "essai.csv" s00225 Mm.156919 Cathepsin Z s00311 Mm.205266 Acetyl-Coenzyme A acyltransferase 1 s00514 Mm.42146 Toll-like receptor 6 s00360 Mm.20271 RIKEN cDNA D330023I04 gene Trier les codes Mm : $ sort -n -t. -k2 essai.csv (ou sort -n -t. +1 essai.csv) s00360 Mm.20271 RIKEN cDNA D330023I04 gene s00514 Mm.42146 Toll-like receptor 6 s00225 Mm.156919 Cathepsin Z s00311 Mm.205266 Acetyl-Coenzyme A acyltransferase 1 -n numérique -t. séparateur : le point -k clé Join ==== Pour joindre des fichiers qui ont un champ en commun Exemple : --------- Fichier t1 : ------------ Article Couleur basket bleu pantalon vert chaussure noir lacets rouge cirage noir lunettes noir Fichier t2 : ------------ Prix Article Magasin 400 chaussure Leclerc 150 jeans Auchan 15 cirage Carrefour 300 basket Decathlon 200 pantalon Leclerc 5 lacets Leclerc Comparer et joindre le champ 2 du fichier 1 (-1 2 ou j1 2) au champ 1 du fichier 2. ------------------------------------------------------------- $ join -1 1 -2 2 t1 t2 Article Couleur Prix Magasin pantalon vert 200 Leclerc lacets rouge 5 Leclerc => Ne fonctionne pas : trier les fichiers avant sur les champs commnuns (Article): $ sort -k1 t1 > tt1 $ cat tt1 Article Couleur basket bleu chaussure noir cirage noir lacets rouge lunettes noir pantalon vert $ sort -k2 t2 > tt2 $ cat tt2 Prix Article Magasin 300 basket Decathlon 400 chaussure Leclerc 15 cirage Carrefour 150 jeans Auchan 5 lacets Leclerc 200 pantalon Leclerc $ join -1 1 -2 2 tt1 tt2 Article Couleur Prix Magasin basket bleu 300 Decathlon chaussure noir 400 Leclerc cirage noir 15 Carrefour lacets rouge 5 Leclerc pantalon vert 200 Leclerc -a numéro_de_fichier : même sortie avec en plus les lignes qui n'ont pas de correspondance ---------------------------------------------------------------- $ join -a1 -a2 -1 1 -2 2 tt1 tt2 $ join -a1 -a2 -1 1 -2 2 tt1 tt2 Article Couleur Prix Magasin basket bleu 300 Decathlon chaussure noir 400 Leclerc cirage noir 15 Carrefour 150 jeans Auchan lacets rouge 5 Leclerc lunettes noir pantalon vert 200 Leclerc -v n°_de_fichier ; n'afficher que les lignes qui n'ont pas de correspondance ------------------------------------------------------------- $ join -v1 -v2 -1 1 -2 2 tt1 tt2 $ join -v1 -v2 -1 1 -2 2 tt1 tt2 150 jeans Auchan lunettes noir cut === extrait une colonne de données d'un fichier cf. http://www.shu.ac.uk/schools/cms/teaching/ps/unix/utools.html awk ==== ** http://www.vectorsite.net/tsawk1.html A Guided Tour Of Awk * http://www.gnu.org/software/gawk/manual/gawk.html The GNU Awk User's Guide *** http://www.cs.hmc.edu/qref/awk.html Getting started with awk http://sparky.rice.edu/~hartigan/awk.htm How to Use AWK *** http://www.uga.edu/~ucns/wsg/unix/awk/ UNIX Utilities - awk *** http://stud.wsi.edu.pl/~robert/awk/ Awk Tutorial *** http://www.bolthole.com/awk6.html Awk et shell http://dmoz.org/Computers/Programming/Languages/Awk/ liens divers http://allman.rhon.itam.mx/dcomp/awk.html Introduction to akw http://www.tldp.org/LDP/abs/html/awk.html Awk et bash http://www-128.ibm.com/developerworks/library/l-awk1.html l-awk2.html l-awk3.html http://www.student.northpark.edu/pemente/awk/gawk_str.htm String manipulations *** http://www.oracle.com/technology/pub/articles/dulaney_awk.html AWK: The Linux Administrators' Wisdom Kit http://lea-linux.org/cached/index/Dev-awk.html Introduction à (g)awk http://www.stationlinux.org/fiche.67.html Gawk Chapitre 1 http://www.stationlinux.org/fiche.75.html 2 http://www.stationlinux.org/fiche.76.html 3 http://www.stationlinux.org/fiche.77.html 4 http://www.stationlinux.org/fiche.81.html 5 Imprimer tout le fichier (idem cat fichier.txt) : $ awk '{print}' fichier.txt Imprimer les lignes contenant "toto" (idem grep toto fichier.txt) $ awk '\toto\' fichier.txt $ awk '"toto"' fichier.txt idem (!) Imprimer les champs 5 7 et 12 des lignes contenant "toto" $ awk '\toto\ {print $5,$7,$12}' fichier.txt Imprimer les champs 3 et 7 si le champ 3 est inférieur à 2000 $ awk '{if ($3 < 2000) print $3, " ",$7}' fichier.txt Nb : pour entrer la tabulation : , ou bien mettre "\t" Afficher les utilisateurs par numéro croissant $ awk -F":" '{ print $3 "\t" $1 }' /etc/passwd |sort -g Utiliser comme séparateur la tabulation $ awk -F"\t" '{ print $4 "\t" $10 }' fichier Afficher le temps CPU de ssh $ while true ; do ps auwx | grep [s]sh | awk '{print $3}'; sleep 1; done NB : [s] évite l'affichage de la commande grep Editeurs en console =================== emacs ----- http://www.tuteurs.ens.fr/unix/editeurs/emacs.html Lancer : $ emacs -r # reverse vidéo vi -- Jed --- Editeurs HTML ============= http://en.wikipedia.org/wiki/List_of_HTML_editors Editeurs en mode graphique ========================== kwrite kate gedit voir les très nombreus plugins sur http://live.gnome.org/Gedit/Plugins En particulier pour avoir le correcteur orthographique : urpmi gedit-plugins X pour windows ============== putty www.putty.org/ cygwin www.cygwin.com Xming sourceforge.net/projects/xming www.straightrunning.com/XmingNotes/ Outils de traitement de texte ============================= expand / unexpand ----------------- Remplace les tabs par des espaces et vice-versa Programmation, bash, shell scripts ================================== Introduction à l'écriture de scripts shell : - Les bases http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/111/lg111-D.html — Partie 2 http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/112/lg112-F.html - Partie 6 http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/116/lg116-C.html BASH °°°° - Bash Guide for Beginners / (Linux Shell Scripting Tutorial v1.05r3 A Beginner's handbook) -------------------------- http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html http://www.freeos.com/guides/lsst/ - BASH Programming - Introduction HOW-TO ---------------------------------------- http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html - Guide avancé d'écriture des scripts Bash / Advanced Bash-Scripting Guide ------------------------------------------ http://www.bsdbooks.net/shells/scripting/fr/ http://abs.traduc.org/abs-3.1-fr/ http://www.tldp.org/LDP/abs/html/ http://www.mankira.com/modules/bash/index.html http://personal.riverusers.com/~thegrendel/abs-guide-3.3.tar.bz2 http://subsignal.org/doc/AliensBashTutorial.html Aliens Bash Tutorial http://www.shelldorado.com/ Bash et history (en particulier): --------------------------------- http://www.deadman.org/bash.html Racourcis clavier ------------------ http://www.labo-linux.com/tips/raccourcis-claviers-pour-bash/ Dialog/Xdialog °°°°°°°°°°°°°° http://linuxgazette.net/101/sunil.html http://ftp.traduc.org/doc-vf/gazette-linux/html/2004/101/lg101-P.html http://www.delafond.org/traducmanfr/man/man1/dialog.1.html http://thgodef.nerim.net/xdialog/doc/index.html Quelques trucs ============== Nom de l'hôte ------------- $ hostname (voir aussi uname -a) Infos sur le système et les versions des logiciels installés, exemples ---------------------------------------------------------------------- $ uname -m x86_64 $ rpm -q mplayerplugin firefox mplayerplugin-3.50-3mdv2008.1 firefox-3.0.8-0.1mdv2008.1 $ uname -m && rpm -q mplayerplugin firefox x86_64 mplayerplugin-3.50-3mdv2008.1 firefox-3.0.8-0.1mdv2008.1 Afficher les processus qui tournent ----------------------------------- ps aux idem en mode graphique top pidof NomDuProgramme Voir aussi procps (http://procps.sourceforge.net/) Affichage des informations sur les processus ((RAM activité cpu ...) -------------------------------------------------------------------- vmstat 1 (1 = rafraîchossement toutes les secondes) (pour avoir vmstat : urpmi procps) Changer la priorité des processus --------------------------------- nice renice Identifier le shell ------------------- echo $SHELL cf. http://unix.about.com/library/weekly/aa092500a.htm La commande ps retourne les processus actifs, et en particulier le shell Connaître la configuration matérielle et logicielle --------------------------------------------------- cf. http://lea-linux.org/admin/exploration_config.html Version de mandrake installée : cat /etc/mandrake-release ou bien less /etc/mandrakelinux-release less /etc/mandrake-release less /etc/mandriva-release Version du noyau Linux (kernel version) --------------------------------------- $ uname -sr (cf. man uname) Lister les noyaux installés : $ rpm -qa kernel* | sort Documentation sur les noyaux http://wiki.mandriva.com/en/Docs/Howto/Mandriva_Kernels Déterminer le type d'un fichier ------------------------------- file nomfichier Exemple : # file $(which httpd) /usr/sbin/httpd: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped Librairies utilisées par un programme ------------------------------------- # ldd $(which httpd) libm.so.6 => /lib64/libm.so.6 (0x00002ac136da4000) libpcre.so.0 => /lib64/libpcre.so.0 (0x00002ac136efa000) ... Infos sur un fichier (ou répertoire) ------------------------------------ stat nom_fichier (donne en particulier le nombre de "hard links") Récupérer le code de sortie d'une commande (errorlevel) ------------------------------------------------------- Très utile dans les scripts, ce code peut aussi être visualisé directement en ligne de commande grâce à echo $?. Exemple : $ mount | grep /dev/hda1 $ echo $? 1 => la partition /dev/hda1 n'est pas montée, n'existe pas, est déjà montée ... (voir man mount) $ mount | grep /dev/sda7 /dev/sda9 on /mnt/backup type ext3 (rw) $ echo $? 0 => la partition /dev/sda9 est montée Extraire ce qui est lisible d'un fichier programme ----------------------------------------------------- $ strings Déterminer le type d'un fichier ------------------------------- $ file Nom/du/fichier ou éventuellement jeter un coup d'oeil sur le début du fichier : $ head Nom/du/fichier les 10 premières lignes $ head -c 20 Nom/du/fichier les 20 premiers bytes $ head -n 2 Nom/du/fichier les 2 premières lignes $ strings Nom/du/fichier | head les 10 premières lignes imprimables Liste des utilisateurs connectés -------------------------------- $ who $ finger Informations sur un compte -------------------------- $ grep /etc/passwd $ finger Configuration matérielle (hardware) =================================== lspci urpmi hardinfo (MDV 2008. Ressemble à mcc + benchmarks)) D'après Gnu/linux magazine N° 71 Bus PCI ------- $ lspci $ lspci -v $ lspcidrake Bios et hardware ---------------- # dmidecode (à installer) Exemple : chercher les caractéristiques de la carte mère : # dmidecode | less Dans less taper h (pour la doc en ligne) -i (pour des recherches en ignorant la casse) /board (pour trouver la 1° occurence de board) n (pour la suivante) N (pour revenir à la précédante) # lshw List hardware # lshw -html Test des disques durs : ---------------------- # hdparm -i /dev/hdx Nb : ne fonctionne pas (actuellement 14-4-2005) avec disques SATA ; dans ce cas taper hdparm /dev/sdx qui ne retourne pas des infos vraiment intéressantes # hdparm -t /dev/sda Timing buffered disk reads: 182 MB in 3.01 seconds = 60.49 MB/sec # hdparm -T /dev/sda Timing cached reads: 1518 MB in 2.00 seconds = 758.37 MB/sec SMARTmontools (=smartctl) ------------------------- # urpmi smartmontools # smartctl -a /dev/sda Processeurs et autres infos -------------------------- $ cat /proc/cpuinfo processeur $ free (ou free -m) état de la mémoire. $ cat /proc/meminfo " $ lspci liste des périphériques sur bus PCI $ lshw hardware lister (à installer) $ dmidecode à installer : semble contenu dans lshw et LM Sensors, Périphériques, udev =================== http://www.marmottux.org/index.php/2004/10/29/5-udev-ou-comment-remettre-les-peripheriques-en-place Utilitaire de contrôle des disques durs Vérifier l'état de santé des disques durs ========================================== SMARTmontools ------------- http://smartmontools.sourceforge.net/ man smartctl smartctl -h http://lea-linux.org/cached/index/Hardware-hard_plus-smart.html Fichier de configuration /etc/smartd.conf Tout afficher ------------- # smartctl -a /dev/hda # smartctl -a -d ata /dev/sda pour disque SATA quand "smartctl -a /dev/sda" ne suffit pas N'afficher que les erreurs -------------------------- # smartctl -a -q errorsonly /dev/hda Décodage des informations retournées ------------------------------------ Pour comprendre ce qui s'affiche, voir les exemples commentés sur http://smartmontools.sourceforge.net/#sampleoutput CD bootables contenant smartmontools ------------------------------------ voir la liste page http://smartmontools.sourceforge.net/#sampleoutput "Is there a bootable standalone CD or floppy that contains smartmontools?" Arrêter le PC ============= cf: http://www.faqts.com/knowledge_base/view.phtml/aid/24476/fid/10 halt poweroff reboot shutdown Pour l'arrêter complètement : halt (ou su -c halt) shutdown now shutdown -h now (h = halt) Avec redémarrage : shutdown -r now (r= reboot) ou A partir de X Window, d'abord pour quitter X Windows, puis shutdown +3 (shutdown dans 3 minutes) shutdown -c supprimer l'arrêt programmé par la commande précédante shutdown -Fr now shutdown -fr now -F = avec fsck au reboot -f = sans fsck au reboot init 5 Fichiers standard ----------------- cf. http://livefirelabs.com/unix_tip_trick_shell_script/june_2003/06092003.htm Un programme UNIX standard ouvre par défaut 3 fichiers Nom Numéro - standard input (stdin) 0 - standard output (stdout) 1 - standard error (stderr) 2 Redirections ------------ cf. http://unix.about.com/library/weekly/aa110600b.htm#stderr Rediriger la sortie d'une commande vers un fichier : cmd > fic Rediriger stderr vers un fichier : cmd 2> fic Rediriger stdin et stderr vers le même fichier : cmd > fic 2>&1 Rediriger stdin et stderr dans 2 fichiers différents : cmd > fic1 2> fic2 Rediriger à la fois stdout et stderr vers le fichier fic cmd &>fic Diriger le résultat (stdout) d'une commande simultanément vers l'écran et un fichier : cmd | tee fic Diriger le résultat d'une commande (stdout + stderr) simultanément vers l'écran et un fichier : cmd 2>&1 | tee fic Pour ajouter à un fichier déjà existant, remplacer > par >> Pour tee, l'option d'ajout est -a : cmd | tee -a fic Arborescence (nom des répertoires) ================================== http://www.pathname.com/fhs/2.2/ okki666.free.fr/docmaster/articles/linux025.htm Différence entre bin et sbin : bin=binaires, sbin=binaires système. => pour un utilisateur standard, bin peut être dans le PATH, mais sbin n'a aucune raison d'y être. / racine (root) du système de fichiers /bin programmes nécessaires pour démarrer le système en mode mono-utilisateur. /boot /dev device files : points d'entrées vers des périphériques physiques /etc fichiers de configuration /home données propres à chaque utilisateur /lib shared libraries nécessaires aux programmes de démarrage (principalement des programmes placés dans /bin et /sbin). /mnt pour le montage pour les périphériques en mode block (cdrom, floppy ...) /proc infos sur l'état du système et les différents processus /sbin programmes nécessaires au fonctionnement du système Les commandes placées dans /sbin (et dans /bin) ne sont en général pas exécutées par les utilisateurs. /tmp fichiers temporaires /usr usr = Unix System Resources. Données que les utilisateurs peuvent se partager /var fichiers qui sont susceptibles de changer fréquemment : logs, les files d'attentes pour les impressions, etc. Répertoires dans /usr X11R6 système Xwindow X11R6/bin exécutables pour le système Xwindow. X11R6/lib librairies pour les programmes dans /usr/X11R6/bin. X11R6/lib/X11 librairies utiles au démarrage du serveur Xwindow. X11R6/include/X11 fichiers d'entêtes des applications X11. bin programmes utilisables sur le système. bin/X11 liens symboliques (et historiques) vers /usr/X11R6/bin dict dictionnaires utilisés par les vérificateurs orthographiques etc fichiers de configuration qui peuvent être partagés entre plusieurs machines. Vide sur MDK include fichiers entêtes (.h) pour le compilateur C lib librairies utilisées par les programmes des utilisateurs. Sous-répertoires pour les grosses applications Contient aussi des programmes qui ne sont jamais lancés directement X11 lien symbolique vers /usr/X11R6/lib/X11 local ce qui est spécifique à la machine locale local/bin programmes local/lib librairies local/doc documentations man man pages src sources des diverses applications installées sur le système. src/linux sources du noyau. Les répertoires dans /var lock fichiers de verrouillage. Par convention, le nom des fichiers est toujours LCK. log logs du système preserve sauvegardes d'édition de vi. spool contient les files d'attentes d'impressions spool/cron entrées crontab pour l'automatisation des tâches. spool/lpd fichiers en attente d'impression. spool/mail boites à lettres (mailbox) et les messages (mails) des utilisateurs. PATH ---- Affichage : echo $PATH Ajout : PATH=$PATH:nouveau_rep Pour que la nouvelle valeur soit utilisée par le shell et les threads : export PATH Ou en une seule commande : export PATH=$PATH:nouveau_rep Ajouter le nouveau path à l'environnement d'un utilisateur : Editer .bash_profile Y mettre : PATH=$PATH:nouveau_rep et vérifier que la commande export PATH se trouve dans le script (sinon la rajouter) Ajouter le nouveau path à l'environnement de tous les utilisateurs (sauf root) : Editer /etc/profile Y ajouter comme ci-dessus le nouveau path avant la commande d'export du PATH Raccourcis clavier et souris, quelques touches rapides très pratiques ===================================================================== http://linux-newbie.sunsite.dk/lnag_commands.html#shortcuts et touches système : http://www.linux-france.org/article/cesar/index.php?page=5035 [Alt][Ctrl][Fn] Afficher la console n [Ctrl][Fn] Afficher le bureau n [Alt][Ctrl][->] Affiche le bureau suivant [Alt][Ctrl][<-] Affiche le bureau précédent Roulette de la souris sur les images des bureaus dans la barre de tâches [Ctrl][+] Zoomer (nombreux browsers, konqueror, firefox ...) [Ctrl][-] 'dé'zoomer [Ctrl][Alt][Esc] lance xkill [Ctrl][Alt][BkSpc] kill le serveur X-windows courant [Ctrl][d] en début de ligne : ferme le terminal courant sinon envoie EOL au processus courant [Ctrl][z] Stoppe le processus courant puis : bg pour l'envoyer en tâche de fond fg pour le remettre en avant. Fenêtres -------- Déplacer : [Alt] [bouton gauche de la souris] Redimensionner :[Alt] [bouton droit de la souris] Sous KDE -------- [Ctrl][Esc] Visualisation avec possibilité de suppresion des processus [Alt][F12] (Bascule) permet d'émuler la souris à l'aide des flèches du clavier [PrintScreen] Ouvre KSnapshot, logiciel de copie d'écran [Alt][PrintScreen] Met une image de la fenêtre courante dans le presse-papier [Ctrl][Alt][PrintScreen] " de l'écran " " [Ctrl][Alt][d] (Bascule) fait apparaître/disparaître les fenêtres présentes sur le bureau [Alt][LeftMouseButton] Permet de déplacer une fenêtre dont la barre de titre est inaccessible Raccourci touches rapides [Alt][F2] ----------------------------------- Ouvre une fenêtre pour taper une commande. A partir d'une session utilisateur, pour lancer une commande en root : kdesu commande Ce raccourci manque dans KDE, session root Pour l'installer : Menu : System / Configuration / KDE / Accessibility / Keyboard shortcuts / Modifier Keys et cliquer sur Defaults magic sysrq keys (touches magiques) ---------------- Pour arrêter une machine plantée. http://snafu.freedom.org/linux2.2/docs/sysrq.txt (EN) http://fr.wikipedia.org/wiki/Magic_SysRq_key http://club.mandriva.com/xwiki/bin/view/KB/MagicSysRqKey NB : il faut que le noyau ait été compilé avec 'Magic SysRq key' à yes (CONFIG_MAGIC_SYSRQ). [ALT][SysRQ][command key] [command key] : 'r' - Turns off keyboard raw mode and sets it to XLATE. 'k' - Kills all programs on the current virtual console. 'b' - Will immediately reboot the system without syncing or unmounting your disks. 'o' - Will shut your system off via APM (if configured and supported). 's' - Will attempt to sync all mounted filesystems. 'u' - Will attempt to remount all mounted filesystems read-only. 'p' - Will dump the current registers and flags to your console. 't' - Will dump a list of current tasks and their information to your console. 'm' - Will dump current memory info to your console. '0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.) 'e' - Send a SIGTERM to all processes, except for init. 'i' - Send a SIGKILL to all processes, except for init. 'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system will be non-functional after this.) En résumé, en cas de plantage faire dans l'ordre : [Alt][Syst][s] synchronise les partitions montées [Alt][Syst][u] remonte les partitions en readonly [Alt][Syst][b] reboot ou encore [Alt][Syst][r] débloque le clavier ? [Alt][Syst][s] synchronise les partitions montées [Alt][Syst][u] remonte les partitions en readonly [Alt][Syst][e] arrête tous les processus sauf init [Alt][Syst][i] " [Alt][Syst][b] reboot Dans konqueror -------------- F4 ouvre une console au niveau du répertoire dans lequel on se trouve Cliquer avec le bouton du milieu de la souris sur un répertoire : ajoute un onglet avec le contenu de de répertoire Lister les modules, lister le hardware ====================================== $ cat /proc/modules ou # lsmod $ lspci Xev (Xevent) ============ Xev creates a window and then asks the X server to send it events Pour récupérer, en particulier, le code des touches Utilisation de "info" ===================== quitter

previous node next node Menus : se déplacer à l'aide des flèches sur une entrée de menu indiquée par :: sélectionne l'entrée de menu up (pour revenir en arrière) ps === $ ps affiche tous les processus lancés par l'utilisateur dans le terminal $ ps -x affiche tous les processus lancés par l'utilisateur $ ps -aux affiche tous les processus lancés par tous les utilisateurs pstree ------ affiche les processus sous forme d'arborescence ls == Pour afficher la configuration de l'affichage en couleur : --------------------------------------------------------- $ dircolors -p NB : le code de couleur y est indiqué. Nombre de fichiers dans un répertoire ou dans une partition ----------------------------------------------------------- ls | wc -l ls -ARl | wc -l -A ne liste pas les entrées . et .. -R récursif -1 affiche un fichier par ligne -l compte lenombre de lignes Affichage avec année : ---------------------- ls -l --time-style=long-iso Récursif -------- ls -R /repertoire less ==== less fichier ls -l /etc | less Aide : ------ h ou H Recherche : ----------- /chaine_cherchée (les chaînes trouvées apparaissent en surbrillance) Pour passer à la suivante : n précédente : Shift n Quitter : --------- q Renommer un fichier (ou un répertoire) ===================================== mv source destination Renommer des fichiers ===================== rename .htm .html *.htm krename (urpmi krename) gprename (gprename.sourceforge.net/) metamorphose En ligne de commande (cf. http://www.lea-linux.org/documentations/index.php/Trucs:Travailler_sur_un_ensemble_de_fichiers) : Soit, par exemple une série de photos : dscn0001.jpg dscn0002.jpg dscn0003.jpg ... remplacer "dscn" par la date de prise de vue et obtenir : 2009-07-26_001.jpg 2009-07-26_001.jpg 2009-07-26_001.jpg Solutions : $ touch dscn0001.jpg dscn0002.jpg dscn0003.jpg (création des fichiers pour le test) $ for i in dscn*; do mv $i `echo $i | sed "s/^dscn/2009-07-26_/"`; done $ for f in `ls`; do mv $f `echo $f | sed "s/^dscn/s/2009-07-26_/"`; done $ for f in `ls`; do mv $f `echo $f | sed "s/dscn/s/2009-07-26_/"`; done ou encore beaucoup plus simplement : $ rename dscn 2009-07-26_ dscn* $ rename dscn 2009-07-26_ * Explication : rename chaîne_à_changer par_cette nouvelle_chaîne fichiers_concernés Changer les espaces en _ ------------------------ (NB : La boucle "for" ne fonctionne pas dans ce cas car "for" découpe les noms au niveau du caractère espace : voir par exemple le résultat de : $ for f in `ls`; do echo $f ; done Utiliser à la place la boucle "while read") $ ls | while read d ; do mv "$d" "$(echo $d | sed s/" "/"_"/)" ;done Supprimer les espaces --------------------- $ ls | while read d ; do mv "$d" $(echo "$d" | tr -d " ") ;done Insérer un espace après (par exemple) la première lettre "t" ------------------------------------------------------------ $ ls | while read d ; do mv "$d" "$(echo $d | sed s/"t"/"t "/)" ;done Changer date, heure ------------------- touch -d '2007-01-31 8:46:26' index.html ou bien : touch -t 200701310846.26 index.html Le point est nécessaire si on veut rajouter les secondes, sinon : touch -t 200701310846 index.html Recherches : grep, egrep, agrep, rgrep, find ... ========================================== http://www.linux-tutorial.info/modules.php?name=Tutorial&pageid=32 http://cryptos.ch/article.php3?id_article=26 http://b.berteau.free.fr/trucs.php Rechercher une chaîne de caractères dans l'ensemble des fichiers d'une arborescence --------------------------------------------------------------------------------- $ grep -rH chaîne * -H ou --with-filename pour afficher le nom des fichiers contenant la chaîne -r est équivalent à -R, --recursive, -d recurse ne fonctionne pas Utiliser à la place : $ rgrep chaîne * ou encore : find /repertoire/de/depart -type f -exec grep -il chaine {} \; => recherche à partir de "/repertoire/de/depart" les fichiers (= type f) contenant la chaine de caractères "chaine" (-i = sans tenir compte de la casse) et affiche juste le nom des fichiers trouvés (-l) Rechercher une chaîne de caractères dans l'ensemble des fichiers d'un répertoire --------------------------------------------------------------------------------- find répertoire -print | xargs grep chaîne_cherchée => -print | xargs permet de faire afficher en début de ligne le nom du fichier qui contient la chaîne cherchée ou beaucoup plus simple et mieux (possibilité de suivre les liens) : rgrep -iFlr chaîne_cherchée /répertoire/de/départ i ignore case l list filename only F follow links r recursively scan through directory tree Plus simple : file *|grep chaine_cherchee Rechercher les fichiers avec leur extension ------------------------------------------- Exemple : rechercher tous les fichiers html à partir du réperoire en cours (.) $ find . -type f -name *.html Changer le nom de fichiers -------------------------- toto en titi sur un enesmble de répertoires : $ find . -type f -name toto | while read "df1"; do d=$(dirname "$df1") ; f2="/titi" ; df2=$d$f2; mv "$df1" "$df2" ; done Les "" sont nécessaires qand les noms de fichiers ou de répertoires contiennent des caractères espace Mettre en minuscules : $ find . -type f -name TOTO | while read df1 ; do d=$(dirname "$df1") ; f2=/toto ; df2="$d$f2" ; echo $df2 ; mv "$df1" "$df2" ; done Rechercher simultannément plusieurs chaînes -------------------------------------------- Exemple egrep "while|read|for" /repertoire/* Afficher le contenu de tous les fichiers d'un répertoire en évitant les lignes vides et les commentaires ---------------------------------------------------------- egrep -v "^$|^#" /repertoire/* | less -v --invert-match ^ début de ligne $ fin de ligne ^# ligne commençant par # Afficher le nom des fichiers contenant une chaîne grep -l chaîne_cherchée /repertoire/* agrep : recherche approximative (fuzzy) -------------------------------------- Recherche de doublons --------------------- fdupes is a program written by Adrian Lopez to scan directories for duplicate files, with options to list and delete them. vi == http://www.guilde.asso.fr/ressources/contrib/vi.html Mode d'emploi de vi : taper vimtutor Voir aussi : http://www.linux-pour-lesnuls.com/astucevi.php http://tnerual.eriogerg.free.fr/vimqrc-fr.pdf VIM, carte de référence rapide Changer tabulations en CR (cf http://vim.wikia.com/wiki/Search_and_replace) :%s/\t\/r/g Remplacements ============= sed kfilereplace sed === http://www.faqs.org/faqs/editor-faq/sed/ http://thomas.leduc.free.fr/faqs/index.php?theme=sed sed s/"chaîne_cherchée"/"chaîne_de_remplacement"/g fichier_source > fichier_destination s substituer / entre // la chaîne à chercher et la chaîne qui la remplace g répéter la substitution Remplacer \ par / (slash et back-slash) --------------------------------------- r="\toto \titi" echo $r | sed 's/\\/\//g' > fic ou bien : echo $r | sed s/\\\\/\\//g > fic cat fic /toto /titi Modifier une variable --------------------- r=$(echo "C'est toi ? Bonjour toi !" | sed 's/toi/vous/g') echo $r C'est vous ? Bonjour vous ! Une meilleure solution est d'utiliser : r="C'est toi ? Bonjour toi !" $ echo ${r//toi/vous} C'est vous ? Bonjour vous ! cf. "Remplacements" et "Remplacements multiples" ci-dessous Pour remplacer \ par / (slash et back-slash) r="\toto \titi" $ echo ${r//\\//} /toto /titi $ c=${r//\\//} $ echo $c /toto /titi Autres exemples sed plus loin ... Quelques commandes intéressantes ================================ locale ------ Affiche l'environnement local locale -a toutes les informations locales Jeu de caractères utilisé ------------------------- $ locale charmap ISO-8859-1 lspci ----- lspci |less lspci v |less lspci vv |less Affiche toutes les infos concernant le bus PCI et les périphériques qui y sont connectés. wc -- Affiche le nombre de lignes dans un fichier (fichier align.R par exemple) $ wc -l align.R 492 align.R $ cat align.R |wc -l 492 tail ---- tail /var/log/syslog affiche les 10 dernières lignes tail -n 30 /var/log/syslog affiche les 30 dernières lignes tail -f /var/log/messages affiche en continu les 10 dernières lignes du fichier lsof ---- En l'absence de toute option, lsof retourne la liste de tous les fichiers ouverts appartenant aux pocessus actifs lsof -i tous les fichiers internet lsof -i :25 tous ceux qui utilisent le port 25 (SMTP) lsof -i |grep imap tous les processus IMAP actifs Exemple : tester si un service est à l'écoute sur un port donné # lsof -i :25 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME master 5709 root 11u IPv4 14330 TCP *:smtp (LISTEN) => postfix (="master") est à l'écoute sur le port 24 (smtp) Afficher qui et quel processus utilise les fichiers dans le répertoire tmp : # lsof +D /tmp ldd (library dependancy dump) ----------------------------- Liste les dépendances (librairies nécessaires pour le fonctionnement) d'une application. Exemple : # which visudo /usr/sbin/visudo # ldd /usr/sbin/visudo linux-gate.so.1 => (0xffffe000) libc.so.6 => /lib/tls/libc.so.6 (0xb7eaf000) /lib/ld-linux.so.2 (0xb7fec000) Voir aussi ldconfig et /etc/ld.so.conf Explication de la facon dont les librairies sont liées dynamiquement aux applications : http://www.linux.com/feature/114007 nm -- Affiche les symboles contenus dans les fichiers objet. Exemple : $ nm -s /lib/ld-linux.so.2 0000fe80 t access 000154c4 b alloc_end 00014ed4 d any_debug 00011900 r auxvars.0 00000000 a _begin 0000efc0 W calloc t,b ... = type de symbole En minuscules : local En majuscules : global (externe) t = dans le texte (code) b = data, non initialisé d = data, initialisé r = data, readonly a = absolu W = weak (defini à l'extérieur) etc. Voir man nm find ---- http://www.linux-mag.com/2001-04/newbies_01.html http://www.linux-mag.com/2002-09/power_01.html Nb: - AND implicite entre les opérateurs ! - la commande est par défaut récursive ; pour limiter la profondeur de recherche : -maxdepth n - ne plus utiliser -name avec les versions récentes de Mandrake : si on l'utilise, le message d'erreur suivant s'affiche : find: paths must precede expression Usage: find [path...] [expression] find / -name fichier.txt localiser fichier.txt à partir de la racine find . -name fichier.txt à partir du répertoire où l'on se trouve find / -name -type d repertoire find / -name fichier.txt -ls affiche à la manière de ls find / -name fichier.txt 2>/dev/null supprime les messages d'erreur find / -name '*fic*' trouve la chaîne fic dans les noms de fichiers ou répertoires find / -iname '*fic*' ignore la casse find / -size +10000k trouve les fichiers de plus de 10000k (k = kilobytes, c = bytes) find /home -iname '*do*' -type d 2>/dev/null tous les répertoires contenant do dans le nom (ignore la casse) -type d directory f regular file l symbolic file -user uname username ou ID find / -amin -10 # find files accessed in last 10 minutes find / -atime -2 # find files accessed in last 48 hours find / -empty # find empty files and directories find / -group cat # find files owned by group cat find / -mmin -5 # find files modified in last 5 minutes find / -mtime -1 # find files modified in last 24 hours find / -nouser # find files owned by an invalid user find / -user fred # find files owned by fred find /usr/local/toto -user bibi # affiche tous les fichiers à partir du répertoire /usr/local/toto qui ont pour utilisateur bibi Expressions (and est implicite !) find / -user fred -or -user george tous les fichiers appartenant à fred ou george Commandes find ./tmp/ -name '*.tmp' -exec rm \{\} \; efface tous les fichiers *.tmp du répertoire ./tmp attention, l'alias rm='rm -i' n'est pas utilisé ! chkconfig --------- pour gérer les services (cf. man chkconfig) # chkconfig --list |grep on Liste des services démarrés # chkconfig --list |grep httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig --add nom_service ajouter un service runlevel -------- pour afficher le runlevel actuel et le précédent Voir aussi init, telinit, et le fichier /etc/inittab telinit n pour changer de runlevel (passer au runlevel n) mcc --- Centre de controle Mandrake fonctionne en mode graphique ou texte. S'il n'est pas installé : # urpmi drakconf Pour lancer mcc en ligne de commande : # mcc ou # drakconf ou # drakxconf et pour les services : # drakxservices Session KDE root ou bien session KDE buggée Root desktop Configuration de Mandriva ========================= http://wiki.mandriva.com/fr/Configurer_Mandriva_Linux http://wiki.mandriva.com/fr/Centre_de_Contrôle_Mandriva et aussi : Mandriva Management Console (LDAP, Web, Samba, DNS/DHCP) : http://mds.mandriva.org/content/MMC/install/en/mmc-generic-installation.html#id2518056 Bureau KDE root =============== rm -rf ~/.kde Redémarrer l'interface graphique : une interface standard est recrée. Méthode la plus simple et la plus rapide pour obtenir pour root une interface KDE standard. Si ça ne suffit pas, voir plus loin "Configuration de la session root de KDE pour qu'elle se comporte comme une session ordinaire" Root logins are not allowed (MDV 2007) ====================================== # locate kdmrc ... /etc/kde/kdm/kdmrc Editer /etc/kde/kdm/kdmrc Changer AllowRootLogin=false en AllowRootLogin=true Redémarrer X (Alt Ctrl Backspace par exemple) Configuration de KDE ==================== * > System > Configuration > Control Centre > KDE Components En ligne de commande : kcmshell --list pour affichier la liste des configurations possibles Associations par défaut ----------------------- ... > KDE components > Components chooser permet de configurer le client mail, l'éditeur de texte, le browser web, etc. par défaut, > KDE Components > File Associations ------------------------------------ pour définir les associations de fichiers Ou plus rapidement : $ kcmshell filetypes KDE4 ==== Plasmoïdes ---------- http://www.linuxpedia.fr/doku.php/kde/plasma http://www.kde-look.org/ Panel spacer : http://www.kde-look.org/content/show.php/Panel+Spacer?content=89304 Liens ===== symboliques (symlink) ----------------------- ls -s nom_fichier_réel nom_fichier_lien hard link ----------- ln nom_fichier_existant nouveau_nom_fichier Pour connaître le nombre de hard links : stat NomFichier Pour connaître les noms de fichiers correspondant à un inode : $ ls -il /bin/gzip 159758 -rwxr-xr-x 3 root root 47856 mai 18 20:15 /bin/gzip* $ find / -inum 159758 -xdev -ls 2>/dev/null 159758 48 -rwxr-xr-x 3 root root 47856 mai 18 20:15 /bin/gunzip 159758 48 -rwxr-xr-x 3 root root 47856 mai 18 20:15 /bin/gzip 159758 48 -rwxr-xr-x 3 root root 47856 mai 18 20:15 /bin/zcat Lien sur un répertoire ---------------------- $ sudo ln -s répertoire/existant lien/à/créer Prompt ====== cf. http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/ $ echo $PS1 [\u@\h \W]\$ Quelques séquences escape intéressantes : \d the date in "Weekday Month Date" format (e.g., "Tue May 26") \h the hostname up to the first `.' \H the hostname \j the number of jobs currently managed by the shell \l the basename of the shell's terminal device name \t the current time in 24-hour HH:MM:SS format \T the current time in 12-hour HH:MM:SS format \@ the current time in 12-hour am/pm format \u the username of the current user \w the current working directory \W the basename of the current working directory Path ==== echo $PATH Le path est créé/modifié dans de nombreux fichiers d'initialisation : etc/rc.sysinit, /etc/profile, .bash-profile Pour le modifier : PATH=$PATH:/nouveau/path export PATH Su et PATH =========== $ su permet de passer sous root, mais avec le path de l'utilisateur d'origine. Pour avoir le path de root : $ su - cf. le prompt : [user@PC user]$ [root@PC user]# [root@PC root]# Lancer une commande en root --------------------------- su - -c "commande" premier tiret : indique l'utilisateur sous l'identité duquel on veut lancer la commande (par défaut, root). -c pour indiquer la commande. ou Alt F2 suivi de kdesu "commande" ou minicli (lanceur d'applications KDE Sudo ==== Paramétrage : # visudo et entrer les utilisateurs autorisés à exécuter des applications d'administration. Ubuntu et root ============== https://help.ubuntu.com/community/RootSudo Sous compte utilisateur initialement créé : $ sudo su - root $ sudo commande $ sudo -i pour ouvir un shell root pas de mot de passe root (il n'en a pas !) Pour pouvoir ouvrir une sesson graphique : - définir un mot de passe root - éditer le fichier de configuration de kde (/etc/kde3/kdm/kdmrc) ou celui de gdm et changer AllowRootLogin=false en true Tuer un processus ou un ensemble de processus ============================================= $ ps -aux | grep pour connaître le n° (PID) du processus $ kill -9 n° du processus $ killall nom du processus $ xkill (se lance aussi avec CTRL+ALT+ESC) CTRL+ESC lance la "ProcessTable" où on peut choisir les processus à tuer. $ ksysguard idem raccourci CRTL+EXC ci-dessus Pour lister les processus contenant mail dans leur nom : $ pgrep -l mail 6426 kmail Pour tuer les processus contenant mail dans leur nom : $ pkill mail Tuer une session X plantée (KDE, Gnome ou autre, ça arrive !!!) : Voir aussi skill, pkill, xkill, ksysguard www.freebsd.org/cgi/man.cgi?query=kill&sektion=1 : Some of the more commonly used signals: 1 HUP (hang up) 2 INT (interrupt) 3 QUIT (quit) 6 ABRT (abort) 9 KILL (non-catchable, non-ignorable kill) 14 ALRM (alarm clock) 15 TERM (software termination signal) http://sial.org/howto/shell/kill-9/: Useless use of kill -9, un script intéressant : reallykill Device or resource busy ======================= ps ux ps auf lsof liste des fichiers ouverts fuser pour identifer des processus qui utilisent des fichiers ou sockets kill -9 $pid pour tuer le processus qui bloque (quand on le connaît) Le plus pratique : umount -fl /point/de/montage/recalcitrant Bash, Bashdb ============ Commandes internes au bash -------------------------- Aide en ligne : $ help commande Ou sur page wab : http://www.tldp.org/LDP/abs/html/internal.html Bashdb -------- Bashdb = BASH with Debugger : à récupérer sur http://bashdb.sourceforge.net/ Bashdb nécessite bash version 3 : récupérer les sources de bash et la doc sur http://www.gnu.org/software/bash/ Installations ------------- voir les fichier "INSTALL" de bash et bashdb 1 - Commencer par patcher le source de bash comme indiqué dans le fichier "INSTALL" de bashdb : se positionner dans le source de bash et : patch -p1 < rep_source_de_bashdb/patch/bash-3.00.patch ./configure --enable-debugger make make install NB : bash version 3 s'installe par défaut dans /usr/local/bin/. Pour l'installer ailleurs lire le help de configure : ./configure --help (cf. --prefix=/endroit/ou/l'installer) 2 - Puis installer le debuggueur : ./configure --with-bash=/usr/local/bin/bash (en effet il faut indiquer à configure où se trouve bash3 : il ne trouve que la version bash2 dans /bin !) make rule car il ne trouve pas texi2html : l'installer make check make install Scripts bash ============= Première ligne : #! /bin/bash Tutorials : - Guide avancé d'écriture des scripts Bash : http://abs.traduc.org/abs-3.1-fr/ - Linux Script Programming http://www.comptechdoc.org/os/linux/programming/script/linux_pgscript.html Exécuter un script sans avoir mis le droit x (et sans le faire précéder de ./) : $ source nom_du_script $ bash nom_du_script Sinon, mettre le droit x : $ chmod u+x nom_du_script puis l'exécuter : $ ./nom_du_script Utile °°°°° Expressions régulières ---------------------- http://www.funix.org/fr/unix/expr-sed.htm Caractères spéciaux ------------------- cf. man echo : \a BEL \\ \ \n newline (saut ligne) \b backspace (retour arrière) \c sans saut de ligne \f form feed \r CR \t tabulation \v tab vertical Attention : dans la commande echo, -e est indispensable pour interpréter les caractères précédés de \ : $ echo -e "abc\ndef" abc def $ echo -e "abc\bdef" abdef $ echo -e "abc\tdef" abc def $ echo -e "abc\fdef" abc def $ echo -e "abcde\rfg" fgcde Entrer un caractère spécial dans une commande immédiate Par exemple pour initialiser la variable tab avec un caractère de tabulation, taper: tab=" puis puis la touche tabulation.puis ". Vérifier que la variable tab contient bien le caractère spécial : echo "$tab" | od -a 0000000 ht nl echo "1${tab}2" 1 2 Envoyer le résultat d'un bloc de code dans un fichier ----------------------------------------------------- Mettre le bloc de code entre {} { echo "bloc de code" } > trace Le résultat des dans le fichier "trace" Débogage, "Trace on/off" : -------------------------- # bash -vx ./monscript dans le script : set -vx (active le débogage) set +vx (désactive le débogage) Option de débogage : Nom Option Description No Exec -n Lit les commandes mais ne les exécute pas Verbose -v Affiche toutes les lignes au moment où elles sont lues par le shell Trace -x Affiche les commandes et leurs arguments lorsqu'elle sont exécutées set -x envoie les messages vers stderr (fichier standard n° 2) set +x les supprime Pour récupérer les messages de stderr dans un fichier : ./monscript 2> /tmp/erreurs ou bien ./monscript 2&1 > /tmp/erreurs Le fichier est lu ligne à ligne. Les lignes lues ne sont pas précédées du signe +, celles qui sont exécutées sont précédées de + Utilisation des codes ascii --------------------------- man ascii Exemples : En octal : $ echo $'\125' U En décimal $ echo $'\125' U en hexadécimal : $ echo $'\x55' U Afficher le code ascii de chaîne, fichiers, etc. ----------------------------------------------- hexdump od IFS --- http://www.livefirelabs.com/unix_tip_trick_shell_script/oct_2003/10132003.htm "Internal Field Separator", variable du shell. Par défaut contient 3 caractères : space, tab, et newline Utilisé pour délimiter les mots dans les commandes telles que read et set $ echo "$IFS" | od -a 0000000 sp ht nl nl sp = space ht = horizontal tab nl = newline le dernier nl est généré par la commande echo, en effet : echo | od -a 0000000 nl Pour que echo ne génère pas de "newline" $ echo -n "$IFS" | od -a 0000000 sp ht nl Idem en octal : $ echo -n "$IFS" | od -b 0000000 040 011 012 Afficher le code ascii d'un caractère ------------------------------------- $ echo -n a |od -i 0000000 97 0000001 $ echo -n z |od -i 0000000 122 0000001 $ code=`echo -n a |od -i | awk ' {print $2} '` $ echo $code 97 Modifier IFS ------------ OLDIFS=$IFS IFS=$'\n' Test du contenu : echo "$IFS" | od -a 0000000 nl nl Puis aprés utilisation remettre IFS à sa valeur initiale : IFS=$OLDIFS unset OLDIFS Décompte du temps, chronomètre ============================== usleep n ne fait rien pendant n microsecondes usleep 10000000 " " 10 secondes echo $SECONDS affiche le temps en secondes depuis le démarrage d'un shell, d'un script. Peut être remis à 0 : SECONDS=0 read ==== http://www.faqs.org/docs/bashman/bashref_55.html http://linuxreviews.org/beginner/Bash-Beginners-Guide/en/x4195.html et redirections : http://www.tldp.org/LDP/abs/html/x12886.html Attention ! read ne retourne pas les caractères IFS (sp tab et nl, cf. ci-dessus) : car=" " echo -n "$car" | od -a => 0000000 sp mais : read -n 1 car # On tape sur la barre espace echo -n "$car" | od -a => 0000000 # Comme si on n'avait rien tapé ! Pour que read n'interprète pas ces caractères, modifier IFS. Entrer au clavier un nom de fichier, avec autocomplétion du nom ----------------------------------------------------------------- echo "Entrez le nom du fichier :" read -e nom_fichier Lire le contenu d'un fichier ligne àligne ------------------------------------------ while read line do echo $line done sortie de la commade incluse dans `` Exemples : affectation de variable TOTO=`ls *.txt` echo $TOTO 0t.txt '' => prend l'expression plus ou moins littéralement !? TOTO='ls *.txt' echo $TOTO ls 0t.txt history ======= Recherche rapide : chaîne_à_chercher history affiche la liste des 500 dernières commandes history | grep chaine_à chercher affiche les commandes contenant "chaine_à_chercher" !20 Pour rappeler la commande n° 20 !p Pour rappeler la commande commençant par p (si plusieurs affiche toutes les commandes) !tel " tel !-2 rappelle l'avant dernière commande La liste des commandes semble être mémorisée dans le fichier .bash_history, mais les commandes $ cat .bash_history et $ history ne donnent pas le même résultat (sans doute une écriture différée des dernières commandes dans .bash_history) ! Pour effacer (par mesure de sécurité) l'historique : $ history -c et en plus supprimer le fichier .bash_history Rappel de commandes ------------------- !$ dernière commande pushd, popd ----------- pour mémorise un chemin et y revenir. Pour pushd, passer un répertoire en argument, sinon message d'erreur : $ pushd -bash: pushd: no other directory. Pas d'argument pour popd. Pour mémoriser l'emplacement actuel : $ pushd ./ (ou pushd .) Disques plein, disque occupation, taille des fichiers, taille des répertoires, inodes ===================================================================================== Information sur les partitions ------------------------------ # dumpe2fs /dev/sdb1 Taille des inodes : # dumpe2fs /dev/sdb1 | grep -i "inode size" dumpe2fs 1.40.2 (12-Jul-2007) Inode size: 128 Disque plein ------------ C'est souvent le cas du disque contenant la racine / Peut provenir d'une poubelle pleine. Elle se trouve dans ~/.local/share/Trash Peut provenir des fichiers de log dans /var Plusieurs solutions 1 - Visualiser les répertoires les plus gros du -h --max-depth=1 / Puis visualiser de proche en proche les répertoires les plus pleins 2 -Lister les fichiers par ordre de taille croissante : du -k | sort -nr | less # trier par taille (en KO) décroissante du -B 1048576 | sort -nr | less # (en GO) 3 - Pour détecter les gros fichiers, taper par exemple (faire varier la taille) : find / -mount -size +500000k -print (ici dans le répertoire /) Puis supprimer les fichiers/répertoires inutiles par la commande : rm -rf /dossier/à/supprimer/* NB : r=récursif f=force, efface sans avoir à valider chaque nom de fichier 4 - filelignt -> affichage graphique de l'utilisation des disques Lister les fichiers supprimés qui sont encore ouverts par des processus en cours : ls -ld /proc/*/fd/* 2>&1 | fgrep '(deleted)' Pour voir si c'est un problème de manque d'inodes : df -i fragmentation / défragmentation =============================== # filefrag Poubelle (trash) sur KDE ======================== Si elle a été effacée par erreur, copier ~/Desktop/trash.desktop d'un autre utilisateur. Vérifier que le propriétaire et les droits sont corrects (rw pour le propriétaire est suffisant) Effacer sans passer par la poubelle =================================== [Shift][Delete] Pour avoir cette possibilité dans le menu "Edit" de Konqueror : Settings > Configure Konqueror> Show 'Delete' context menu entries which bypass wastebin Récupérer des fichiers effacés (undelete, recover) ================================================== Voir - unrm - Foremost (http://www.korben.info/recuperer-des-fichiers-effaces-sous-linux-ubuntu.html) Choix clavier et langue ======================= K /System / Configuration / Configure your Desktop / Accessibility / Keyboard Layout K /System / Configuration / Configure your Desktop / Accessibility / Country - Region & Language Ou plus rapidement : $ kcontrol -> Regional and accessibility Ou pour la lanque seulement : $ localedrake Pour tout le système : # mcc ou plus rapidement # keyboarddrake Choix du répertoire d'enregistrement par défaut - /.mdk-folders/documents/ ========================================================================== Cf. http://wiki.mandriva.com/en/Releases/Mandriva/2006/Notes#Default_folder_for_documents Pour changer le path : K > System > Configuration > KDE > System Administration > Paths ou plus simplement : $ kcontrol System Administration > Paths Dans le cas de OOo : Tools > Options > OpenOffice.Org > Paths Solution radicale pour éviter que le path par défaut passe par ~/.mdk-folders - surprimer ~/.mdk-folders - supprimer le script /etc/X11/xinit.d/desktop-directories khotkeys ======== Ne veut pas se lancer en direct !! "ERROR: Communication problem with khotkeys, it probably crashed" Pour le lancer, passer par le menu : K > System > Configuration > KDE > System > KHotkeys Raccourcis clavier (hotkeys) ============================ ~/.kde/share/config/khotkeysrc kcontrol Evènements X (keycode, codes clavier, souris ...) ================================================= xev se trouve dans le package X11R6-contrib Correspondance n° IP <-> adresse ================================ nslookup NomMachine-ou-n°IP host NomMachine-ou-n°IP ipcalc -h n°IP Si nslookup, host, ipcalc ne retourne rien : whois n°IP whois ne fonctionne pas avec le nom du PC : utiliser host pour obtenir le N° IP Infos sur un N° IP ou une adresse ================================== ping nslookup ou host finger whois Infos sur le système ==================== cat /proc/cpuinfo cat /proc/meminfo (utilisation de la RAM NB : Linux utilise toute la ram a sa disposition. Il ne la libère que s'il en a besoin) cat /proc/net/ip_conntrack table de suivi de connexions Sous KDE, voir également K > KDE > Configuration > Information Infos sur la carte écran et les drivers, test de rapidité de la carte écran =========================================================================== glxinfo (installer mesa-demos) glxgears xdpyinfo Police de caractères ==================== cf. http://www.telenovela-world.com/~spade/linux/howto/Francophones-HOWTO-3.html ISO 8859-1 (latin 1) a tous les caractères Français sauf les "oe liés" l'euro et l'y tréma majuscule. Préférer ISO 8859-15 (latin 9). Centre de contrôle KDE ====================== Passer par le menu K, ou bien : kcontrol Configuration du bureau ======================= K > System > Configuration > Configure your Desktop Pour choisir/modifier les fontes de caractère : LookNFeel > Fonts Pour remettre les fontes par défaut, cliquer en bas au milieu sur "Defaults" Icône affichant une liste pour le choix du terminal -------------------------------- Clic droit sur le tableau de bord > Ajouter au tableau de bord > Bouton Special > Session de terminal En anglais : Clicl droit sur panel > Add to panel > Special Button > Terminal Session Voir l'ensemble des bureaux (desktop) ===================================== kompose Copie d'écran ============= ksnapshot (lancé par appui sur la touoche [Impr écran] import Nom_fichier.jpg et sélectionner à la souris la zone à copier Sensors, monitoring, température, voltage ========================================= sensors ksensors xmbmon ksensors -------- Installer ksensors (qui appellera les dépendances nécessaires) : liblm_sensors librrdtool lm_sensors Lancer : # sensors-detect Accepter les réponses par défaut. La command d'installation du ou des modules nécessaires est indiquée à la fin, exemple : #----cut here---- # Chip drivers modprobe w83627hf # sleep 2 # optional /usr/bin/sensors -s # recommended #----cut here---- Lancer : # modprobe w83627hf pour que sensors fonctionne. Puis sensors fonctionne : # sensors A la fin est indiqué de copier un alias dans /etc/modules.conf : le copier plutôt dans /etc/modprobe.conf (qui remplace module.conf, obsolète). NB : losrqu'on lance ksensors il n'affiche rien. Le configurer pour qu'il affiche ce que l'on désire. Attention pour chaque choix d' affichage cliquer sur apply, sinon le choix n'est pas mémorisé !! Mode d'emploi : http://www.mepis.org/docs/en/index.php/Ksensors Ce qui suit n'est sans doute plus nécessaire : Puis est demandé de copier plusieurs lignes (commandes) dans etc/rc*. Les copier plutôt dans /etc/rc.local. Eventuellement, lancer depmod -a pour remettre à jour les dépendances entre modules du noyau. Pour tester sensors : Exécuter dans une console les commandes qui viennent d'être copiées dans /etc/rc.local Lancer la commande "sensors". TeX LateX ========= http://en.wikibooks.org/wiki/LaTeX/Absolute_Beginners Pour les présentations sous LateX : beamer Editeur Latex : Texmaker ================= OpenOffice (OOo) ================ Installation de Open Office 3 ----------------------------- Télécharger la version "rpm" ad hoc sur le site http://fr.openoffice.org/about-downloads.html Les rpm sont dans un fichier tr.gsz à décompresser : $ tar -zxvf OOo_3.1.0_LinuxX86-64_install_fr.tar.gz Puis aller dans le répertoire contenant les rpm : OOO310_m11_native_packed-3_fr.9399/RPMS # rpm -Uvh *.rpm # cd desktop-integration/ # rpm -Uvh openoffice.org3.1-mandriva-menus-3.1-9393.noarch.rpm 2 répertoires ont été créés : /opt/openoffice.org /opt/openoffice.org3 Activation et transfert des dictionnaires ----------------------------------------- Copier les dictionnaires d'une installation à une autre (OOo 2 à OOo 3 dans cet exemple) : Chercher les dictionnaires sources dans ~/.ooo-2.0/user/wordbook/ les copier dans : ~/.ooo3/user/wordbook Lancer OOo, menu Tools > Options > Language Settings > Writing Aids et cocher les User defined dictionaries à utiliser OOo et format word 2007 ----------------------- Voir : http://www.korben.info/lire-et-ecrire-les-docx-de-word-2007-sous-open-office.html ou http://www.getdeb.net/release.php?id=1995 Ajout de fontes, fontes Windows ------------------------------- Pour ajouter des fontes à OpenOffice File > Wizards > Install fonts from the web Ne semble pas fonctionner ? Meilleure solution : ajouter les fontes Microsoft pour toutes les applications : Installation des fontes de caractères Microsoft ----------------------------------------------- Cf. http://corefonts.sourceforge.net/ Installer (urpmi) si ce n'est déjà fait : °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° - rpm-build - wget - freetype-tools - chkfontpath Créer un environnement pour la création de rpms dans le répertoire utilisateur () °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Cf. Mandriva Rpm HowTo : http://club.mandriva.com/xwiki/bin/KB/MandrivaRpmHowTo (peut se faire automatiquement avec le script : http://club.mandriva.com/xwiki/bin/view/KB/RPMSetupScript) Créer l'arborescence : $ mkdir -p ~/rpm/BUILD $ mkdir ~/rpm/RPMS $ mkdir ~/rpm/RPMS/i586 $ mkdir ~/rpm/RPMS/x86_64 $ mkdir ~/rpm/RPMS/noarch $ mkdir ~/rpm/RPMS/SOURCES $ mkdir ~/rpm/SPECS $ mkdir ~/rpm/SRPMS $ mkdir ~/rpm/tmp Créer les fichiers de configuration : .rpmrc buildarchtranslate: i386: i586 buildarchtranslate: i486: i586 buildarchtranslate: i586: i586 buildarchtranslate: i686: i586 .rpmmacros %_topdir /home//rpm %_tmppath /home//rpm/tmp %_signature gpg %_gpg_name Mandrivalinux %_gpg_path ~/.gnupg %distribution Mandrivalinux %vendor Mandrivasoft Création du rpm des fontes °°°°°°°°°°°°°°°°°°°°°°°°°° Télécharger http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec et l'enregistrer dans ~/rpm/SPECS Lancer : $ rpmbuild -bb ~/rpm/SPECS/msttcorefonts-2.0-1.spec (ça télécharge automatiquement les fontes et ça crée le rpm) Installer le rpm °°°°°°°°°°°°°°°° # rpm -ivh /home//rpm/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm # service xfs restart Relancement du serveur de polices de X [OK] et vérifier par exemple dans OOo que les nouvelles fontes sont effectivement présentes (si nécessaire relancer Ooo). Système de gestion et Réservations de Ressources ================================================= MRBS http://mrbs.sourceforge.net/ GRR http://demos.adullact.org/ Installation d'une distribution par le réseau ============================================= La doc est dans la racine de la distribution, fichier INSTALL.txt A noter avant de commencer l'installation ! ******************************************* - la configuration du disque (pour éventuellement éviter d'effacer par la suite la partition home) - L'adresse IP et le nom de la machine L'adresse IP du DNS L'adresse IP du gateway (passerelle) - Le nom du driver (xxx.o) de la carte réseau (sur une machine qui fonctionne déjà, voir mcc > Hardware > Hardware > EthernetCard) - L'adresse du serveur où récupérer la distribution - Le chemin vers le répertoire où se trouve la distribution sur ce serveur, pour MDK10.0 par exemple : /pub/linux/distributions/mandrakelinux/official/10.0/i585 Installation d'une distribution Mandrake/Mandriva ************************************************* Installation à partir de disquettes : ------------------------------------- Récupérer network.img et pour MDK10.0 network-drivers.img, graver les images sur disquettes. Les outils pour graver ces images sont indiqués dans i586/doc/install/fr/install.htm ou INSTALL.txt : rawrite sous DOS et dd sous linux. Booter sur la disquette network.img. Installation à partir d'un CD-ROM minimum ----------------------------------------- Récupérer boot.iso, Graver et booter Dans le cas de l'installation pour x86_64 le boot.iso fourni pour Mandriva 2006.0 est incorrect (au moins le 10-2-2006) : le message d'erreur suivant s'affiche : "The modules for this kernel (2.6.8.1-12mdkBOOT) can't be found on this mirror, please update your boot disk" Dans ce cas, booter sur le CD1 de la distribution, taper sur F2 et choisir alt1. Installation de MDK 10.1 ------------------------ En mode expert, le choix du clavier a disparu !§"@&& Pour qu'il apparaisse, choisir autre chose que Language English (US) !!! On peut sélectionner plusieurs langues : arrivé à "Choose language to use", cliquer sur advanced et cocher les langages à utiliser. Configuration des imprimantes : passer en mode expert !! la configuration en mode normal met le souk ! CUPS configuration : décocher : - "Automatically find available printers on remote machines" - "The printers on this machine are available to other computers" Documentation, notes importantes sur la version installée --------------------------------------------------------- /usr/share/doc/mandriva-release-2006.0/ (cas de MDV 2006.0) Installation de Debian Sarge par FTP ************************************ Télécharger le CD d'installation, actuellement debian-31r0a-i386-netinst.iso Graver et booter dessus Nb : ce fichier est à chercher dans le répertoire "iso" et non pas comme pour MDV dans le répertoire de la distribution, /i586/install/images Installation de kanotix sur le disque dur, à partir du CD live (V2005-04) ========================================================================= Menu K > KANOTIX > Kanotix-installer o Install Kanotix to HD - Onglet "Partitioning" : l'installateur propose d'installer Kanotix sur une partition existante ce qui ne convient généralement pas => créer les partitions nécessaires. Si on veut installer Kanotix sur plus d'une partition (préférable), créer ces partitions (fisk par exemple) et les formater (mkfs -V -t ext3 -c /dev/hdxy) : kanotix-installer ne propose en effet de formater que / Cocher "Set mountpoints..." et indiquer les points de montage des différentes partitions. - Répondre aux différentes questions posées dans les onglets ("Grub", "User", "Network", "Installation") - Dans l'onglet "Installation", cocher "Save configuration only (~/.knofig) et cliquer sur [Begin installation] : rien n'est installé, mais le fichier .knofig est créé ; il est plus facile de vérifier et régler les paramètres d'installation directement à partir de ce fichier : l'ouvrir à l'aide de kwrite (sudo kwrite ~/.knofig) Dans ce fichier : - Vérifier que la partition / est bien cell voulue, par exemple : HD_CHOICE='/dev/hdb6' - A la question : # Here you can give additional mappings. (Experimental) You need to have the partitions formatted yourself and give the correct mappings like: '/dev/hda4:/boot /dev/hda5:/var /dev/hda6:/tmp' indiquer les partitions crées et formatées à utiliser, par exemple HD_MAP='/dev/hdb7:/usr /dev/hdb8:/var /dev/hdb9:/home' - Mettre : HD_IGNORECHECK='no' pour que l'espace disque soit vérifié (ne semble cependant pas être vérifié à cause du bug noté plus loin). - Sauvegarder ~/.knofig - Redémarrer Kanotix-installer, qui en principe relit le fichier ~/.knofig (vérifier si tout est OK) - Onglet Partitioning : on peut décocher "format with" si l'on a déjà formaté la partition / cocher "Set mountpoints ... " et vérifier que les points de montage désirés existent Onglet Installation : Cocher "Save configuration and start installation" Cliquer sur [Begin installation] Un message d'erreur indique que les partitions autres que / ne sont pas formatées, ce qui est bien sûr un bug : pour que l'installation se lance quand même, cocher "Force Installation ...] et cliquer sur [Begin installation] L'installation se fait sans problème, on peut redémarrer. Malheureusement Kanotix installe Grub sans tenir compte des autres linux installés sur la machine. Pour réinstaller un menu Grub complet : - afficher les fichiers /boot/grub/menu.lst des différentes distributions installées sur la machine. - éditer le menu /boot/grub/menu/lst de Kanotix Installation de Mandriva sur eeecp ================================== http://wiki.mandriva.com/fr/Magnum03_installer_mandriva_sur_eee Contient de nombreuses astuces, à voir. "Broadcast" d'un message ======================== wall ---- Envoie sur toutes les consoles d'une machine $ wall message write ----- $ write user write: user est loggé à plus d'un endroit; on écrit à pts/3 message (terminer par ou pour envoyer le message) mesg ---- Pour activer/désactiver l'affichage par wall ou write $ mesg y pour autoriser l'affichage $ mesg n pour l'interdire $ mesg affiche y ou n suivant que l'affichage est autoris� ou non Voir également : ytalk Envoyer un message à tous les utilisateurs d'un PC distant =========================================================== Cf. Sending a Message to All Users on a Remote UNIX/Linux/FreeBSD System http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/02/freebsd-sending-message-to-all-users_23.html (Utilise la propriété de ssh de pouvoir lancer des commandes sur la machine distante : ssh user@host commande $ ssh utilisateur@pc_distant wall << EOF message ... EOF Encore plus simple, pas besoin de < avant Après l'installation # find /* > apres Comparer : diff avant apres > modifs Librairies : ------------ Chemin vers les librairies : voir /etc/ld.so.conf et ldconfig (cf. man ldconfig) Lister les librairies en cache : # ldconfig -p Mettre à jour le cache : # ldconfig make ---- Peut éventuellement être accéléré avec l'option -f Noyau ===== http://lea-linux.org/kernel/ http://www-phase.c-strasbourg.fr/inform/linux/cours/linux-admin-10.html#ss10.7 http://www.freenix.fr/unix/linux/HOWTO/Kernel-HOWTO.html Infos : uname -a Mise à jour ----------- # urpmi kernel Il faut évidemment redémarrer le PC pour que le nouveau noyau soit chargé. Compilation du noyau -------------------- Si ce n'est déjà fait, installer (K > Configuration > Packaging >Install software) : - les outils de compilation : Mandrake choices > Development > - les sources du noyau Find in names : kernel kernel-source-xxxxmdk Les sources s'installent automatiquement dans usr/src/linux-x.y.z-xxxmdk le lien usr/src/linux est créé (ou modifié s'il existe déjà) automatiquement : il pointe sur usr/src/linux-x.y.z-xxxmdk # cd /usr/src/linux # make xconfig NB : - sauvegarder la configuration dans un fichier. Avec "Save and exit" la configuration est sauvegardée dans un fichier caché (!!!) .config, la configuration précédante est dans .config.old Pour garder une trace d'une configuration, utiliser "Store configuration to file" qui permet de créer un fichier avec le nom de son choix, mais ce n'est pas cette config qui est utilisée aux étapes suivantes (c'est .config !) - vérifier les messages d'erreur qui s'affichent dans la console texte et corriger si nécessaire. Puis : # make dep # make clean # make bzImage # make modules Pour garder une trace de la compilation dans le fichier compil-kernel.txt : script compil-kernel.txt make bzImage Ctrl-D Pour compiler en une seule commande : make dep clean bzImage modules modules_install Installation des modules : Attention : si on ne change de version de noyau il est généralement conseillé de faire une sauvegarde des modules actuels: mv /lib/modules/x.y.z-xxxmdk /lib/modules/x.y.z-xxxmdk-old C'est probablement inutile car la commande make modules_install crée un répertoire différent de x.y.z-xxxmdk : x.y.z-xxxmdkcustom # make modules_install Installation du noyau --------------------- # make install Cette commande : - copie bzImage (qui se trouve dans /usr/src/linux-xxxxmdk/arch/i386/boot) dans /boot sous un nom différent du noyau actuel pour qu'il ne soit pas écrasé (i.e. vmlinuz-x.y.z-xxxmdkcustom). - renomme vmlinuz en vmlinuz.old et crée un nouveau vmlinuz, lien qui pointe sur vmlinuz-x.y.z-xxxmdkcustom - crée initrd-x.y.z-xxxmdkcustom.img et fait pointer initrg.img sur ce fichier - crée config-x.y.z-xxxmdkcustom.img mais le lien config pointe toujours sur le fichier config-x.y.z-xxxmdk.img original - crée un fichier System.map-x.y.z-xxxmdkcustom mais le lien System.map pointe toujours sur le fichier System.map-x.y.z-xxxmdk original - Les fichiers message et message-graphic sont également mis à jour - essaye de modifier Grub et le réinstalle, ce qui est parfaitement inutile ! Il vaut mieux modifier Grub à la main ; rajouter les lignes permettant de booter si nécessaire sur l'ancien noyau dans le fichier /boot/grub/menu.lst : # Chargement du nouveau noyau : rien à modifier title linux custom (nouveau noyau) kernel (hd1,0)/boot/vmlinuz root=/dev/hdc1 quiet devfs=mount acpi=off vga=791 initrd (hd1,0)/boot/initrd.img # Chargement de l'ancien noyau, indiquer le vmlinuz et le inird d'origine : title linux original (ancien noyau) kernel (hd1,0)/boot/vmlinuz-x.y.z-xxxmdk root=/dev/hdc1 quiet devfs=mount acpi=off vga=791 initrd (hd1,0)/boot/initrd-x.y.z-xxxmdk.img Contrairement à Lilo, inutile de réinstaller grub. Installation du noyau 2.6 en bref ================================= => Télécharger la dernière version (actuellement linux-2.6.10.tar.bz2) sur www.kernel.org : choisir la version full (F). => Décompresser : $ tar -jxvf linux-2.6.10.tar.bz2 => Lire la doc dans le dossier crée (linux-2.6.10/README) => Configurer le noyau à l'aide de l'une ou l'autre des commandes suivantes : make menuconfig ou make O=/home/name/build/kernel menuconfig make xconfig " xconfig make gconfig " gconfig Avant toute modification sauvegarder la config par défaut dans (par exemple) .config.original : elle peut éventuellement resservir NB lorsqu'on enregistre la config est mémorisée par défaut dans .config. Pour le choix des drivers à intégrer dans la config, voir : la doc de la carte mère lspci -v |less ou encore ce qu'indique une version de MDK déjà installée (mcc -> hardware) Remarques : - Dans Device Drivers / Character devices, cocher "Legacy (BSD) PTY support" (contrairement aux conseils affichés) sinon rien ne s'affiche dans AUCUNE console graphique (Kde, Gnome ...) ! => Compiler, créer une image compressée du noyau (bzimage), installer les modules, etc. : $ make ou make O=/home/name/build/kernel # make modules_install # make install ou ou sudo make O=/home/name/build/kernel modules_install install => Modifier Grub : Editer /boot/grub/menu.lst Rajouter par exemple # Nouveau noyau title linux (noyau 2.6.10) kernel (hd0,0)/boot/vmlinuz-2.6.10 root=/dev/sda1 acpi=ht resume=/dev/sdb2 splash=silent vga=791 initrd (hd0,0)/boot/initrd-2.6.10.img NB : rien à changer pour le noyau d'origine, si ce n'est éventuellement le titre # MDK 10.1 noyau 2.6.8.1-12mdk d'origine title linux (MDK 10.1 d'origine) .... En effet les liens vmlinuz et initrd.img pointent toujours sur les fichiers du noyau d'origine. Dans le cas où l'on essaye plusieurs noyaux, il est cependant prudent d'indiquer les fichiers réels : en effet vmlinuz et initrd.img peuvent alors ne pas pointer sur les bons fichiers ce qui peut résulter en un "kernel panic". dkms (Dynamic Kernel Module Support) ------------------------------------ voir : http://www.linuxjournal.com/article/6896 Perl ==== http://www.cpan.org/ Version et autres infos : perl -V CPAN = Comprehensive Perl Archive Network Vérifier la présence de modules ------------------------------- perldoc Librairie::Module ou bien Info sur un module # perl -MCPAN -e shell cpan> i Librairie::Module Installer un module ------------------- # perl -MCPAN -e 'install Librairie::Module' ou bien : # perl -MCPAN -e shell Puis au niveau du prompt cpan> : cpan> install Librairie:Module Pour quitter : D Configuration de CPAN ---------------------- Nb : A la première utilisation de CPAN un questionnaire de configuration s'affiche. Y répondre. Pour vérifier les paramètres entrés et faire des modifications le mieux est peut-être d'éditer directement le fichier de configuration /usr/lib/perl5/5.8.5/CPAN/Config.pm Voir en particulier les lignes : 'urllist' => [q[ftp://ftp.u-strasbg.fr/CPAN]], 'keep_source_where' => q[/root/.cpan/sources], Pour modifier cette configuration : # vi /usr/lib/perl5/5.8.8/CPAN/Config.pm Mettre àjour CPAN ------------------ cpan> install Bundle::CPAN cpan> reload CPAN Affichage de l'heure ==================== xclock -digital -update 1 & # Horloge digitale avec mise à jour de l'affichage toutes les secondes sunclock sunclock -dateformat %H:%M%:%S%_%a%_%d%_%b%_%y # idem avec affichage ne plus des secondes Commandes avec mesure du temps ============================== time uptime wait w top sleep [secondes] Mesurer le temps d'exécution d'un programme (compilation par exemple) et émettre un bip à la fin ------------------------------------------------------------------------------------------------ $ time ma_commande ; echo -e \\a Temps pendant lequel le système a fonctionné -------------------------------------------- $ uptime 17:53:55 up 7:21, 4 users, load average: 0.06, 0.17, 0.15 Attendre qu'un processus se termine ----------------------------------- $ wait ; echo 'Processus terminé' La commande echo s'exécute ('Processus terminé' s'affiche) quand le processus de PID est terminé. Affichage des utilisateurs connectés et du temps de connexion -------------------------------------------------------------- $ w $ w 18:08:51 up 7:36, 5 users, load average: 0,01, 0,10, 0,15 USER TTY LOGIN@ IDLE JCPU PCPU WHAT toto pts/0 11:02 7:06m 0.00s 20.65s kded [kdeinit] --new-startup toto pts/1 18:08 0.00s 0.12s 0.01s w toto pts/2 17:44 5:34 0.22s 0.22s /bin/bash Attendre 10 secondes -------------------- $ sleep 10 Débloquer une console occupée par une commande (background, foreground, jobs) ============================================================================= Faire suivre la commande par & ou bien : arrête la commande en cours d'exécution bg la fait passer en arrière plan (background) fg la refait passer en premier plan (foreground) Exemple avec xclock : --------------------- $ xclock <= taper [1]+ Stopped xclock $ jobs [1]+ Stopped xclock $ bg [1]+ xclock & $ jobs [1]+ Running xclock & $ fg xclock <= taper [1]+ Stopped xclock $ jobs [1]+ Stopped xclock $ kill %1 [1]+ Stopped xclock Eviter de tuer une application à la fermeture de la console dans laquelle elle a été lancée =========================================================================================== Exemple : nohup konqueror & Comparaison (ou synchronisation) de répertoires ================================================ diff (diff -r rep1 rep2 > resultat) kdiff3 mc krusader *** meld ** Comparaison de fichiers ======================= diff diff3 kdiff3 xxdiff kompare (dans kdesdk) krusader *** mc Non testés ---------- unison gnome-commander Comparaison de 2 fichiers ou contenus de 2 répertoires ====================================================== diff fic1 fic2 | less sdiff fic1 fic2 | less comparaison "side by side" sdiff -s fic1 fic2 | less seules les différences sont affichées Comparaison rapide de 2 répertoires (avec sous répertoires) ----------------------------------- ls -aR répertoire-n°1 > rep1 ls -aR répertoire-n°2 > rep2 kdiff3 rep1 rep2 ou bien : sdiff -s <(ls -R rep1) <(ls -R rep2) Imprimantes =========== mcc est merdique, utiliser plutôt : Kmenu > System > Configuration > KDE > Peripherals > Printers ou bien (équivalent) : $ kcmshell printmgr En bas de page passer en mode administrateur (bouton [Administrateur Mode]. Choisir dans la liste déroulante : Print system currently used: CUPS (Common...) Cliquer sur la première icône en haut à gauche (elle ouvre le fenêtre "Add printer wizard" Pour une imprimante réseau (TCP) : Network printer (TCP) Entrer l'addresse IP de la machine et le port (9100) Choisir le modèle : pour une imprimante Postscript il y a une case à cocher en bas à gauche sinon choisir le pilote d'impression Dans la page ne pas oublier de modifier si nécessaire le paramétrage de l'imprimante, en particulier le format qui doit êre A4. Dans la page Users Access Settings, définir les utilisateurs autorisés Réglage des marges de l'imprimante : ------------------------------------ Dans l'utilitaire "Configure - Printing manager" - sélectionner l'imprimante, - cliquer en bas à droite sur le bouton "Settings" et dans la page qui s'ouvre - choisir l'onglet "Margin" Pour les imprimante tektronix Phaser la marge minimum est d'environ 20 pixels. Après avoir entré les valeurs de configuration, vérifier que le format de page et bien A4 et ne pas oublier de sauvegarder. Autre possibilité pour administrer CUPS : ----------------------------------------- localhost:631 Impression dans un fichier (imprimer dans un fichier - file printer) -------------------------------------------------------------------- Tools > System Tools > Control Center > Peripherals > Printers > Printer > Print to File (PDF). Sinon, créer une imprimante (raw ou postscript) sur un port non utilisé (LPT2 par exemple) On récupèrera le fichier dans /var/spool/cups. C'est un fichier postscript (ps) : on peut le transformer en pdf avec : ps2pdf source.ps destination.pdf Support des imprimantes HP -------------------------- hplip hplip-gui cf. hplipopensource.com/ Disques et partitions : commandes utiles ======================================== Liste les disques et partitions des disques # fdisk -l Visualisation des partitions montées : $ mount (sans paramètre) ou bien : $ less /etc/mstab Test et réparation des disques ------------------------------ fsck cf man fsck Pourcentage de fragmentation ---------------------------- # fsck -n n pour interdire toute réparation par exemple /dev/hda1 donne en fin de rapport le % de fragmentation ("% non-contiguous"). Nommage des périphériques et partitions avec Linux et Grub ========================================================== D'après http://www.debian-fr.org/article.php?page=viewarticle&article=5 Convention (idem linux et grub ): hd -> périphériques IDE sd -> périphériques SCSI et assimilés (SATA, etc.) Numérotation linux IDE : disque maître esclave contrôleur primaire hda hdb contrôleur secondaire hdc hdd Numérotation linux SCSI sda, sdb ... a, b ... dans l'ordre des N° de la chaîne SCSI Numérotation grub Numérote les disques 0, 1, 2 etc. dans l'ordre de leur découverte par le BIOS. Le BIOS fait sa recherche dans l'ordre contrôleur primaire maître/esclave, contrôleur secondaire maître/esclave. Exemple : hd(0,2) : 0, n° du disque, 2 numéro de partition Equivalence : grub linux hd(1,1) hdb2 Créer, modifier les partitions ============================== fdisk cfdisk diskdrake Partimage LVM (http://lea-linux.org/leapro/lvm.html) swap : à placer de préférence en fin de disque : l'accès y serait plus rapide Créer/changer une partition swap ================================ Pour créer une partion swap : fdisk, cfdisk ou diskdrake La formater sous diskdrake ou par la commande # mkswap /dev/... Lister les disques et partitions # fdisk -l Lister les partitions swap actives # swapon -s Désactiver une partition swap # swapoff /dev/... Activer une (autre) partition swap # swapon /dev/... Vérifier dans /etc/fstab que la nouvelle partition swap sera montée au démarrage Webmin ====== Aprés installation de webmin (# urpmi webmin), ne pas oublier de le démarrer, sinon message : "Could not connect to localhost (port 10000) Démarrage : # service webmin status miniserv.pl est arrêté # service webmin start Lancement de Webmin [ OK ] Se connecter : https://localhost:10000 login et mot de passe de root. Firewall (shorewall) : il ne semble pas utile de modifier les autorisations. En cas de problème mettre dans le fichier "rules": ACCEPT loc fw tcp 10000 Redimensionner des partitions ============================= Gparted (le CD live) Partitionnement et clonage de disque ==================================== A voir : GParted-Clonezilla Live-CD bootable contenant GParted et Clonezilla. Copie/clonage de disques et de partitions ========================================= Avec 2 disques identiques la commande dd permet d'obtenir une réplique exacte du disque source : sauf erreur la commande doit être : # dd if=/dev/hda of=/dev/hdc Dans le cas où l'on veut remplacer un petit disque par un plus gros, avec éventuellement un changement de la taille et/ou du nombre de partitions, dd ne convient pas. Aprés plusieurs essais (rsync, mirrordir, tar, cp), une solution toute simple au problème de "clonage" de disques : en très bref les 3 étapes pour copier le disque d'origine (hd0) sur le nouveau disque : 1 - copie des partitions et répertoires de hd0 vers hd1 à l'aide de la commande : cp -a 2 - modification du fichier de configuration /etc/fstab 3 - modification du boot (grub ou lilo) Ce qui donne avec un peu plus de détails : 1 - copie des partitions et répertoires de hd0 vers hd1 à l'aide de la commande cp -a ---------------------------------------------------------------------------------------------------- - Connecter le nouveau disque (hd1) - Lancer Linux (MDK) - Avec diskdrake ou au moyen des outils en ligne de commande (fdisk ou cfdisk, mkfs) créer sur hd1 les partitions désirées et les formater - Redémarrer l'ordinateur avec UN LINUX SUR DISQUETTE OU CD : j'utilise tomsrtbt (http://www.toms.net/rb/), mais tout autre Linux sur disquette ou CD doit convenir, par exemple Knoppix (http://knoppixfr.tuxfamily.org/), ou encore le CD n°1 d'installation de MDK : il suffit qu'il contienne la commande cp - Avec la commande cp -a, copier les partitions et répertoires de hd0 vers leur emplacement prévu sur hd1 Questions : * Pourquoi utiliser un Linux sur disquette ou CD ? C'est pour obtenir une copie de ce qui est réellement sur disque et non pas de ce que Linux y met ou veut bien laisser copier lorsqu'il fonctionne. Par exemple /proc contient une série de fichiers qui n'existent qu'en RAM ; il n'y a rien sur le disque : /proc n'est qu'un point de montage pour l'accés à une partie de la RAM. * Pourquoi utiliser cp plutôt que mirrordir ou rsync plus pratiques ? C'est parce que cp se trouve dans toutes distributions Linux ce qui n'est pas le cas des autres commandes (pas de rsync, mirrordir ... dans tomsrtbt). 2 - modification du fichier de configuration /etc/fstab --------------------------------------------------------------------------- - Rebooter sous MDK (ce n'est pas indispensable, mais l'interface est plus conviviale que celle d'un Linux sur disquette) - Mettre à jour le fichier /etc/fstab sur hd1 3 - modification du boot (grub ou lilo) ----------------------------------------------------- - Mettre à jour le fichier de configuration du programme de boot sur hd0 (et/ou sur hd1 si par la suite on veut démarrer directement à partir de hd1) Dans le cas de GRUB, le fichier à modifier est /boot/grub/menu.lst. Dans le cas de LILO (à vérifier : non testé) modifier /etc/lilo.conf et exécuter la commande "/sbin/lilo" avec les options -b bootdev et -C config-file pour indiquer d'une part le disque sur lequel installer le boot et d'autre part le fichier de configuration que l'on vient de modifier. C'est tout. Au redémarrage le menu de grub ou de lilo apparaît et permet de booter le système copié sur hd1. Avec tous les détails, une réalisation concrète qui a parfaitement fonctionné : J'ai un PC qui tourne sur MDK9.1. J'utilise l'environnement graphique KDE. Le disque dur d'origine (hd0) a 3 partitions : - hda1 / - hda2 swap - hda3 home Il devient trop petit (3 Go). J'ai récupéré un disque de 20 Go. Après montage dans le PC, ce 2° disque est vu comme hdc. Je désire partitionner le 2° disque dur (hd1) en : - hdc1 / - hdc2 swap - hdc3 usr - hdc5 var - hdc6 home 1 - Avec diskdrake, partitionner le nouveau disque (hd1) et formater les partitions 2 - Redémarrer Linux à partir d'une disquette tomsrtbt. Se "loger" en "root" avec le mot de passe par défaut "xxxx" 3 - Créer les points de montage pour pouvoir monter le disque source et le disque destination # cd /mnt # mkdir source # mkdir dest # cd / 4 - Monter les disques source (hda) et destination (hdc) et copier le répertoire racine # mount /dev/hda1 /mnt/source # mount /dev/hdc1 /mnt/dest # cp -a /mnt/source/* /mnt/dest # umount /mnt/dest 5 - La même chose pour /usr # mount /dev/hdc3 /mnt/dest # cp -a /mnt/source/usr/* /mnt/dest # umount /mnt/dest 6 - La même chose pour /var # mount /dev/hdc5 /mnt/dest # cp -a /mnt/source/var/* /mnt/dest # umount /mnt/dest 7 - La même chose pour /home # umount /mnt/source # mount /dev/hda3 /mnt/source # mount /dev/hdc6 /mnt/dest # cp -a /mnt/source/* /mnt/dest # umount /mnt/dest # umount /mnt/source # reboot Sortir la disquette tomsrtbt 7 - Redémarrer sous MDK 8 - Supprimer de hdc1 non pas les répertoires /usr, /var et /home mais leur CONTENU qui est maintenant sur les partitions respectivement hdc3, hdc5 et hdc6 # mount /dev/hdc1 /mnt/dest puis sous konqueror supprimer le CONTENU de /usr, /var et /home (NB : la commande # rm -rf nom_repertoire/* efface bien le contenu du répertoire nom_repertoire, mais pas les fichiers cachés !) 9 - Mettre à jour le fichier /etc/fstab du nouveau disque Remplacer : /dev/hda1 / ext3 defaults 1 1 /dev/hda2 swap swap defaults 0 0 /dev/hda3 /home ext3 defaults 1 2 par : /dev/hdc1 / ext3 defaults 1 1 /dev/hdc2 swap swap defaults 0 0 /dev/hdc3 /usr ext3 defaults 1 2 /dev/hdc5 /var ext3 defaults 1 2 /dev/hdc6 /home ext3 defaults 1 2 10 - Mettre à jour le menu de boot de grub (/boot/grub/menu.lst) pour faire apparaître l'option de boot du système Linux installé, maintenant hd1 NB : pour le moment hd0 est toujours en place. On peut donc utiliser son "boot device" ; il suffit d'ouvrir le fichier menu.lst qui se trouve sur hda1 : # mount /dev/hda1 /mnt/source # kwrite /mnt/source/boot/grub/menu.lst et de le modifier : j'ai rajouté, juste en dessous de "default 0" (pour que le PC démarre par défaut sur MDK qui est sur hd1) : title linux dd 20 Go kernel (hd1,0)/boot/vmlinuz root=/dev/hdc1 quiet devfs=mount acpi=off vga=791 initrd (hd1,0)/boot/initrd.img Noter vga=791 : ce n'est pas indispensable, mais ça permet de bien mieux voir les messages (d'erreurs éventuelles) au démarrage du système. Pour la signification de ce n°, voir plus loin à "Amélioration de l'affichage des infos au démarrage de MDK" 11 - Rebooter, c'est fini et la nouvelle copie de MDK fonctionne comme l'original NB : les commandes rsync et mirrordir (au contraire de cp) ont une option "exclude-from" pratique pour éviter de copier les répertoires inutiles avec la commande cp (ça prend du temps et il faut ensuite les effacer, voir points 4 et 8 ci-dessus). Les utiliser si elles sont dispoonibles sur la disquette ou le CD utilisé. Clonage de partitions ===================== Clonezilla Live : http://wiki.mandriva.com/fr/Clonezilla_Live Icônes KDE ========== Remplacer les infâmes icônes "conectiva crystal" (installées par défaut par MDK 9.1) par les bonnes vieilles icônes KDE classiques plus lisibles. --------------------------------------------------------------------------------------------- K> System > Configuration > KDE > LookNfeel > Icons Si KDE classic apparaît dans la liste, sélectionner et cliquer sur Si KDE classic est absent, K > Configuration > Packaging > Install Software Faire une recherche sur le mot "classic" Dans la liste qui apparaît, sélectionner et installer kdeartwork-kde-classicxxxx.mdk Fermer et rouvrir le "KDE control module" ouvert au départ, pour faire appraître KDE classic dans la liste des thèmes disponibles Sous root, il faut sans doute aussi redémarrer KDE pour que les icônes classiques soient affichées. Taille des icônes ----------------- K > System > Configuration > KDE > Appearance & Themes > Icons > Advanced Sous 2008.1 : Menu > Tools > System Tools > KDE Control Center > Icons > Advanced Installation/mise à jour de KDE =============================== http://docs.kde.org/development/en/kdebase/faq/install.html#id2546955 Paquets obligatoires : kdelibs kdebase aRts Monitoring système ================== K > System > Monitoring> Ksysguard Torsmo gkrellm Outils pratiques ou indispensables ================================== Disquette, CD ou clé bootable avec Linux minimum ------------------------------------------------ Tomsrtbt Damn Small Linux (DSL) Toutou Linux (http://moulinier.net/) ou Puppy Linux sleuthkit http://www.sleuthkit.org/sleuthkit/ --------------------------------------------------- pour récupérer des fichiers effacés, analyser une machine piratée, etc.. Lire les partitions ext2/ext3 à partir de Windows ------------------------------------------------- Explore2fs http://www.chrysocome.net/explore2fs Ext2 Installable File System www.fs-driver.org Monitoring, sécurité, graphes, clusters, etc ============================================ Top 100 Network Security Tools http://sectools.org/index.html Nagios http://www.nagios.org/ Oreon/Centreon www.oreon-project.org/ GroudWork http://www.groundworkopensource.com/community/ munin http://munin.projects.linpro.no/ MRTG RRDtool http://oss.oetiker.ch/rrdtool/ Sentinix http://sentinix.tigerteam.se/ OpenMosix http://openmosix.sourceforge.net http://openmosix.sourceforge.net/instant_openmosix_clusters.html nessus www.nessus.org/ http://mdvmondelinux.s3ii.info/Auditer-la-securite-de-son-reseau Sécurité ======== http://doc.mandrivalinux.com/MandrakeLinux/90c/fr/Server_Conf_Guide.html/security.html Hardening a Linux Installation : http://www.cromwell-intl.com/SECURITY/linux-hardening.html kdewallet --------- Configuration : K > System > Configuration > KDE > Security & Privacy > KDE Wallet ou $ kcontrol > Security & Privacy > KDE Wallet Gestion des ACL --------------- http://www.linuxfrench.net/article.php3?id_article=1463 setfacl getfacl gtk-acl Commandes simples ----------------- w Utilisateurs "logués", ce qu'il font, etc. who Utilisateurs "logués" rwho -a ? à revoir, ne semble pas fonctionner finger nom_utilisateur Infos concernant un utilisateur last |less Liste des derniers utilisateurs "logués" Nb : une connexion ftp anonymous laisse une entrée du type : ftp ftpd1385 81.184.29.30.dyn Thu May 10:14 - 10:21 (00:07) adresse source temps de connexion Comparer la liste des fichiers (ou répertoires) cachés à différents temps: # find / -type f -name ".*" -ls > hiddenFiles-`date +%Y-%m-%d` # find / -type d -name ".*" -ls> hiddenDir-`date +%Y-%m-%d` msec ---- http://www.mandrakesecure.net/en/docs/msec.php http://club.mandriva.com/xwiki/bin/KB/SecureSmsec man msec tp://twiki.mdklinuxfaq.org/en/Draksec Configuration globale ou fine de la sécurité en interface graphique ------------------------------------------------------------------- # draksec ou encore : # mcc (Mandrake control center, onglet Security) drakperm -------- Pour connaître le niveau (msec) de sécurité actuel Pour voir et fixer les permissions Changer de niveau de sécurité : ----------------------------- Sous root, pour passer au niveau 4, par exemple : msec 4 Configuration : voir le fichier ------------------------------- /var/lib/msec/security.conf Outils divers -------------- nmap hping tcpdump IDS : snort psad Rejet des "script kiddies" ------------------------- Interdire la connexion à partir d'une adresse IP en cas de tentatives infructueuses répétées. Voir : - Port knocking http://www.linuxjournal.com/article/6811 http://www.portknocking.org/ - fail2ban - Blacklister les Ips indésirables : http://www.frit.net/linux/black/ - denyhost : http://tdot.blog-city.com/securing_ssh_with_denyhosts.htm - BlockHosts : http://www.aczoom.com/cms/blockhosts/ - crackblock : http://www.zipcon.net/~sirius/crackblock.html Détection des scans ------------------- scanlogd scandetd Pam --- http://www.linux-kheops.com/doc/cours/jgourdin/outils-tcp-ip/Linux-pam.html fail2ban -------- http://www.fail2ban.org/wiki/index.php/HOWTOs http://www.howtoforge.com/preventing-brute-force-attacks-with-fail2ban-on-mandriva2008.1 http://doc.ubuntu-fr.org/fail2ban # urpmi fail2ban # service fail2ban start Pour configurer : /etc/fail2ban/jail.conf/ DNS : trou de sécurité ====================== http://ftp.traduc.org/doc-vf/gazette-linux/html/2008/153/lg153-C.html DNS gratuit ==================== www.opendns.com/ Voir aussi http://en.wikipedia.org/wiki/OpenDNS Liste des ports (IANA) ====================== cat /etc/services nmap ==== (pour une interface graphique : # urpmi nmap-frontend puis $ nmapfe ) Détecter les PCs on-line : $ nmap -sP 192.168.0.* $ nmap -sP 192.168.0.*/25 (scanne les 126 premières addresses) $ nmap -sP 192.168.0.{50..100} (scanne de 192.168.0.50 à 192.168.0.100) Scan des ports d'une machine ---------------------------- Lister les ports ouverts Exemple : nmap localhost Attention : 1 - Par défaut nmap ne scanne que les ports 1 à 1024 Pour scanner tous les ports possibles : nmap -p 1-65535 localhost nmap -sU -p 1-65535 localhost 2 - nmap localhost ne montre que les ports ouverts sur l'interface 127.0.0.1 (loopback) ce qui n'est pas représentatif des ports réellement accessibles Tests pour savoir si un serveur n'est pas compromis par un rootkit ================================================================== cf. A la recherche de Rootkits http://www.viginews.com/affichage_article.php?id=822 http://www.omninerd.com/2005/11/22/articles/43 Chkrootkit ---------- # urpmi chkrootkit chkrootkit vérification complète du système # cd /usr/lib/chkrootkit/ # ./ifpromisc pour vérifier que l'interface n'est pas en mode "promiscuous" # ./chkproc pour détecter un processus caché rkhunter -------- rkhunter --check less /var/log/rkhunter.log netstat ------- Keep an Eye on Your Linux Systems with Netstat: Using Netstat For Surveillance And Troubleshooting, http://www.linuxplanet.com/linuxplanet/tutorials/5633/1/ netstat -vtlnp -v verbose -l (--listening) affiche uniquement les sockets en écoute -n (--numeric) addresse du socket en numérique (sinon affichage du nom canonique) -p (--program) affiche le PID et le nom du programme associé au socket netstat -taup -a (--all) affiche tous les sockets (en écoute ou non) -t --tcp -u --udp netstat -vatn netstat -vt lsof ---- lsof -i liste les connexions internet ouvertes. lsof -i :80 liste les connexions internet ouvertes sur le port 80 On peux ainsi vérifier quels ports sont ouverts et voir si certains ports n'ont pas derrière eux un programme suspect. COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME httpd2 10738 apache 4u IPv6 22984 TCP *:http (LISTEN) httpd2 10739 apache 3u IPv6 22981 TCP *:https (LISTEN) Dans ce cas par exemple le programme httpd2 avec comme user apache ecoute en TCP sur le port 80 (http) et 443 (https), ce qui est normal lsof -i permet de détecter des processus suspects éventuellement attachés à des ports connus (80 par exemple). Pour les arrêter : - soit chkconfig off, ce qui évite que soit relancé au démarrage mcc -> System -> Services permet de faire la même chose. - soit trouver la commande ps aux |grep et tuer le processu correspondant kill -9 mais il repartira au prochain démarrage. Contrôle des ports à partir de l'extérieur ------------------------------------------- Sites proposant des contrôles : http://outils.sdv.fr/ http://grc.com/x/ne.dll?rh1dkyd2 http://scan.sygatetech.com/ Netfilter / Iptables -------------------- http://christian.caleca.free.fr/netfilter.html http://christian.caleca.free.fr/netfilter/iptables.htm http://www.netfilter.org/documentation/ (pointeurs sur documentation) http://iptables-tutorial.frozentux.net/iptables-tutorial.html http://logi.cc/linux/netfilter-log-format.php3 (netfilter log format) http://olivieraj.free.fr/fr/linux/information/firewall/fw-03.html which iptables Pour voir si la commande iptables est présente lsmod | grep iptable pour voir si le module est installé. iptables -L -v affiche les règles de fitrages. iptables -F pour supprimer toutes les règles (F = flush) tail -f netfilter.log |grep 1.25 affiche ce qui concerne la machine x.x.1.25 dans les 10 dernières lignes des logs d'iptables iptables -L FORWARD -vn |grep 80 ce qui concerne le port 80 (http, affichage numérique) iptables -L FORWARD -v |grep 80 ce qui concerne le port 80 (http, affichage en clair) Pour bloquer (ou débloquer) l'accès réseau ------------------------------------------ # iptables -P INPUT DROP bloque # iptables -P INPUT ACCEPT débloque NB : quand le le réseau fonctionne, mais que le PC ne répond à aucune tentative de connection ( ping, telnet, etc), vérifier avec iptables la policy de "Chain INPUT" ; n'est pas "DROP" # iptables -L Chain INPUT (policy DROP) Si c'est le cas : # iptables -P INPUT ACCEPT Bloquer une tentative d'accès ----------------------------- iptables -A INPUT -s -j DROP Iptables pour IPv6 ------------------ Installer si ce n'est pas encore fait iptables-ipv6 Pour bloquer IPv6 tant qu'il n'est pas utilisé : # ip6tables -F # ip6tables -P INPUT DROP # ip6tables -P OUTPUT DROP # ip6tables -P FORWARD DROP Vérifier l'état des programmes installés ---------------------------------------- rpm -Va Shorewall ========== Version et aide --------------- sudo shorewall version sudo shorewall help Interface de configuration Mandriva : ------------------------------------- drakfirewall La version installée par Mandrake est souvent très en retard. Certains rpm semblent même être buggés ! D'autre part la configuration faite par MDK ou MDV est calamiteuse : plus rien ne fonctionne !! => Supprimer la version de shorewall installée par MDK / MDV, télécharger la dernière version stable sur http://www.shorewall.net/ (NB : moins de problèmes avec les derniéres versions de MDV) Tout est très bien expliqué sur le site http://www.shorewall.net/ NB : les actions prédéfinies sont dans /usr/share/shorewall/actions.std (et non pas /etc/shorewall/actions.std) Installation : -------------- - Récupérer la dernière version de shorewall sur le site http://www.shorewall.net/ - Installer : # rpm -ivh shorewall....115 Shorewall a besoin du package iproute. En cas de message d'erreur indiquant qu'iproute n'est pas trouvé, vérifier qu'il est bien installé : # which ip /sbin/ip Puis relancer l'installation avec : # rpm -ivh --nodeps shorewall.... Les fichiers à renseigner obligatoirement pour que ça fonctionne : /etc/shorewall/interfaces /etc/shorewall/rules ainsi que /etc/shorewall/zones dans le cas des versions 2.3 et /etc/shorewall/policy dans le cas de la version 3 Fichier /etc/shorewall/interfaces ''''''''''''''''''''''''''''''''' Mettre : net eth0 detect norfc1918,routefilter,tcpflags,nosmurfs dans le cas d'une connexion par modem, rajouter : net ppp0 norfc1918,routefilter,tcpflags,nosmurfs Fichier /etc/shorewall/rules '''''''''''''''''''''''''''' Indiquer ce qui est autorisé et ce qui est interdit. NB : un certain nombre d'actions sont prédéfinies dans le fichier /usr/share/shorewall/actions.std : voir le contenu de ce fichier. Mettre au moins : ACCEPT net fw icmp 8 # ou bien AllowPing net fw ACCEPT fw net icmp Rajouter éventuellement : ACCEPT net fw tcp http # ou bien AllowWeb net fw AllowSSH net fw et pour un serveur : AllowFTP net fw AllowSMB net fw AllowSMB fw net AllowSMTP net fw AllowIMAP net fw Version 3 ......... Dans /etc/shorewall/rules des macros sont utilisées au lieu de Allow... : voir http://www.shorewall.net/Macros.html. Ces macros sont situées dans /usr/share/shorewall/ Exemple : Ping/ACCEPT net fw SSH/ACCEPT:info net fw SMB/ACCEPT net fw Voir la liste ds ports à ouvrir : http://www.shorewall.net/ports.htm Fichier /etc/shorewall/policy ''''''''''''''''''''''''''''' Pour que ça fonctionne, le fichier policy doit contenir : fw net ACCEPT net all DROP info all all REJECT info et non pas comme installé par défaut par les rpm MDK : loc net ACCEPT net all DROP info all all REJECT info (!!! explication ??) Version 3 ......... Le fichier /etc/shorewall.policy est vide ! /etc/shorewall/zones '''''''''''''''''''' A partir de Shorewall 2.2.0, le fichier /etc/shorewall/zones est vide : seule la zone fw est défine par défaut. Définir les zones à utiliser, par exemple (cf. http://shorewall.net/shorewall_setup_guide.htm) : net Net Internet loc Local Local networks dmz DMZ Demilitarized zone Version 3 --------- - dans /etc/shorewall/zones mettre les zones proposées en exemple : fw firewall net ipv4 loc ipv4 dmz ipv4 Puis démarrer le firewall par : # shorewall start (ou redémarrer par shorewall restart) Vérifier que les règles sont bien installées : iptables -L Principal fichier à configurer pour autoriser différents services (http, ftp, imap, etc.) à fonctionner : /etc/shorewall/rules Si les services ne sont pas prédéfinis dans /usr/share/shorewall/actions.std autoriser les ports "à la main" comme indiqué dans la doc contenue dans le fichier /etc/shorewall/rules Commandes intéressantes : ------------------------- # shorewall version par de -- ! # shorewall stop # shorewall clear # shorewall start # shorewall restart Pour voir l'état des règles de filtrage : ----------------------------------------- La dernière ligne générée par shorewall start se termine par "Shorewall Started" si shorewall a bien démarré. Sinon, en cas d'erreur la dernière ligne est "Terminated" et le PC risque de ne pas être protégé sans que l'on s'en rende compte !!! Il est donc indispensable de vérifier à postériori si shorewall a bien démarré en affichant les règles de filtrage : # iptables -L -v Il serait bon de générer un message clair (pop-p et son) pour avertir de la non-installation des règles de filtrage (à voir, ça existe peut-être déjà) Pour voir les messages générés par shorewall -------------------------------------------- less /var/log/messages tail -f /var/log/messages grep /var/log/messages Ports souvent sollicités ------------------------ DPT=631 ipp 631/tcp IPP (Internet Printing Protocol) ipp 631/udp IPP (Internet Printing Protocol) Dû à cups. Remède, dans /etc/cups/cupsd.conf changer "Browsing On" (défaut) en "Browsing off" et redémarrer cups (service cups restart Trier/formater les messages à partir des fichiers de log avec awk ------------------------------------------------------------- Par exemple, afficher le n° IP des machines (SRC=), rejetées sur le port 631 avec les ports source (SPT=) et destination (DPT=) : # grep 631 /var/log/messages |grep SPT=631 |awk '{print $9 " " $18 " " $19}' |less SRC=192.168.0.23 SPT=631 DPT=631 Repérer les tentatives réussies ou échouées de connexions ssh ------------------------------------------------------------- Pour que les connexions réussies soient enregistrées dans /var/log/messages, mettre dans /etc/shorewall/rules (on rajoute :info) : ACCEPT:info net fw tcp 22 AllowSSH:info net fw SSH/ACCEPT:info net fw Connexions réussies : # grep "Accepted password" /var/log/messages |less Connexions refusées : # grep "Failed password" /var/log/messages |less Pour compter le nombre de connexions refusées par jour # grep 'Failed password' /var/log/auth.log | grep sshd | awk '{print $1,$2}' | sort | uniq -c Pour surveiller en direct les attaques : # tail -f /var/log/messages | grep "Failed password" NB : elles sont aussi enregistrées dans /var/log/auth.log C'est le résultat du paramétrage par défaut défini dans /etc/ssh/sshd_config : # Logging #SyslogFacility AUTH #LogLevel INFO Avec un formatage : # grep "Failed password" /var/log/messages | awk '{print $2 " " $1 " " $3 " " $10 " " $11 " " $13 }' | less 14 Oct 14:17:19 user janaina ::ffff:209.209.13.165 14 Oct 14:17:20 user alves ::ffff:209.209.13.165 14 Oct 14:17:22 user miotto ::ffff:209.209.13.165 Nb : pour entrer la tabulation entre $10 et $13 : puis En savoir plus sur l'auteur de la tentative d'intrusion : $ whois 209.209.13.165 InReach Internet INREACH98 (NET-209-209-0-0-1) 209.209.0.0 - 209.209.127.255 Roger Caplan INREACH-ROGERCAPLAN (NET-209-209-13-160-1) Infos complémentaires (adresse, N° de tel, etc.) $ whois '!NET-209-209-13-160-1' ou simplement (les '! ne semblent pas nécessaires) $ whois NET-209-209-13-160-1 |less Blocage des tentatives d'accès "brute force" sur le port 22 ---------------------------------------------------------- fail2ban Interactive firewall (mandi) ============================ http://wiki.mandriva.com/en/Projects/Interactive_Firewall # urpmi mandi-ifw # service mandi status | start [ stop Autoriser ou interdire (blacklist, whitelist) # drakids ou directement dans les fichiers : /etc/ifw/blacklist /etc/ifw/whitelist Voir les logs # drakids Bug : "Unable to contact daemon" --- Solution : essayer service mandi start Anti-virus ========== Clamav/Klamav Doc : http://www.clamav.net/doc/latest/ Kalmav = interface graphique Installation ------------ # urpmi clamav Généralement pas à jour ! Installation à patir de sources $ tar -zxvf clamav-xxx.tar.gz $ cd clamav-xxx $ ./configure $ make # make install Désinstallation (à faire avant une nouvelle installation) # make uninstall Utilisation ----------- - Mise à jour de la base des virus # freshclam ERROR: Clamd was NOT notified: Can't connect to clamd through /var/lib/clamav/clamd.socket => installer Clamd ! # urpmi clamd # service clamd status clamd is stopped # service clamd start Voir "Setting up auto-updating" et le reste de la doc. ERROR: Please edit the example config file /usr/local/etc/freshclam.conf. ERROR: Please edit the example config file /usr/local/etc/clamd.conf. => Complètement idiot ! Editer ces fichiers et mettre dans : ----------------------------------------- # Comment or remove the line below. Example ----------------------------------------- "Exemple" en commentaire - Scan antivirus: # fdisk -l pour afficher la liste des partitions à scanner # clamscan -ri /point/de/montage/de/la/partition/ou/répertoire # clamscan -r --bell -–log=rapport.txt /point/de/montage/de/la/partition/ou/répertoire # clamscan -ri --remove /point/de/montage/de/la/partition/ou/répertoire -r récursive -i ou --quiet pour n'avoir que les virus de signalés CD bootables avec ClamAV ------------------------ ClamAV live CD ////////////// http://www.volatileminds.net/projects/clamav/tutorial.html Utilisation : ............. Dans un environneemnt sans DHCP : $ sudo ifconfig ethx netmask 255.255.... x = le n° de l'onterface netmask : à adapter au réseau (en général 255.255.255.0) $ sudo route add default gw Malheureusement il n'est pas possible d'enregistrer un fichier /etc/resolv.conf pour indiquer un serveur DNS (nameserver ) ce qui fait que la commande suivante (freshclam) revoie une erreur. => en l'absence de DHCP, utiliser de préférence SysRescueCD (cf. plus loin qui permet de définir un serveur DNS) Puis : $ sudo freshclam (mise à jour) $ sudo fdisk -l (pour lister les partitions) $ sudo mount -t ntfs-3g /dev/sda1 /mnt -o force (/dev/sda1 par exemple une partition NTFS ntfs-3g pour permettre l'effacement des virus sur une partition NTFS) $ sudo clamscan -ri --remove /mnt SystemRescueCd (SysRescueCD) //////////////////////////// A télécharger de www.sysresccd.org/Index.fr.php Après démarrage du CD live: - Choisir le type de clavier (16 pour français) - Si nécessaire (dans le cas où il n'y a pas de DHCP) configurer le réseau : net-setup ethx (x=0 ou plus rarement 1) Il arive parfois que l'auto-configuration de l'interfacee réseau par DHCP n'a pas réussi : utiliser aussi net-setup dans ce cas. Vérifier que le réseau fonctionne (ping sur une machine connue) - Mettre à jour l'anti-virus : freshclam - Lister les partitions à scanner : fdisk -l ou cat /proc/partitions - Créer un (ou des) point(s) de montage mkdir /mnt/1 (ne pas monter directement la partition à scanner dans /mnt) - Monter la partition à scanner (par exemple pour une partition NTFS sda1) mount -t ntfs-3g /dev/sda1 /mnt/1 ou, en cas de problème de montage : mount -t ntfs-3g /dev/sda1 /mnt -o force ls /mnt/1 (pour vérifier que c'est bien cette partition qu'on veut scanner) - Scanner avec l'anti-virus clamscan -ri /mnt/1 ou pour directement supprimer les virus : clamscan -ri --remove /mnt/1 Distributions sur CD bootable (CD live) outils pour contrôler, réparer, récupérer un système ============================================================================================ SystemRescueCd http://www.sysresccd.org/Main_Page INSERT (Inside Security Rescue Toolkit) http://www.inside-security.de/insert_en.html Ultimate Boot CD http://www.ultimatebootcd.com/index.html Installation de Mandriva (sur disque, clé USB, etc) à partir d'un site FTP ========================================================================== http://wiki.mandriva.com/fr/Installer_Mandriva_Linux#Installation_depuis_un_miroir_local.2C_disque_dur.2C_r.C3.A9seau_local.2C_ou_Internet Mandriva (ou autres distributions sur clé USB) ============================================== http://mdvmondelinux.tuxfamily.org/MANDRIVA-ONE-sur-cle-USB http://www.mcnlive.org/ http://loli.fsa.ulaval.ca/index.php?id=591 http://www.eeextra.com/eee/how-to-create-a-live-linux-usb-pendrive.html http://wiki.mandriva.com/en/Draklive ou http://wiki.mandriva.com/fr/Draklive http://wiki.mandriva.com/fr/TwikiCookerHowToFr#Installer_.C3.A0_partir_d.27une_clef_USB http://wiki.mandriva.com/fr/One_sur_live_usb http://en.wikipedia.org/wiki/Live_USB http://unetbootin.sourceforge.net/ Autres : http://pc-silencieux.disk91.com/index.php?2008/01 http://valaurea.free.fr/documents/sig11_flash.html Anti-virus sur CD bootable ========================== Utile pour vérifier la présence de virus sur un PC windows Insert (Inside Security Rescue Toolkit) --------------------------------------- http://www.inside-security.de/insert_en.html A base de Knoppix + clamav Pour contrôler une partition : 1 - monter la partition à contrôler, par exemple : # mount /dev/hda1 /mnt/hda1 2 - aide en ligne : # clamscan --help 2 - Lancer le scan anti-virus : # clamscan -r --bell /mnt/hda1 -r = recursive --bell = sonne pour chaque virus rencontré Avec enregistrement du résultat dans un fichier : # clamscan -r --bell --log=rapport.txt /mnt/hda1 ou encore : # clamscan -r --bell -log rapport.txt /mnt/hda1 System rescue CD (SystemRescueCd, SysRescueCD) ============================================== http://www.sysresccd.org/Index.fr.php Communiquer sous SSH avec un PC tournant sous sysresccd : - Changer le mot de passe root : # passwd - Vérifier que SSH tourne : # /etc/init.d/sshd status | start | restart D'un PC externe, on peut maintenant se connecter avec SSH de différentes façons sur le PC tournant sous SysRescueCD. Exemples (IP du PC sous SysRescueCD 192.168.1.20) : - ssh simple : $ ssh root@192.168.1.20 - sftp sous konqueror : sftp://root@192.168.1.20/ - sshfs, pour monter la partition /root de SysRescueCD sur une partition locale (mnt/disk par exemple) ou encore monter la partition root de $ sshfs root@192.168.1.20:/ mnt/disk Arpwatch ======== arp = address resolution protocol Maintient une base de donnée des adresses MAC visibles sur le réseau et de leurs paires d'IP associées Pour voir s'il tourne : $ ps auwx | grep arp Sinon pour lancer le démon : # arpwatch Pour voir les stations sur le réseau : # cat /var/log/messages | grep arp $ less /var/lib/arpwatch/arp.dat Pour l'afficher sous forme de page html $ arpwatch2html.pl Ethereal/Wireshark ================== Wireshark est le nouveau nom de ethereal www.ethereal.com/ www.wireshark.org/ Utilisation : Capture/Options Capture Filter: port 80 (par exemple) Cocher "Update list of packets in real time" [Start] Mise à jour de l'affichage : bouton [Clear] (sur la page initiale, ligne "filter") Etherape ======== http://etherape.sourceforge.net/ Tcpdump ======= tcpdump -i eth0 -s0 -X host IP_ou_nom_de_la_machine_à_scanner s0 lonqueur capturée, 0 signifie à tcpdump d'utiliser une longueur ad-hoc pour capturer des paquets entiers -X affichage en hexa et ASCII NB : sur MDV tcpdump fonctionne en donnant le n° IP mais pas avec le nom de la machine : ceci est dû à un fichier /etc/hosts incorrect, voir bug /etc/hosts plus bas : tcpdump affiche ce qui se passe sur 127.0.0.1, c'est à dire rien au niveau de eth0. Exemple : voir ce qui se passe sur le port 25 : Dans une console : # tcpdump -i eth0 -c 10 -l port 25 2>/dev/nul | while read titi; do lsof -n -i :25; done -i eth0 interface -c 10 -i eth0termine après réception de 10 paquets -l pour voir les paquets titi variable quelconque pour exécution de la boucle Dans une autre console (pour tester le résultat) $ telnet 25 se connecte sur le serveur de mail Netcat (nc) =========== www.jfranken.de/homepages/johannes/vortraege/netcat_inhalt.en.html Pour communiquer entre 2 machines. voir aussi cryptcat Se connecter ------------ netcat netcat En mode serveur (en attente d'une connexion sur un port spécifié) ----------------------------------------------------------------- netcat -l -p (l = listen) Sur le serveur -------------- $ nc -l -p 45678 -l = listen -p 45678 = n° de port quelconque => nc écoute sur le port indiqué ou $ nc -L -p 45678 pour éviter la déconnexion ou bien : $ nc -l -p 45678 > reception pour récupérer le résultat dans le fichier réception Sur le client ------------- (ne pas oublier de lancer le serveur avant, sinon "connection refused !) $ nc nom_ou_IP_du_serveur 45678 En cas de non-fonctionnement, voir la configuration du (des) firewall(s) éventuel(s) Serveur et client communiquent maintenant par le port 45678 : on peut taper au clavier des caractères sur le serveur qui s'affichent sur le client, et des caractères sur le client qui s'affichent sur le serveur Envoie de fichier ----------------- $ cat /fichier.txt | nc nom_client 45678 le contenu de /fichier.txt s'affiche sur le serveur Transfert de fichier -------------------- Serveur : nc -l -p 5500 < image.jpg Client : nc -v 5500 > toto.jpg Exécution de commandes ---------------------- Sur le serveur : $ nc -v -l -p 5600 -e /bin/bash (ou en plus court : nc -vlp5600 -e/bin/bash) Sur le client : $ nc 5600 et taper les commandes qui seront exécutées sur le serveur : le résultat s'affiche sur l'écran du client Test de ports ------------- http://3psilon.free.fr/index.php?pa=35 $ nc -vv 127.0.0.1 20-90 localhost.localdomain [127.0.0.1] 90 (?) : Connection refused localhost.localdomain [127.0.0.1] 89 (?) : Connection refused localhost.localdomain [127.0.0.1] 88 (kerberos) : Connection refused localhost.localdomain [127.0.0.1] 87 (?) : Connection refused localhost.localdomain [127.0.0.1] 86 (?) : Connection refused localhost.localdomain [127.0.0.1] 85 (?) : Connection refused localhost.localdomain [127.0.0.1] 84 (?) : Connection refused localhost.localdomain [127.0.0.1] 83 (?) : Connection refused localhost.localdomain [127.0.0.1] 82 (?) : Connection refused localhost.localdomain [127.0.0.1] 81 (?) : Connection refused localhost.localdomain [127.0.0.1] 80 (http) open Netcat s'arrête sur le 1° port trouvé ouvert Pour un scan complet : $ nc -vvz 127.0.0.1 20-90 Pour que netcat n'affiche que les ports ouverts, utiliser un seul -v : $ nc -vz 127.0.0.1 1-255 Gnu netcat ========== Semble plus complet que le netcat installé par défaut sur MDV 2007.0 (pas d'option -L par exemple) Télécharger : http://netcat.sourceforge.net/download.php -> netcat-0.7.1.tar.gz Décompresser : $ tar -zxvf netcat-0.7.1.tar.gz $ cd netcat-0.7.1 $ ./configure $ make $ sudo make install NB : l'installation se fait par défaut dans /usr/local/bin alors que le netcat d'origine est dans /usr/bin/netcat Pour différencier l'un de l'autre et y accéder facilement, par exemple : $ sudo ln -s /usr/local/bin/netcat /usr/bin/ncgnu Mode tunnel ----------- Nb utilise l'option -L absente de nc v1.10 : utiliser Gnu netcat cf. http://dept-info.labri.fr/~aumage/oa/Cours/ARSA/arsa.html : nc -L -p pour une prolongation simple. nc -L -p -x pour tracer la conversation. nc -L -p -o pour enregistrer la conversation dans un fichier. Cryptopgraphie, chiffrer des documents ====================================== encfs http://wiki.mandriva.com/fr/Encfs http://linux.softpedia.com/get/Desktop-Environment/Tools/EncFs-ServiceMenu-35807.shtml Cryptographie, disques virtuels cryptés, chiffrage ================================================== http://openpgp.vie-privee.org/linux.html Mountloop et son interface drakloop °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° http://www.aerospacesoftware.com/cryptoloop-howto.html /usr/share/doc/mountloop-0.15.1/README La configuration de drakloop est stockée dans ~/.mountlooprc : on peut y modifier (si nécessaire) le nom du répertoire crypté. NB : par contre le nom du fichier crypté "encfile" est codé en dur dans drakloop (voir le code source perl) : si on modifie ce nom, drakloop ne fonctionne plus. Idem pour les possibilités de cryptage : seul aes est proposé. Il est tout a fait possible de nommer autrement le fichier crypté et d'utiliser d'autres chiffrages, cf./usr/share/doc/mountloop-0.15.1/README => dans ce cas, utiliser mountloop en ligne de commande Montage à la main ----------------- $ mountloop

par exemple : $ mountloop aes256 Dossier_crypte/Fichier_crypte Dossier_crypte Menu contextuel pour monter ou démonter un fichier crypté -------------------------------------------------------------------- http://developer.kde.org/documentation/tutorials/dot/servicemenus.html http://www.kde-france.org/article.php3?id_article=82 http://www.coagul.org/article.php3?id_article=91 www.oreilly.com/catalog/linuxdeskhks/chapter/hack40.pdf http://mandrakeusers.org/lofiversion/index.php/t18068.html Ajouter dans ~/.kde/share/apps/konqueror/servicemenus (à l'usage de l'utilisateur courant) ou dans /usr/share/apps/konqueror/servicemenus (pour tous les utilisateurs) les fichiers .desktop suivants : - Pour monter le fichier crypté ```````````````````````````````` OpenCryptFile.desktop [Desktop Entry] Actions=OpenCryptFile ServiceTypes=all/allfiles [Desktop Action OpenCryptFile] Name=Open encrypted file Exec=/usr/bin/kdialog --password "Password for this crypted file?" | /usr/bin/mountloop aes256 %f %d Icon=/usr/share/pixmaps/password.png - Pour démonter le système de fichier crypté (ou tout autre système monté) ````````````````````````````````````````````````````````````````````````` UmountFS.desktop [Desktop Entry] Actions=UmountFS ServiceTypes=inode/directory [Desktop Action UmountFS] Name=Unmount File System Exec=kdesu "/bin/umount -fl %f" Icon=encrypted Pour activer ces actions, clic droit sur le fichier ou le dossier, puis sous-menu "Actions" Autre possibilité : associer le fichier encfile au programme drakloop --------------------------------------------------------------------- (K> System > Configuration > KDE > Components > File Associations encfile -> /usr/bin/drakloop) => un double clic sur le fichier lance drakloop NB : le fichier .desktop créé se trouve dans ~/.kde/share/mimelnk/application Truecrypt (renommé realcrypt sous MDV !!) °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° http://www.truecrypt.org/ Opensource, existe pour Windows et Linux : les fichiers cryptés sont visibles sous windows et linux. Mode d'emploi : http://altoptions.wordpress.com/2008/01/16/realcrypt-howto-part-1/ Installations ############# # urpmi truecrypt Mais la version disponible pour Mandrirva est obsolete ! Installation à partir des sources (version 6.1 ou 6.1a, voir plus loin installation version 6.3a avec meilleure intégration de wxWidgets) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Télécharger le code source Mac OS X/Linux : http://www.truecrypt.org/downloads2.php - Décompresser : $ tar -zxvf TrueCrypt\ 6.1a\ Source.tar.gz $ cd truecrypt-6.1-source et lire le fichier Readme.txt : $ less Readme.txt - Ajouter les librairies nécessaires au fonctionnement de truecrypt (cf. fichier Readme.txt) : Cryptoki : _________ En fait il faut uniquement les pkcs*.h de cryptoki (pkcs11f.h, pkcs11.h et pkcs11t.h, ne marche pas avec uniquement pkcs11.h !) : les récupérer sur "ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11" dans le répertoire de la version la plus récente (actuellement "v2-20") et les copier dans le répertoire "truecrypt-6.1a-source/Crypto" wxWidgets _________ installation : voir plus loin "Installation de wxAll" Puis : $ make WX_ROOT=/path/complet/vers/wxWidgets-2.8. wxbuild fuse ____ # urpmi lib64fuse-devel (ou urpmi libfuse-devel en 32 bits) Compilation de truecrypt : _________________________ $ make WXSTATIC=1 Installation : ______________ l'exécutable truecrypt se trouve dans ..../truecrypt-6.1a-source/Main $ cd Main # sudo chown root:root truecrypt # $ sudo cp truecrypt /usr/bin/ Avec cette version on a une interface graphique. Associer l'extension (.tc sous Windows, mais n'importe quelle autre extension peut être utilisée) : $ kcmshell filetypes et configurer. Installation à partir des sources, variante (version 6.3a) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Inspiré de http://forums.fedora-fr.org/viewtopic.php?pid=309213 - Télécharger le code source Mac OS X/Linux : http://www.truecrypt.org/downloads2.php - Décompresser : $ tar -zxvf TrueCrypt\ 6.3a\ Source.tar.gz $ cd truecrypt-6.3a-source - Ajouter les headers nécessaires au fonctionnement de truecrypt (cf. fichier Readme.txt) : récupérer les 3 fichiers : pkcs11f.h pkcs11.h pkcs11t.h sur ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/ et les copier dans le répertoire "truecrypt-6.3a-source/Crypto" cp pcks11*.* Crypto - Ajouter les librairies nécessaires au fonctionnement de truecrypt (cf. fichier Readme.txt) : fuse ---- sudo urpmi fuse libfuse-devel wxWidgets --------- Télécharger wxWidgets-2.8.10 à partir de http://www.wxwidgets.org/downloads/#latest_stable tar -zxvf wxWidgets-2.8.10.tar.gz sudo cp -R wxWidgets-2.8.10 /usr/src/ make WX_ROOT=wxWidgets-2.8.10 wxbuild sudo cp wxrelease/wx-config /usr/bin/ - Compiler truecrypt : make - Installer truecrypt sudo cp Main/truecrypt /usr/bin/ Installation à partir des sources, variante (version 7.0a) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Télécharger le code source Mac OS X/Linux : http://www.truecrypt.org/downloads2.php - Décompresser : $ tar -zxvf TrueCrypt\ 7.0a\ Source.tar.gz $ cd truecrypt-7.0a-source - Ajouter les headers nécessaires au fonctionnement de truecrypt (cf. fichier Readme.txt) : récupérer les 3 fichiers : pkcs11f.h pkcs11.h pkcs11t.h sur ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/ et les copier dans le répertoire "truecrypt-7.0a-source/Crypto" cp pcks11*.* Crypto - Ajouter les librairies nécessaires au fonctionnement de truecrypt (cf. fichier Readme.txt) : fuse ---- sudo urpmi fuse lib64fuse-devel wxWidgets --------- Télécharger wxWidgets-2.8.12 à partir de http://www.wxwidgets.org/downloads/#latest_stable (wxAll) tar -zxvf wxWidgets-2.8.12.tar.gz cd wxWidgets-2.8.12 Compiler wxWidgets (cf readme-x11.txt) : md buildx11 cd buildx11 ../configure --with-x11 make cd .. Pour compiler avec GTK, rajouter gtk devel : sudo urpmi lib64gtk+2.0_0-devel md buildgtk cd buildgtk ../configure --with-gtk make sudo make install sudu ldconfig - Compiler truecrypt : sudo urpmi nasm cd truecrypt-7.0a-source make WX_ROOT=/chemin/vers/wxWidgets-2.8.12 wxbuild sudo urpmi nasm make (ou make WXSTATIC=1 s'il y a des erreurs de compilation) L'executable truecrypt se trouve dans le répertoire "main" - Installer truecrypt sudo cp Main/truecrypt /usr/bin/ Installation version 7.1 ^^^^^^^^^^^^^^^^^^^^^^^^ Simplissime : contien un installateur ! - Télécharger truecrypt-7.1-linux-x64.tar.gz - Décompresser : $ tar -zxvf truecrypt-7.1-linux-x64.tar.gz - Exécuter l'installateur obtenu $ ./truecrypt-7.1-setup-x64 Graver un conteneur truecrypt sur CD ou DVD ------------------------------------------- - DVD R+W 4.7 GB : créer un container truecrypt de 4480 MB maximum (truecrypt crée un fichier de 4 697 620 480 bytes). K3b rapporte 2 MO de libres. - CD Man ### $ man realcrypt (man truecrypt ne marche pas !!) # realcrypt -h # truecrypt -h aide # realcrypt -V # truecrypt -V version Documentations -------------- http://www.truecrypt.org/docs/?s=tutorial http://altoptions.wordpress.com/2008/01/16/realcrypt-howto-part-1/ Utilisation en ligne de commande """""""""""""""""""""""""""""""" Création d'un volume crypté --------------------------- # realcrypt -c et répondre aux questions NB : si on choisit : 2) None au lieu de 1) FAT il faudra par la suite formater le volume, par exemple en ext3 Formatage --------- Si ce n'a pas été fait dans l'étape précédente : # realcrypt -i associe le volume à un device et le monte et répondre aux questions. Puis : # mkfs.ext3 /dev/mapper/realcrypt0 # mount /dev/mapper/realcrypt0 /point/de/montage Les droits sont root:root. Les changer pour autoriser l'utilisateur et le groupe à y accéder : # chown : /point/de/montage # realcrypt -l facultatif : pour lister le(s) device(s) # realcrypt -d pour démonter et libérer tous les devices Pour ne démonter qu'un device (conteneur), l'une ou l'autre de ces commandes : # realcrypt -d /point/de/montage ou : # realcrypt -d /dev/mapper/realcryptx (x = 0, 1 ... n° du conteneur) ou : # realcrypt -d /FichierConteneur ou : # umount /point/de/montage (ne libère pas le device) ou : # umount /dev/mapper/realcryptx (ne libère pas le device) Utilisation courante en ligne de commande ----------------------------------------- # truecrypt volume.tc /point/de/montage montage en "read only # truecrypt -d volume.tc démonte volume.tc # truecrypt -d démonte tous les volumes montés Avec l'interface graphique pas d'option pour monter les volumes NTFS en lecture/écriture (truecrypt 6.0 ou 6.1) -> utiliser la ligne de commande : # truecrypt --filesystem=ntfs-3g --fs-options=users,rw,uid= volume.tc /point/de/montage GUI (interface graphique) """"""""""""""""""""""""" http://tcgui.tc.funpic.de/en/download.htm http://www.howtoforge.com/truecrypt-with-gui-on-ubuntu-7.10-p2 http://webscripts.softpedia.com/script/Security-Systems/truecrypt-GUI-33364.html Installation, utilisation de tcgui (obsolète ; la versin truecrypt 6 a une interface graphique) ---------------------------------- $ tar -zxvf tcgui-0.2.tar.gz # cp -r tcgui-0.2 /opt/ # /opt/tcgui-0.2/tcgui et répondre aux messages d'erreur par : # urpmi php-cli # urpmi php-gtk2 # vi /etc/php.ini chercher "extension" et ajouter la ligne : extension=php_gtk2.so. Voir le commentaire dans ce fichier : on peut aussi mettre la ligne extension=php_gtk2.so dans un fichier du répertoire /etc/php.d/ # /opt/tcgui-0.2/tcgui File > Add MountPoint pour ajouter un point de montage Click droit sur le point de montage - pour indiquer le volume à monter - ou pour supprimer le point de montage Click droit sur le nom de volume - pour le démonter Tools > Save Favorites Tools > Mount Favorites Installation de truecrypt-GUI (obsolète ; la version truecrypt 6 a une interface graphique) ----------------------------- # urpmi java # urpmi pexpect # groupadd truecrypt # usermod -G truecrypt root # usermod -G truecrypt # chgrp truecrypt /usr/sbin/truecrypt # ln -s /usr/sbin/realcrypt /usr/bin/realcrypt # tar -zxvf tcgui.0.4.2.tar.gz # bash install.sh root $ tcgui Container truecrypt formaté en NTFS ----------------------------------- En mode graphique truecrypt 6, ou 6.1 monte un volume NTFS en "read-only"; pour autoriser l'écriture : Erreurs truecrypt : ------------------- "device-mapper: reload ioctl failed: Invalid argument Command failed" Cause : le noyau ne contient pas les modules cryptographiques nécessaires Solutions : 1- Recompiler le noyau en ajoutant à la rubrique Cryptographic API les supports LRW et XTS. 2- Ne pas utiliser les modules cryptographiques du noyau : * en interface graphique : Menu : Settings > Preferences > System Integration, cocher "Do not use kernek cryptographic services" * ou en ligne de commande (option nokernelcrypto), exemple : $ truecrypt --mount-options=nokernelcrypto --filesystem=ntfs-3g --fs-options=users,rw,uid=500 /source.tc /repertoire/destination Lecture-écriture de partitions NTFS =================================== http://www.jankratochvil.net/project/captive/ Captive: The first free NTFS read/write filesystem for GNU/Linux ntfs-3g.org http://www.ntfs-3g.org/ Serveur de log syslog-ng ======================== Voir doc et FAQ très bien faites sur : http://www.balabit.com/products/syslog_ng/ Installation ------------ Installer à partir des rpm (actuellement syslog-ng-1.4.17-5mdk) ou récupérer les sources sur http://www.balabit.com/products/syslog_ng/upgrades.bbq, actuellement : - syslog-ng-1.6.6.tar.gz - libol-0.3.15+20050407.tar.gz Décompresser : $ tar zxvf nom_fichier Compiler d'abord liblo puis syslog-ng : # cd nom_répertoire # ./configure # make # make install Fichiers syslog-ng installés : /usr/local/sbin/syslog-ng /usr/local/man/man5/syslog-ng.conf.5 /usr/local/man/man8/syslog-ng.8 Créer le répertoire /etc/syslog-ng Y copier le fichier de configuration autodocumenté que l'on trouve dans les sources /contrib/syslog-ng.conf.doc et le renommer en syslog-ng.conf Copier le script de démarrage init.d.RedHat-7.3 que l'on trouve dans les sources, répertoire contrib/, et le renommer en syslog-ng et lui donner les droits rwxr--r-- : # chmod 744 syslog-ng Commandes de base ----------------- syslog-ng --help syslog-ng -V -> version Classer les fichiers de log --------------------------- http://linuxfr.org/tips/index,1.html Pour classer les fichiers de log dans des répertoires type AAAA/MM/JJ ou encore HOSTS/AAAA/MM/JJ (si on fait un serveur de log), configurer syslog-ng.log : utiliser les variables $HOSTS $YEAR ... Exemple pour auth.log : destination authlog {file("/var/log/HOSTS/$HOST/$YEAR/$MONTH/$DAY/auth.log");}; Configuration écran /résolution / réglage du gamma (contraste) / rafraîchissement ================================================================================= XFdrake kcmshell display krandrtray Xdrakres En ligne de commande : xrandr changement "au vol" sans redémarrer X $ xrandr -q affiche les résolution possibles # xrandr -s 800×600 pour changer la résolution Lancement automatique de processus ================================== at, cron, kcron, drakcronat http://www.ml.refer.org/LancementAuto.htm http://www.faqts.com/knowledge_base/view.phtml/aid/1005/fid/436 at °° Exemple : # at 12:15 warning: commands will be executed using (in order) a) $SHELL b) utilisateur shell c) /bin/sh at> echo coucou at> df at> job 1 at 2003-09-04 12:15 NB : EOT obtenu en tapant A 12 H 15 un message est envoyé à l'utilisateur avec le résultat des commandes echo et df atq : liste des jobs en attente cron °°°° Voir le man, pour une fois presque clair (il y a des exemples) ! http://lea-linux.org/admin/automate.php3#cron https://help.ubuntu.com/community/CronHowto Les tâches à exécuter sont stockées dans des fichiers texte ayant le nom de l'utilisateur (root, adm, tartempion ...) dans le répertoire : /var/spool/cron/ A voir également : les répertoires /etc/cron..... ---- Pour programmer une tâche à répéter plusieurs fois : Exemple : mise à l'heure de la machine à 3 H du matin tous les jours Ouvrir le fichier avec la commande crontab -e (ça ouvre le fichier de l'utilisateur logé). Y inscrire par exemple : 0 3 * * * /bin/nice -n 19 /usr/sbin/ntpdate -u ntp1.tuxfamily.net Fermer : un message de mise à jour de la table s'affiche Les champs de gauche à droite : minute (0-59) / heure (0-23) / jour (1-31) / mois (1-12 ou les 3 premières lettres du mois) / jour de la semaine (0-7) ou les 3 premières lettres du jour. Listes permises, par exemple : 1,2,3,4,5 pour lundi à vendredi (dans le champ jour) 1-5 idem 0-4,20-23 dans le champ heure : toutes les heures de 0 à 4 et de 20 à 23 heures NB : - Pour le jour de la semaine 0=7=sun - Bien indiquer le "path" des commandes, sinon elles ne sont pas trouvées. Les choses qu'il semble utile de mettre dans la crontab : - mise à jour de l'heure - mise à jour de la base slocate (updatedb) - mise à jour automatique du système (urpmi --auto --auto-update) ----- Pour changer l'éditeur utilisé par défaut par crontab changer la variable d'environnement EDITOR (ou VISUAL) : $ export EDITOR=nom_de_l'éditeur anacron °°°°°°° # urpmi anacron # service anacron status Gestion des tâches ================== ps Lister les "process" =================== $ top q pour quitter k pour tuer le processus n° PID h help Sous KDE : Impression ========== Liste des impressions en cours : ------------------------------- $ lpq Supprimer une impression : ------------------------ $ lprm n°_de_job Lancer une impression à partir de la ligne de commande : -------------------------------------------------------- $ lpr nom_du_fichier Association (KDE) ================= K> System > Configuration > KDE > Components > File Associations ou plus rapidement : $ kcmshell filetypes Les associations sont mémorisées dans :~/.kde/share/config/profilerc MDV 2008 : ne semble pas fontionner ! Autres possibilités : --------------------- 1 - Clic droit sur le fichier à associer à une application Cliquer sur l'icône en forme de clé anglaise Ajouter ou sélectionner l'application à utiliser et la mettre en tête de liste. ou encore : 2 - Clic droit sur le fichier à associer à une application "Open with" Même si l'application à utiliser est dans la lite affichée, cliquer sur "Other" On se retrouve dans la me interface que précédemment : ajouter ou sélectionner l'application à utiliser et la mettre en tête de liste. NB : la modification s'applique (en principe) à tous les logiciels KDE. Ce n'est pas le cas de firefox : pour changer les associations dans firefox voir plus loin "Firefox, associations fichiers-application". Utilisation de la memoire (cache, swap) ======================================= free Permissions =========== http://lea-linux.org/admin/admin_env/permissions.html http://www.zzee.com/solutions/linux-permissions.shtml#zzee_link_1_1077830297 http://cyberzoide.developpez.com/unix/droits.php3 Droits ------ fichiers Répertoires --- 0 = No rights at all --x 1 = Execute only Modification des droits des fichiers contenus possible -w- 2 = Write only r-- 4 = Read only Contenu du répertoire visible r-x 5 = Read and Execute (4+1) rw- 6 = Read and Write (4+2) visible et contenu modifiable rwx 7 = Read, Write, and Execute (4+2+1). cf. http://fr.selfhtml.org/petitsassistants/chmod.htm Exemples : `````````` cf. http://www.zzee.com/solutions/chmod-help.shtml # chmod 644 file.txt ou bien : # chmod u+rw-x,g+r-wx,o+r-wx file.txt # ls -l file.txt -rw-r--r-- 1 root root 33 Jul 11 17:10 file.txt umask ----- File creation mode mask : moodifie les droits sur les répertoires et fichiers créés Exemple dans http://en.wikipedia.org/wiki/Umask Droit initial : 777(en octal) = 111 111 111 (en binaire) Masque : 174 (octal) = 001 111 100 (en binaire=)2 NOT (résultat) : 603 = 110 000 011 Droit initial : 777 umask 002 => 775 (rwxrwxr-x) umask 022 => 755 (rwxr-xr-x) umask 017 => 760 (rwxrw----) umask 0 => 777 (rwxrwxrwx) pas de changement ! Ne changer les droits que sur les répertoires ou les fichiers, exemples : ````````````````````````````````````````````````````````````````````````` find -type d -print0 |xargs -0 chmod 755 ou bien find . -type d -exec chmod 755 {} ";" find -type f -print0 |xargs -0 chmod 644 Utilisateur propriétaire du fichier ----------- chown [-R] nom_du_propriétaire:nom_du_groupe nom_fichiers -R = récursif chown root toto.txt chown root:root toto.txt iti.sh find /usr/local/toto -user bibi -exec chown bobo {} \; trouve à partir du répertoire /usr/local/toto tous les fichiers ayant pour utilisateur bibi pour le remplacer par l'utilisateur bobo. NB : après avoir changé les droits sur un répertoire, réouvrir la session POUR QUE LA MODIFICATION SOIT PRISE EN COMPTE !!! Sticky bit ---------- http://www.unixguide.net/hp/faq/5.1.9.shtml Disques durs ============ Bios : Cas d'un disque dur IDE seul sur sa nappe : s'il est reconnu avec le cavalier sur CS, mais pas sur MA, essayer sans cavalier (cas des disques WD) Test performances ----------------- hdparm -t /dev/drive bonnie Compression / décompression =========================== http://astuce.linux.free.fr/Archivage/Comment_créer_et_décompresser_une_archive_avec_tar.html http://www.linux-kheops.com/doc/dupoux/compress/ http://cern91.tuxfamily.org/linux/menu.php?page=tar Compresser un fichier : ----------------------- gzip NomFichier.ext -> NomFichier.ext.gz Autre possibilité : bzip2 Décompresser ------------ gunzip filename.ext.gz. NB : le fichier compressé est supprimé : il est remplacé par le décompressé Regrouper (et compresser) plusieurs fichiers en une seule archive ----------------------------------------------------------------- Archiver 2 fichiers dans un seul tar cvf NomArchive.tar NomFichier1.ext NomFichier2.ext Désarchiver ces fichiers tar xvf NomArchive.tar Pour en même temps archiver et compresser tar cvfz NomArchive.tgz NomFichier1.ext NomFichier2.ext Options : c = créer l'archive v = verbose f = dans un fichier archive z = compresser Voir le contenu tar tfz NomArchive.tgz Option : t "type" le contenu de l'archive Décompresser : tar -xvf NomArchive.tgz x extrait les fichiers. Fichiers .tar.Z gunzip toto.tar.Z -> crée toto.tar tar xvf toto.tar -> décompresse toto.tar Fichiers .tar.gz : tar -zxvf toto.tar.gz (ou bien en 2 temps : gunzip toto.tar.gz tar -xvf toto.tar Utiliser tar pour faire une copie d'un répertoire ------------------------------------------------- tar cf - repertoire/a/copier | (cd /repertoire/destination; tar xpvf -) - indique à tar - entrée standard c crée l'archive x extrait l'archive p preserve les permissions v verbose Fichiers bz2 ------------ En 2 temps : bunzip2 NomFichier.bz2 -> NomFichier.tar tar xvf NomFichier.tar En 1 temps : tar jxvf NomFichier.bz2 Fichier zip ----------- Compresser zip -r nom_du_fichier.zip repertoire_ou_fichier -r = récursif Décompresser : unzip fichier.zip Fichiers binhex --------------- uuDeview / xdeview (http://www.fpx.de/fp/Software/UUDeview/) Fichiers rar ------------ unrar e fichier.rar extrait sans création des répertoires d'origine unrar x fichier.rar extraction avec crétion des répertoires Interfaces graphiques --------------------- Ark fileroller Commande cp (copie) =================== Copier le contenu d'un répertoire ou un fichier avec son (ou une partie de son arborescence) cp -R --parents /home/toto/exemple/1 test cp -R --parents ~/exemple/1 test => résultat : l'arborescence home/toto/exemple/1 est crée dans test cp recopie l'arborescence passée en paramètre Copier, archiver, mettre à jour un disque, une partition, un répertoire ======================================================================= Avec cp ------- cp -a source destination Avec dd ------- Copie de disque à disque (disques identiques, semble poser des problèmes si disques différents) dd if=/dev/hda of=/dev/hdc NB : la taille de block par défaut est très faible, d'où des temps de copie élevés : entrer une taille de bloc élevée, par exemple : dd if=/dev/hda of=/dev/hdc bs=256k Avec rsync ---------- cf.http://lea-linux.org/trucs/?aff_item=202 Créer un fichier d'exclusion : contient la liste des fichiers ou répertoires que l'on ne veut pas (re)copier. Exemple / dir_exclus.lst : ................... /proc /tmp /mnt /home ................... NB : il est important d'exclure /mnt surtout si la destination est montée sous /mnt (/mnt/copie dans l'exemple suivant) # rsync -avH --exclude-from=dir_exclus.lst / /mnt/copie # rsync -avoH --exclude-from=dir_exclus.lst / /mnt/copie Avec mirrordir -------------- # mirrordir --exclude-from /dir_exclus.lst / /mnt/copie Programmation de tâches (cron) ============================== kcron /etc/crontab MBR écrasé -> partitions disque perdues : comment les récupérer =============================================================== Le mbr contient plusieurs informations essentielles pour le fontionnement de l'ordinateur : Extrait du "Linux System Administrator's Guide" The MBR, boot sectors and partition table The information about how a hard disk has been partitioned is stored in its first sector (that is, the first sector of the first track on the first disk surface). The first sector is the master boot record (MBR) of the disk; this is the sector that the BIOS reads in and starts when the machine is first booted. The master boot record contains a small program that reads the partition table, checks which partition is active (that is, marked bootable), and reads the first sector of that partition, the partition's boot sector (the MBR is also a boot sector, but it has a special status and therefore a special name). This boot sector contains another small program that reads the first part of the operating system stored on that partition (assuming it is bootable), and then starts it. Outils de récupération de la table de partition : ----------------------------------------------- gpart http://www.stud.uni-hannover.de/user/76201/gpart/ fixdisktable http://bmrc.berkeley.edu/people/chaffee/fat32.html testdisk http://www.cgsecurity.org/ Testdisk semble le meilleur Liens intéressants : http://www.ntfs.com/mbr-damaged.htm http://plug.linux.org.au/~steve/mbr.html#mbr Récupération de fichiers accidentellement effacés ================================================= En plus de testdisk, tester : TestDisk (urpmi testdisk) ddrescue (http://www.gnu.org/software/ddrescue/ddrescue.html) PhotoRec (http://www.cgsecurity.org/wiki/PhotoRec) Cf. http://www.cgsecurity.org/wiki/PhotoRec MBR écrasé : affectation lettre <-> partition perdue sous W2000 ================================================================ Dans les OS Microsoft les partitions sont désignées par une lettre. Sous Windows 2000 (et NT4 ?) l'affectation lettre <-> partition dépend d'une information stockée dans le mbr. Si l'on écrase le mbr (sous DOS par fdisk /mbr, par exemple) cette information est perdue, d'où parfois impossibilité d'accéder à une session. Pour y remédier, consulter les articles suivants de la knowledge base Microsoft Unable to Log on if the Boot Partition Drive Letter Has Changed (article 249321) HOW TO: Change the System/Boot Drive Letter in Windows (article 223188) Telnet ====== telnet nom_ou_N°IP_serveur-POP 110 (143 pour IMAP) Caractère d'échappement : Escape character is '^]' soit sur le clavier : Ctrl + AltGr + "]" "]" = touche entre le "0" et le "=" en haut du clavier. login machin ****** (login avec nom d'utilisateur/mot de passe) select inbox (selectionner sa mailbox) list Avec POP3 --------- Apache et SSL ============= Voir /etc/ssl/apache/README.test-certificates Utiliser openssl ou /usr/lib/ssl/apache-mod_ssl/gentestcrt.sh (programme spécifique MDV) SSH === http://www-106.ibm.com/developerworks/library/l-keyc.html http://www-106.ibm.com/developerworks/linux/library/l-keyc2/ http://troumad.free.fr/Linux/Linux.sxw Démarrer / redémarrer ... --------------------- # service sshd status start restart stop Sur une knoppix (v 3.4) # /etc/init.d/ssh et créer un utilisateur avec mot de passe. Plus simple : KNOPPIX > Services > Start SSH server De façon générale ce menu Knoppix permet de lancer plusieurs services, en particulier - Terminal server - NX - Samba - SSH Fichiers de configuration ------------------------- /etc/ssh ~/.ssh Sécuriser les connexions ssh ---------------------------- Fichier /etc/ssh/sshd_config cf. http://www.faqs.org/docs/securing/chap15sec122.html - Spécifier quels utilisateurs peuvent se connecter : AllowUsers toto bibi truc@test.domaine.fr Seuls les utilisateurs toto bibi peuvent se connecter ainsi que l'utilisateur truc, mais uniquement à partir de la machine test.domaine.fr - Interdire l'accès à root: PermitRootLogin no Vérifier si SSH tourne sur le PC distant et quelle est la version du programme: ------------------------------------------------------------------------------ telnet nom_ou_N°IP_PC_distant 22 Se connecter au PC distant : ---------------------------- ssh nom_ou_N°IP_PC_distant ou bien pour avec un autre utilisateur que celui qui est utilisé ssh -l utilisateur nom_ou_N°IP_PC_distant ssh utilisateur@nom_ou_N°IP_PC_distant Pour augmenter la vitesse de transfert (compression) : ssh -C Pour pouvoir afficher des applications graphiques (X11 forwarding) : ssh -X Pour pouvoir afficher des applications graphiques (trusted X11 forwarding) : ssh -Y En cas de message d'erreur "cannot open display", éditer /etc/ssh/sshd_config et vérifier que X11Forwarding est à "yes". ConnectionTimeout : En cas d'erreur de connexion le timeout est particulièrement long (de l'ordre de 2 minutes ?) Pour le raccourcir par exemple à 10 secondes : ssh -o ConnectTimeout=10 user@machine (ConnectTimeout et non pas ConnectionTimeout comme indiqué dans la doc !) Se connecter en root au PC distant : ------------------------------------ L'autoriser/l'interdire : voir : /etc/ssh/sshd_config PermitRootLogin yes | no AllowUsers DenyUsers Lancer une application sur la machine distante ---------------------------------------------- ssh utilisateur@nom_ou_N°IP_PC_distant Créer / changer un couple de clés privées/publiques --------------------------------------------------- $ ssh-keygen -t rsa pour générer un couple de clés RSA $ ssh-keygen -t dsa DSA et répondre aux questions. Un couple de clés est créé dans // qui a été indiqué : contient la clé privée .pub contient la clé publique La clé publique contient à la fin @ ssh-keygen sans passphrase permet de se connecter à un serveur ssh sans taper de mot de passe (la passphrase). Mais c'est un trou de sécurité. Pour un login sans mot de passe, il est préférable s'utiliser ssh-agent, ssh-add et keychain. Voir plus loin à "Utilisation de ssh-agent" Problèmes --------- ***1*** ssh: connect to host toto port 22: Connection refused 1 - Le port 22 doit être ouvert (vérifier le firewall) 2 - Vérifier que le serveur sshd est installé ET qu'il est démarré NB : après installation (urpmi openssh-server) le serveur n'est pas démarré automatiquement Le lancer avec : # service sshd start ***2*** @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! ... Agent forwarding is disabled to avoid attacks by corrupted servers. X11 forwarding is disabled to avoid attacks by corrupted servers. Are you sure you want to continue connecting (yes/no)? Cause probable : PC1 = PC sur lequel on a tapé la commande ssh PC2 et qui affiche le message d'erreur PC2 = PC que l'on essaye de connecter Une nouvelle installation de SSH a été faite sur PC2. Pour que ce message ne s'affiche plus, supprimer dans le fichier ~.ssh/known_hosts de PC1 la (les) lignes commençant par le(s) nom(s) correspondant à PC2. ***3*** Cygwin : "connection refused" Voir l'installation, la configuration et le démarrage de sshd sur : "How to install OpenSSH sshd server and sftp server on a Windows 2000 or Windows XP or Windows Server 2003" (http://pigtail.net/LRP/printsrv/cygwin-sshd.html) En résumé : Aujourd'hui les étapes 1 et 2 sont inutiles : c'est fait par ssh-host-config (1) My Computer, Properties, Advanced, Environment Variables, System variables Ajouter une nouvelle variable : Variable name : CYGWIN Variable value : ntsec tty (2) Rajouter au path : ;X:\cygwin\bin (remplacer X par la lettre du disque sur lequel se trouve cygwin) (3) Lancer Cygwin puis : ssh-host-config - privilege separation : yes - local user : yes - install sshd as a service : yes - CYGWIN= ntsec tty (4) Démarrer sshd : net start sshd (ou cygrunsrv --start sshd) Pour stopper sshd : net stop sshd (ou cygrunsrv --stop sshd) Connexion directe sous konqueror --------------------------------- cf.http://www.linux.org/lessons/short/fish/t1.html#FISH-STORY fish://nom_ou_N°IP_PC_distant fish://utilisateur@nom_ou_N°IP_PC_distant fish://utilisateur@nom_ou_N°IP_PC_distant/repertoire/à/consulter Attention : avant d'utiliser fish se connecter au moins une fois avec user@ssh à la machine distante, sinon la connexion par fish est refusée. fish ne fonctionne pas sous les autres browsers : "fish is not a registered protocol" Connexion directe sous konqueror (variante) --------------------------------- cf. http://www.linuxgazette.com/node/401 idem fish, mais la commande est sftp : sftp://nom_ou_N°IP_PC_distant sftp://utilisateur@nom_ou_N°IP_PC_distant sftp://utilisateur@nom_ou_N°IP_PC_distant/repertoire/à/consulter sftp n'a rien à voir avec le protocole ftp : c'est en fait du ssh. Ne fonctionne pas non plus sous les autres browsers : "sftp is not a registered protocol" Copie de fichiers ----------------- Copier un fichier local sur un pc distant: $ scp /rep_source/fichier utilisateur@pc_distant:~/rep_destination $ scp /rep_source/fichier utilisateur@pc_distant:~/rep_destination/ (même résultat) $ scp /rep_source/fichier utilisateur@pc_distant:~/rep_destination/autre_nom_de_fichier L'inverse : copier un fichier résidant sur un pc distant dans un répertoire local : $ scp utilisateur@pc_distant:/répertoire_distant/fichier /chemin/vers/rép_local/nom_fichier Pour les copies récursives, option -r : $ scp -r utilisateur@pc_distant:/répertoire_distant Pour éviter d'avoir à taper à chaque connexion le login/mot de passe : --------------------------------------------------------------------- 1 - générer une paire de clés privée/publique (= clé/serrure) $ ssh-keygen -t rsa Répondre à la question "passphrase:" en entrant la phrase de son choix Les clés générées sont dans ~/.ssh : id_rsa clé privée id_rsa.pub clé publique Changer la "passphrase" (ou en entrer une) si nécessaire : $ ssh-keygen -p -f ~/.ssh/id_rsa 2 - Copier la clé publique dans le fichier ~/.ssh/authorized_keys de la machine sur laquelle on veut se connecter : $ scp ~/.ssh/id_rsa.pub utilisateur@nom_ou_N°IP_PC_distant:~/.ssh/authorized_keys ou bien ajouter cette clé publique à un fichier ~/.ssh/authorized_keys existant $ cat ~/.ssh/id_rsa.pub | ssh utilisateur@nom_ou_N°IP_PC_distant "cat >> ~/.ssh/authorized_keys" ou bien utiliser ssh-copy-id pour ces copies. 3 - Utiliser ssh-agent (voir plus loin "Utilisation de ssh-agent") (facultatif : n'est pas utile si on a pas entré de "passphrase", mais l'absence de passphrase est un trou de sécurité dans le cas ou un pirate vole la clé privée) ssh, scp, sftp sous windows =========================== Pour se connecter depuis Windows à une machine linux : winscp winscp.net/ Monter un répertoire Unix distant ================================= shfs à revoir : ne marche plus (utiliser sshfs à la place, voir plus loin) shfs (Secure SHell FileSystem Linux kernel module) -------------------------------------------------- http://shfs.sourceforge.net/ Installation et mode d'emploi : http://www.labo-linux.org/index.php?page=lumieres&id=278 # urpmi shfs-utils shfsmount utilisateur@machine_distante /point/de/montage ou mount -t shfs utilisateur@machine_distante /point/de/montage Attention, contrairement à fish, pour indiquer un répertoire, rajouter ":" après le nom de machine : shfsmount utilisateur@machine_distante:/répertoire/à/monter /point/de/montage shfsmount -o rmode=755 user@PC_distant:/répertoire/distant /point/de/montage cf man shfsmount -o rmode=755 pour permettre à un utilisateur autre que root d'accéder au point de montage :/répertoire/distant facultatif, si absent c'est le répertoire / qui est monté, Attention : cas d'une machine W$+Cygwin protégée par firewall (kerio) après un shfsmount -o rmode=755 user@PC_distant:/répertoire/distant /point/de/montage si la commande ls /point/de/montage bloque, c'est très probablement kerio qui bloque l'exécution de la commande cygwin ls : le vérifier Problème : Après installation par urpmi # urpmi shfs-utils # shfsmount -o rmode=755 utilisateur@PC_distant:Documents /mnt/disk shfsmount: shfs filesystem not supported by the kernel Solutions : - recompiler shfs à partir des sources ? - utiliser sshfs (cf. ci-dessous) à la place de shfs. sshfs et fuse (Filesystem in UserSpacE) --------------------------------------- Permet, à travers ssh, de monter en local une ressource (répertoire) distante http://fuse.sourceforge.net/sshfs.html http://fuse.sourceforge.net/wiki/index.php/FAQ Pour 2008.0 (et peut-être avant) la mise en place de sshfs/fuse est simplifiée, voir plus loin : "sshfs_2008" Installations ------------- A la date du 13-4-2006, pas encore de rpm pour MDV 2006.0 : utiliser le rpm de cooker main. Installer les sources du noyau Installer sshfs-fuse Installation à partir des sources --------------------------------- Installer les sources du noyau Récupérer les sources de fuse et sshfs sur le site ci-dessus tar -zxvf fuse-2.5.3.tar.gz cd fuse-2.5.3 ./configure make make install tar -zxvf sshfs-fuse-1.6.tar.gz cd sshfs-fuse-1.6 ./configure make make install Installation à partir du rpm (Mandriva 2007 et au dessus) --------------------------------------------------------- # urpmi sshfs-fuse Vérifier si le système est lancé # service fuse status Le lancer # service fuse start Vérifier éventuellement (en cas d'erreur) que le module fuse est installé dans le noyau # lsmod |grep fuse Si ce n'est pas le cas, voir le wiki de fuse : http://fuse.sourceforge.net/wiki/index.php/SshfsFaq " Create the device node If you don't use udev, you may get this error message: fusermount: failed to open /dev/fuse: No such device or address Before loading the fuse kernel module, create the device node manually: mknod -m 666 /dev/fuse c 10 229 " Monter le répertoire distant ; # sshfs utilisateur@PCdistant:. /Point/de/MontageLocal Modes d'emploi sshfs : $ sshfs -h fuse : voir /usr/share/doc/sshfs-fuse-1.8/README On peut créer un fichier /etc/fuse.conf et y mettre les options à utiliser tout le temps Inutile de redémarrer le service fuse : le fichier /etc/fuse.conf est apparemment lu lorsque la commande sshfs est lancée. Utilisation ----------- Créer un répertoire pour le montage : # mkdir /point/de/montage Donner les droits à l'utilisateur # chown utilisateur /point/de/montage Monter le répertoire distant $ sshfs utilisateur@MachineDistante:/repertoire/à/monter /point/de/montage # sshfs utilisateur@MachineDistante:. /mnt/disk Si message "error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory" : - localiser libfuse.so.2 : se trouve probablement dans /usr/local/lib => éditer /etc/ld.so.conf et rajouter : /usr/local/lib - lancer ldconfig pour mettre à jour la liste des répertoires contenant les libs. Problèmes --------- 1 -"fuse: failed to open /dev/fuse: Permission denied" Solutions : - ajouter (sudo userdrake par exemple) au groupe fuse les utilisateurs autorisés à utiliser sshfs. Puis se reloguer pour que la modification soit prise en compte : relancer fuse (service fuse restart) ne suffit pas ! Pour savoir dans quels groupes se trouve l'utilisateur courant : $ id - peut aussi provenir du module fuse non installé : # lsmod |grep fuse Dans ce cas, créer le "device node à la main (cf. le wiki de fuse : http://fuse.sourceforge.net/wiki/index.php/SshfsFaq # mknod -m 666 /dev/fuse c 10 229 2 - "fusermount: user has no write access to mountpoint /mnt/disk" => monter à un endroit accessible en rwx par l'utilisateur. 3 - Répertoires montés invisibles (fantômes) Quand sshfs est exécuté en root, le point de montage n'est pas visible d'un utilisateur ordinaire à partir de konqueror alors qu'il est existe toujours, qu'il est bien monté et utilisable à partir de la ligne de commande (ls par exemple) !!! Idem si on essaie de voir un répertoire monté par un utilisateur ordinaire à partir de Windows (via samba) => Solution $ sshfs -o allow_other PC-distant:. ~/mnt/disk fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf Donc -o allow_other ne suffit pas. Créer /etc/fuse.conf comme indiqué par le message d'erreur # echo user_allow_other > /etc/fuse.conf $ sshfs -o allow_other PC-distant:. ~/mnt/disk Plus d'erreur et le répertoire est vu dans Windows via samba. Inutile de redémarrer le service fuse : le fichier /etc/fuse.conf est apparemment lu lorsque la commande sshfs est lancée. Voir aussi le commentaire sur http://fuse.sourceforge.net/wiki/index.php/SshfsFaq au paragraphe "Mounting as root" : "it's not possible to use an sshfs mount as a "real" filesystem shared between multiple users." sshfs est une commande faite pour les utilisateurs. Malheureusement : sshfs_2008 ---------- Actuellement, sshfs est installé d'office, sinon : # urpmi sshfs (installe fuse aussi) # service fuse status (pour vérifier que le service est lancé) Vérifier que les utilisateurs qui doivent utiliser fuse sont dans le groupe fuse (par défaut, ça l'est) : $ cat /etc/group | grep fuse sinon les ajouter par : # usermod -G fuse user1 ou en éditant /etc/group ou encore par userdrake L'utilisateur crée un point de montage dans son home (de façon à ce que de répertoire soit rwx) : $ mkdir -p point/de/montage (-p pour créer d'un ccoup, si besoin est, l'ensemble des répertoires) $ sshfs PC_distant:répertoire/à/monter point/de/montage Pour démonter le répertoire : $ fusermount -u point/de/montage Pour un montage automatique pas fstab ------------------------------------- Exemple d'après http://fuse.sourceforge.net/wiki/index.php/SshfsFaq : sshfs#guest@guest.login.com:data /mnt/guest fuse uid=1003,gid=100,umask=0,allow_other 0 0 Utilisation de ssh-agent ======================== ssh-agent est un daemon dont le seul but est de garder en mémoire (de façon sécurisée) la "passphrase" de façon à ce qu'il ne soit pas nécessaire de la taper à chaque utilisation de ssh. La commande suivante crée la variable SSH_AUTH_SOCK qui contient le chemin d'un socket que ssh, scp (et autres commandes) vont utiliser pour dialoguer avec ssh-agent : $ eval `ssh-agent` Communiquer la clé privée et la phrase de passe à ssh-agent au moyen de ssh-add : $ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/user/.ssh/id_rsa: La clé privée est ainsi décryptée et stockée dans le cache de ssh-agent, prête à être utilisée On peut maintenant utiliser ssh et scp sans avoir à entrer le mot de passe. keychain ========= Récupérer la dernière version sur http://www.gentoo.org/proj/en/keychain.xml Permet d'utiliser un seul processus ssh-agent par systeme, et non par session (login). Particulièrement intéressant si on veut utiliser ssh et scp dans un cron. Keychain supprime les processus ssh-agent éventuellement en surnombre. Il mémorise les variables SSH_AUTH_SOCK et SSH_AGENT_PID dans ~/.keychain/nom_machine.sh A partir d'une autre session, récupération de ces variables : source ~/.keychain/nom_machine-sh Pour automatiser, copier les lignes suivantes dans ~/.bash_profile # Keychain lance ssh-agent et stocke les variables SSH_AUTH_SOCK et SSH_AGENT_PID # dans ~/.keychain/nom_machine-sh pour pouvoir les récupérer dans d'autres sessions # cf. http://www-106.ibm.com/developerworks/linux/library/l-keyc2/ /usr/bin/keychain ~/.ssh/id_rsa source ~/.keychain/nom_machine-sh Tunnel SSH ---------- Soit trois machines : A locale B intermédiaire par exemple une machine autorisée à se connecter sur C C distante par exemple un firewall tunnel crypté A -----> B -----> C ssh Sur la machine locale : ssh -L port_local_quelqconque:C:port_C nom_login@B C et B n° IP ou nom de machine port_C est le port de la machine distante C auquel on veut accéder à partir de A port_local_quelqconque : un port libre sur A vers lequel sera redirigé le port_C via le port ssh de B Exemple : ssh -L 4091:C:443 nom_login@B # 443 = port https ou ssh -L 4091:C:443 nom_login@B sleep 180 ou encore passer en tâche de fond (, puis bg Le serveur web du firewall est accessible par : https://localhost:4091 VPN === # urpmi vpnc créer un tunnel : http://www.techonia.com/create-tunnel-interface-linux Chargement du module tun ------------------------ # modprobe tun Vérification : lsmod |grep tun tun 14226 0 urpmi, mises à jour de plusieurs machines en parallèle ====================================================== Clusterssh ---------- urpmi clusterssh (dans cooker-contrib ou MDV 2007) Permet des connexions multiples simultannées sur plusieurs machines Cf : http://clusterssh.sourceforge.net/index.php/ClusterSSH:About man cssh urpmi_parallel -------------- http://linux-wizard.net/howto.php?section=1&key=urpmi_parallel ***** X ***** Configuration de X.org : http://casteyde.christian.free.fr/online/install_linux/x9482.html Règler les problèmes avec X Window : http://www.lea-linux.org/cached/index/R%C3%A8gler_les_probl%C3%A8mes_d'X_Window.html Configuration d?une station X-Window avec xdm : www.blaess.fr/christophe/publications/ articles/article_LMF_21b.pdf Configuration X (écran/carte graphique) --------------------------------------- XFdrake ou drakx11 fonctionnent aussi bien en mode graphique qu'en mode texte (pas besoin que X soit lancé) Login graphique (login manager) ============================== A partir de la ligne de commande, pour lancer une fenêtre de login graphique (et choisir entre les différentes interfaces, kde, icewm, etc): gdm kdm mdkkdm ... (en cas de "command not found", penser à installer ces utilitaires !) Changer de login manager ------------------------ L'interface de kdm est la plus fonctionnelle. Si elle n'est pas installée par défaut, installer kdebase-kdm, puis mcc > System > Choose the display manager Fichiers de configuration ------------------------- cf répertoires /etc/X11/xdm/ Changer de login manager ------------------------ # mcc System > Choose the display manager .... Configurer le login manager --------------------------- K > System > Configuration > Configure your Desktop > System > Login Manager NB : K > System > Configuration > Configure your Desktop, c'est le "KDE Control Center" Configurer GDM à partir de 2008.0 --------------------------------- Avant MDV 2008.0, le fichier de configuration de gdm est : /etc/X11/gdm/gdm.conf ou /etc/X11/gdm/custom.conf suivant les versions A partir de MDV 2008.0, ça se complique : - les valeurs par défaut sont dans : /usr/share/gdm/defaults.conf - le fichier gdm utilisé et à personnaliser est : /etc/X11/gdm/custom.conf Par contre ce fichier est vide de toute configuration : il ne contient que la documentation sur gdm.conf !!! Il y a aussi un fichier /etc/X11/gdm/gdm.conf pratiquement vide => - Sauvegarder /etc/X11/gdm/custom.conf dans /etc/X11/gdm/custom.conf.original (au cas où on en aurait encore besoin, sans doute inutile) - Enregistrer /usr/share/gdm/defaults.conf dans /etc/X11/gdm/custom.conf - Pour autoriser les connexions par X -query, chercher [xdmcp] et remplacer Enable=false par Enable=true cp /etc/X11/gdm/custom.conf /etc/X11/gdm/custom.conf.original cp -f /usr/share/gdm/defaults.conf /etc/X11/gdm/custom.conf vi /etc/X11/gdm/custom.conf Autologin et lancer automatiquement l'environnement graphique ou texte ====================================================================== Pour changer (supprimer) ces automatismes : # mcc Boot > Enable autologin and select the user to automatically log in Dans la fenêtre qui s'ouvre cocher/décocher les comportements désirés Autre solution -------------- Dans /etc/inittab, changer : id:3:initdefault: en id:5:initdefault: (sur Mandrake, Mandriva et Mageia en effet : 3 - Full multiuser mode 5 - X11) Autre solution : supprimer le démarrage automatique en mode graphique ---------------------------------------------------- Editer /etc/X11/xdm/Xservers Mettre en commentaire (#) la ligne : :0 local /bin/nice -n -10 /usr/X11R6/bin/X -deferglyphs 16 Sessions X multiples ==================== Pour obtenir plusieurs sessions X : Sous la session X de départ (display 0) Fn est une des touches de fonction F1 à F6 pour accéder à la console texte à utiliser Taper le login de l'utilisateur désiré Taper le mot de passe Taper : startx -- :n n étant le n° de console graphique virtuelle (0 est le n° de la première console graphhique crée par le système) (NB : attention, espace indispensable entre -- et :n) Pour passer d'une console à une autre : pour la première console graphique pour la 2°, etc. (F7 àF11 utilisables) messages système cf. http://www.mandrakeuser.org/docs/xwin/xnet.html Démarrer une interface graphique particulière : startx /etc/X11/xdm/Xsession KDE -- :n startx /etc/X11/xdm/Xsession Gnome -- :n startx /etc/X11/xdm/Xsession IceWM -- :n startx /etc/X11/xdm/Xsession WindowMaker -- :n startx /etc/X11/xdm/Xsession Enlightenment -- :n startx /etc/X11/xdm/Xsession BlackBox -- :n startx /etc/X11/xdm/Xsession Sawfish -- :n startx /etc/X11/xdm/Xsession XFce -- :n Mode texte/mode graphique ------------------------- # init 3 => texte # init 5 => graphique Au boot avec Grub : "e" pour éditer la ligne de commande Pour booter en init 3, il suffit donc d'ajouter un "3" à la liste des options sur la ligne qui appelle le noyau (kernel=..... 3 ), de valider les modifs (Entrée) et d'appuyer sur "b" pour poursuivre le boot. Cette manip n'affecte que le boot présent et donc au prochain passage par grub, tout se passe par défaut (init 5) Redirections ============ http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html http://www.cpqlinux.com/redirect.html 3 descripteurs de fichier : stdin, stdout, stderr avec comme numéros stdout : 1 stderr : 2 Rediriger stdout dans un fichier -------------------------------- commande > fichier ls > ls.out ls 1> ls.out Ajouter stdout dans un fichier ------------------------------ commande >> fichier Rediriger sterr dans un fichier -------------------------------- commande 2> fichier $ updatedb 2> ErrUpdate Nb : pas d'espace entre 2 et > Rediriger stdout et stderr -------------------------- commande 1>out.txt 2>err.txt Envoyer stdout dans stderr -------------------------- commande 1>&2 Envoyer stderr dans stdout -------------------------- commande 2>&1 Récupérer les messages d'erreur ------------------------------- commande > fichier 2>&1 startx -- :3 > erreur 2>&1 Le fichier "erreur" contient tous les messages provenant du démarrage du serveur X (((./cmd | tee stdout.txt) 3>&1 1>&2 2>&3 |tee stderr.txt) 3>&1 1>&2 2>&3) 1>out.txt 2>err.txt XF86Config ========== Localisation : /etc/X11/XF86Config-4 (ou /etc/X11/XF86Config) Souris ------ Exemples : Section "InputDevice" Identifier "IntelliMouse" Driver "mouse" Option "Protocol" "ExplorerPS/2" Option "Device" "/dev/psaux" Option "ZAxisMapping" "6 7" EndSection Section "InputDevice" Identifier "LogitechSerial" Driver "mouse" Option "Protocol" "MouseMan" Option "Device" "/dev/ttyS0" EndSection Pour que la souris série Logitech fonctionne, il faut renseigner la section : Section "ServerLayout" Identifier "layout1" InputDevice "LogitechSerial" "CorePointer" Screen "screen1" EndSection L'option "CorePointer" indique quelle souris est le périphérique de pointage principal Pour indiquer plus d'un pointeur utiliser l'option "SendCoreEvents". Changer de clavier (français, anglais, etc) ------------------------------------------- Section "InputDevice" Option "XkbLayout" "fr" Clavier us : Option "XkbLayout" "us" Ecran, résolution écran ----------------------- Sous KDE : kcmshell display ou click droit sur le bureau, "Configure Desktop", "Display" et choisir dans l'onglet "Size & Orientation", liste déroulante "Screen size" la résolution désirée. Si elle n'est pas dans la liste, la rajouter dans /etc/X11/XF86Config : Section "Screen" Identifier "Default Screen" Device "device1" Monitor "monitor1" DefaultDepth 24 Subsection "Display" Depth 24 Modes "1280x1024" EndSubsection Remarque : sur Debian on trouve : Modes "1280x1024" remplacé sur MDV par : Virtual 1280 1024 Attention, noter "DefaultDepth 24" qui concorde avec "Depth 24" Avec un "Depth 16 par exemple, ce serait le premier Display déclaré avec un Depth 16 qui serait utilisé par défaut. Intéressant : c'est cette résolution par défaut qui est utilisée pour gdm, kdm, etc. Modeline -------- Si nécessaire, peut être calculé par gtf : $ gtf 1440 900 75 -x # 1440x900 @ 75.00 Hz (GTF) hsync: 70.50 kHz; pclk: 136.49 MHz Modeline "1440x900_75.00" 136.49 1440 1536 1688 1936 900 901 904 940 -HSync +Vsync Prise de contrôle à distance, visualisation d'écrans à distance =============================================================== Voir : VNC, thigthVNC http://www.tightvnc.com NX http://www.nomachine.com/ x2go http://www.x2go.org/index.php?id=4 neatx http://code.google.com/p/neatx/ VNC --- Pour l'installer sous Windows : http://www.tightvnc.com/download.html Pour installer VNCviewer sous MDV : urpmi tightvnc (installe vnvviewer uniquement) urpmi tightvnc-server (installe le serveur si nécessaire) vncviewer pour se connecter au serveur vncserver le serveur, à démarrer sur la machine sur laquelle on veut se connecter. Sur le serveur, ouvrir les ports - 5900/TCP pour autoriser la connexion en utilisant vncviewer - 5800/TCP pour autoriser la connexion par http Connexion par vncviewer : il semble qu'il faille aussi ouvrir sur le client (PC sur lequel est lancé vncviewer) le port 5900 en TCP ; avec plusieurs firewalls, il suffit d'autoriser le programme vncviewer à se connecter. Connexion par http (rien à autoriser sur le client) : http://:5800 (utiliser firefox. Avec konqueror l'applet VNC ne se charge pas : problème java non activé sous konqueror? A voir) SparkAngels ----------- http://www.spark-angels.com/web/home.html A voir Partage de ressources (répertoires) =================================== en plus de ssh et dérivés (shfs ...) : nfs hamachi (windows et linux) Terminaux X =========== http://www.tldp.org/HOWTO/XDMCP-HOWTO/ 3 possibilités °°°°°°°°°°°°°° 1 - Client unix -> serveur unix : X -query .... --------------------------------------------- Guide to X-terminal setup : http://www.freeos.com/articles/2531/ Le plus simple à mettre en oeuvre : tout ce qui est nécessaire est déjà présent et installé avec la plupart des distributions linux. A éviter à travers un réseau non sécurisé. 2 - Client unix ou windows -> serveur unix via SSH : NX ---------------------------------------------------- Idéal à travers un réseau non sécurisé. Nécessite un PC assez puissant (CPU 200 Mhz, 64 Mo RAM insuffisant ; 700 Mz, 96 Mo RAM parfait), avec un système d'exploitation installé sur le client (unix, windows ou même Mac OS X) 3 - Client (léger) unix -> serveur unix : LTSP (Linux Terminal Server Project) ------------------------------------------------------------------------------ Idéal pour transformer de vieux PCs (P200 ou moins), sans disque dur, en terminaux X performants http://bulma.net/body.phtml?nIdNoticia=1776 http://www.ltsp.org/ X -query ... °°°°°°°°°°°° Soit S le serveur (machine sur laquelle on veut se connecter) et T le terminal : Sur S ----- - Firewall : ouvrir le port 177 en UDP Relancer le firewall - Vérifier quel est le xdm actif : # ps aux | grep dm Si c'est gdm : gdmsetup (ou gdmconfig, c'est un alias) : autoriser XDMCP On peut également modifier directement /etc/X11/gdm/gdm.conf (nouvellement /etc/X11/gdm/custom.conf) à la main : chercher [xdmcp] et changer "Enable=false" en "Enable=true" Si c'est kdm : éditer /etc/kde/kdm/kdmrc, chercher[Xdmcp] et remplacer Enable=false par Enable=true Pour un autre "display manager", voir la doc http://www.tldp.org/HOWTO/XDMCP-HOWTO/ Relancer le display manager pour que la modification soit prise en compte : # service dm restart Sur T ----- - Firewall : ouvrir 1 ou plusieurs ports tcp pour X : 6000, 6001, etc. (cf. www.iana.org/assignments/port-numbers) - Faire afficher le "Login manager" par la commande : X -query nom_ou_IP_du_serveur_S :1 NB : :1 correspond au port 6001, :2 au port 6002 etc. - Pour que la connexion se fasse automatiquement, mettre cette même commande dans /etc/inittab : x:5:respawn:/usr/X11R6/bin/X -query nom_ou_IP_du_serveur_S Problème -------- Si on n'obtient pas la mire de login (l'écran reste bleu) c'est sans doute que le port 177 est resté fermé. Vérifier avec nmap à partir de T : [T]# nmap -s U -p 177 le_serveur PORT STATE SERVICE 177/udp closed xdmcp => vérifier la configuration du firewall du serveur => le problème peut aussi provenir du display manager : identifier celui qui fonctionne sur S : [S]$ ps aux | grep dm root 2855 0.0 0.0 18628 932 ? S 18:23 0:00 /usr/bin/kdm -n odaemon Xdmcp est sans doute à false, le changer (dans /etc/kde/kdm/kdmrc pour kdm) : [Xdmcp] Enable=true Puis relancer le Display Manager : # service dm restart On doit alors avoir à partir de T : # nmap -s U -p 177 le-serveur PORT STATE SERVICE 177/udp open|filtered xdmcp et la connexion devrait fonctionner. Terminal avec cygwin sous windows --------------------------------- - Lancer cygwin - Taper comme ci-dessus : X -query nom_ou_IP_du_serveur_S (il n'est pas nécessaire d'avoir au préalable lancé X) ou en cas de message d'erreur indiquant que :0 est déjà utilisé : X -query nom_ou_IP_du_serveur_S :1 (1 ou un n° supérieur, voir problème ci-dessous) Une fenêtre X s'ouvre avec l'invite gdm Si la fenêtre X reste grise, penser au firewall : le désactiver et voir si ça résoud le problème. Si c'est le cas le remettre en autorisant en entrée le port tcp 6000 (et éventuellement au dessus). Si ça ne fonctionne toujours pas, voir plus loin "Problème Kerio/cygwin". Pour fermer la fenêtre, comme d'habitude carré en haut à gauche de la fenêtre cygwin. Pour automatiser ---------------- Editer Cygwin\usr\X11R6\bin\startxwin.bat Vers la fin du fichier, trouver la ligne (ou équivalent) : run xwin -multiwindow -clipboard -silent-dup-error La remplacer par : run xwin -clipboard -silent-dup-error -query nom_ou_IP_du_serveur_S (supprimer -multiwindow qui génère une erreur) La ou les commandes qui suivent sont inutiles (chez moi ouverture de console X par "run xterm -e /usr/bin/bash -l") : elles ne servent plus à rien, on peut les supprimer. Enregistrer le batch sous un nom quelconque (gdm_nom_ou_IP_du_serveur_S.bat par exemple). Le lancer. Pour en simplifier l'utilisation, le mettre en icône sur le bureau et (ou) dans la liste des programmes et (ou) dans la barre de tâche. Problème (ou Bug ?) "fatal error" : ----------------------------------- Chaque fois que Cygwin ouvre une fenêtre X, il crée un fichier Xn avec l'attribut système (ou n est le n° du display, X0 pour :0) dans le répertoire Cygwin/tmp/.X11-unix. En cas de plantage de la fenêtre X le fichier Xn correspondant n'est pas supprimé : il empêche l'ouverture du display :n. Dans le cas d'un redémarrage de Cygwin avec X0 non effacé, pas de problème pour lancer startx ou startxwin.bat. Mais X -query nom_ou_IP_du_serveur_S génère le message d'erreur : "A fatal errot has occured and Cygwin/X will now exit. Please open /tmp/Xwin.log for more information." Solution : voir dans Cygwin/tmp/.X11-unix les n° de display utilisés, puis taper : X -query nom_ou_IP_du_serveur_S :n ou n est un N° de display libre. Problème Kerio/cygwin --------------------- La connexion est impossible avec une version 4.0.? de Kerio : "X -query nom_ou_IP_du_serveur_S" ouvre une fenêtre X qui reste grise. Solution : installer une version récente de Kerio ; pas de problème avec la version actuelle (4.2.1). Terminaux X, nx, freenx °°°°°°°°°°°°°°°°°°°°°°° http://www.nomachine.com/ Serveur nx (freenx) ------------------- - Sur le serveur, installer freenx (qui dépend de plusieurs autres programmes et les installe aussi). L'installation crée l'utilisateur système "nx" A la fin le message /usr/share/doc/freenx/README.urpmi s'affiche : Pas de man, mais : # --help nombreuses commandes pour l'administration : intéressant, à lire absolument ! Info sur le paquetage dans /usr/share/doc/freenx-0.0.4.4/README.urpmi. NB : pour connaître les dépendances de freenx : $ rpm -q --requires freenx - Ajouter les utilisateurs qui pourront se connecter à ce serveur (utile ?) : # nxserver --adduser utilisateur # nxserver --passwd utilisateur et entrer le mot de passe de l'utilisateur - Démarrer (redémarrer) le serveur : # nxserver --restart Fichiers de configuration ------------------------- /etc/nxserver/ /etc/nxserver/node.conf (configuration du serveur) Client nx --------- - Télécharger et installer le rpm disponible sur http://www.nomachine.com (NX client for Linux, free) - Copier la clé privée /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key qui est sur le serveur, dans un répertoire quelconque du client (répertoire /usr/NX/share/ ou répertoire /usr/NX/share/keys qui ont été créés lors de l'installation du client par exemple) avec un nom quelconque (du genre "NomDuServeur_client.id_dsa.key" par exemple) . S'il existe déjà une clé avec ce nom, l'écraser. - Démarrer le client nx nomachine : $ nxclient (ou nxclient --wizard) et répondre aux questions pour se connecter. En particulier, dans l'onglet "General", cliquer sur le bouton "Key..." et importer la clé que l'on vient de copier. Autre solution (aussi simple, sinon plus) : - se logger par ssh en root sur le serveur - afficher la clé : cat /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key - la copier/coller dans la fenêtre "DSA Key" et sauvegarder (bouton [Save]) Explication (http://www.marco-plaut.fr/article.php3?id_article=2) : Le client se connecte d'abord au serveur en tant qu'utilisateur "nx" avec cette clé (/usr/NX/share/client.id_dsa.key ou le nom qu'on lui a donné, dans le cas de freenx : /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key). Puis l'utilisateur s'identifie ensuite sur le serveur avec le nom d'utilisateur et le mot de passe déclaré au niveau du serveur. On peut créer sur le client plusieurs fichiers de configuration pour se connecter à différents serveurs et avoir autant d'icônes correspondantes sur le bureau. Les fichiers de configuration sont dans : ~/.nx/config/.nxs Installation des versions 2 du client et du serveur --------------------------------------------------- Nettoyage de versions précédentes (après les avoir désinstallées) # rm -rf /usr/NX $ rm -rf ~/.nx (pour supprimer les configurations utilisateur) Coté serveur ++++++++++++ Télécharger (les rpm) : - nxclient - nxnode - nxserver et les installer dans cet ordre. Nb : il est préférable d'installer freenx à la place de nxserver. 1 - contrairement à nxserver, freenx n'est pas limité à 2 connexions 2 - nxserver ne fonctionne pas sous MDV 2007 ( freenx-0.5.0-3.rev281.1mdv2007.0 fonctionne parfaitement avec les versions actuelles nxclient-2.1.0-9.i386.rpm nxnode-2.1.0-12.i386.rpm voir plus loin. Vérifier que ces installation se sont bien passées : $ less /usr/NX/var/log/install Consulter http://www.nomachine.com/documentation/admin-guide.php Messages à l'installation de nxnode : NX> 700 Install log is '/usr/NX/var/log/install'. NX> 700 Creating configuration in /usr/NX/etc/node.cfg. NX> 700 Inspecting local CUPS environment. NX> 700 Generating CUPS entries in: /usr/NX/etc/node.cfg. NX> 700 Installation of version: 2.0.0-100 completed. Messages à l'installation de nxserver : NX> 700 Install log is: /usr/NX/var/log/install. NX> 700 Creating configuration file: /usr/NX/etc/server.cfg. NX> 723 Cannot start NX statistics: NX> 709 NX statistics are disabled for this server. NX> 700 Showing file '/usr/NX/share/documents/server/install-notices': => voir la notice d'installation dans /usr/NX/share/documents/server/install-notices Démarrage/arrêt : # /etc/rc.d/init.d/nxserver start|stop|restart (status absent) ou : # nxserver --start|--stop|--restart|--status (voir toutes les possibilités avec nxserver --help) ou : # service nxserver start|stop|restart|status nxserver/freenx et MDV 2007 ++++++++++++++++++++++++++ Impossible de se connecter sur une MDV 2007 sur laquelle est installé nxserver-2.1.0-13.i386.rpm. Message d'erreur : Info: Established X server connection. Info: Using shared memory parameters 1/2048K. Error: Connection with remote peer broken. Error: Please check the state of your network and retry. Session: Session terminated at 'Tue Nov 28 09:35:19 2006'. Solution : installer freenx. Coté client +++++++++++ Installer nxclient version 2 Lancer nxclient - Dans l'onglet "General" Cliquer sur Cocher "Remember my password" Cliquer sur Dans le fenêtre que s'ouvre (DSA key) effacer la clé qui s'y trouve et la remplacer par la clé privée qui se trouve sur le serveur dans le fichier /var/lib/nxserver/nxhome/.ssh/client.id_dsa.key (cf. le messageg qui termine l'installation de freenx : Your user must install the key located at: "/var/lib/nxserver/nxhome/.ssh/client.id_dsa.key to log in.") - Dans l'onglet "Advanced" Cocher "Enable SSl encryption of all traffic". Pour ajouter un utilisateur à la base de données NX : # /usr/NX/bin/nxserver --useradd La commande : # /usr/NX/bin/nxserver --usercheck donne exactement le même résultat ! Remarque : toutes les installations de nx ont la même clé privée (/usr/NX/share/keys/server.id_dsa.key) : ne semble pas très sûr ! Changer les clés. Ajouter une autre session ------------------------- $ nxclient ou $ nxclient --wizard --wizard a l'avantage de proposer de créer une icône sur le bureau. Modifier une configuration -------------------------- Une fois la session créée le bouton [Configure] n'est plus accessible lorsqu'on clique sur l'icône. Pour y accéder, lancer nxclient. Debugging --------- cf. http://www.nomachine.com/documentation/supp-request.php Fichier /etc/nxserver/node.conf : changer les valeurs par défaut des variables suivantes, et mettre : SESSION_LOG_CLEAN=0 SESSION_LOG_LEVEL=7 Voir les logs dans - /var/log/nxserver.log (vérifier que le "user" nx a le droit d'y écrire) modifier la "verbosité" dans NX_LOG_LEVEL= - grep NX /var/log/messages - ~/.nx/temp/ Problèmes - bugs : ---------------- Après installation de nxserver, dans /usr/NX/var/log/install +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NX> 200 Connected to address: 127.0.0.1 on port: 22 NX> 202 Authenticating user: nx NX> 208 Using auth method: publickey NX> 204 Authentication failed.. => éditer /etc/ssh/sshd_config S'il y a un ligne "AllowUsers", vérifier que nx y soit déclaré : AllowUsers toto bibi nx NB : nx@127.0.0.1 est suffisant pour l'installation, mais bloque la connexion (message "Server not installed or NX access disabled", voir plus loin. NX> 202 Authenticating user: nx NX> 208 Using auth method: publickey NX> 204 Authentication failed. +++++++++++++++++++++++++++++ Solutions possibles : - Vérifier que l'utilisateur nx existe sur le serveur (userdrake) - Vérifier sur le serveur que nxserver tourne (# nxserver --status). - Sur le client (nxclient de nomachine) vérifier que la clé publique est la bonne : => lancer nxclient Configure > General dans l'encadré "Server" : Key > Import charger la bonne clé et la sauvegarder dans la configuration Session 'serveur' failed due to connection timeout ++++++++++++++++++++++++++++++++++++++++++++++++++ Configure > Advanced > cocher "Enable SSL encryption of all traffic" Pas de connexion possible sur nxserver sous MDV 2005 et message d'erreur : ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $ nxproxy nxproxy: symbol lookup error: nxproxy: undefined symbol: NXTransParseCommandLine (ou autre symbole non défini) Est obtenu sous MDV2005 alors que nxserver fonctionne sans problème sous MDV 2006.0 Cause probable : une erreur dans le rpm freenx. Alors que le paquet semble le même dans MDV 2005 et 2006 (freenx-0.4.4-1mdk) les dependances installées sont différentes : MDV2005 MDV2006 nxproxy-1.5.0-2mdk nxproxy-1.5.0-3mdk nxpagent-1.5.0-2mdk nxproxy-1.5.0-3mdk Server not installed or NX access disabled ++++++++++++++++++++++++++++++++++++++++++ Soit (par exemple) 241.89.78.13 l'adresse IP du client, sur le serveur dans "/var/log/messages" : sshd[32108]: User nx from 241.89.78.13 not allowed because not listed in AllowUsers sshd[32108]: Failed none for invalid user nx from 241.89.78.13 port 41170 ssh2 Solution : Sur le serveur, éditer le fichier /etc/ssh/sshd_config - à AllowUsers, rajouter nx (AllowUsers toto nx) - décommenter "#PubkeyAuthentication yes" (il semble qu'en fait la valeur par défaut soit "no") Server not installed or NX access disabled ++++++++++++++++++++++++++++++++++++++++++ dans "/var/log/messages" : sshd[2774]: reverse mapping checking getaddrinfo ... failed - POSSIBLE BREAK-IN ATTEMPT! Le client qui veut accéder au serveur nx n'est pas déclaré dans un DNS. Error: nxagent failed to start with: Unrecognized option: 1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NXCLIENT - Version 2.0.0-98 donne cette erreur avec freenx (NXSERVER - Version 1.4.0-44) Une solution peut-être ici : http://mail.kde.org/pipermail/freenx-knx/2006-September/004074.html Autres solutions : - réinstaller nxclient-1.5.0-113.i386.rpm - utiliser les versions "free" nxserver, nxnode et nxclient disponibles sur le site http://www.nomachine.com/download-package.php?Prod_Id=34 - freenx : +++++++++++ Tcl_Init failed: Can't find a usable init.tcl in the following directories: /usr/lib/tcl8.4 /usr/lib/tcl8.4 /lib/tcl8.4 /usr/library /library /tcl8.4.13 /library /usr/lib/tcl8.4 => urpmi tcl et réinstaller freenx. Mais ne semble pas fonctionner avec les versions 2 de NX : à éviter Utiliser plutôt "NX free editon for Linux" sur le site NX Nomachine. LTSP ==== ++++++++++++++ Documentations ++++++++++++++ LTSP : htp://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1-en.html wiki : htp://wiki.ltsp.org/twiki/bin/view/Ltsp/WebHome Trouble Shooting LTSP : http://wiki.ltsp.org/twiki/bin/view/Ltsp/TroubleShooting http://gentoo-wiki.com/LTSP_Configuration Configuration du firewall : http://www.troubleshooters.com/lpm/200305/200305.htm http://sourceforge.net/mailarchive/forum.php?thread_id=8972145&forum_id=2270 32 ou 48 Mo de RAM semblent suffisants (ne fonctionne pas avec 16 Mo de RAM) . ++++++++ Firewall ++++++++ A voir, cf. doc ci-dessus. ++++++++++++++++++++++++++++ A installer sur le serveur ++++++++++++++++++++++++++++ ltsp-utils ++++++++++ Ce package installe : /usr/bin/ltspinfo /usr/sbin/ltspadmin /usr/sbin/ltspcfg ltspadmin --------- LTSP Administration Utility Install/Update LTSP Packages Configure the installer options Configure LTSP Comme l'indique le menu ci-dessus ltspadmin permet : - de télécharger le package LTSP (plusieurs centaines de Mo) - de choisir un (ou changer le) serveur à partir duquel on veut télécharger le package LTSP - de lancer ltspcfg ltspcfg ------- Permet - d'afficher l'état (status) de tous les services nécessaires au fonctionnement de LTSP - de les configurer Conseil : le lancer chaque fois que l'on veut vérifier l'état d'avancement de la configuration de LTSP. ltspinfo -------- cf. (par exemple) : http://osl.birzeit.edu:8080/wiki2/index.php/Ltspinfo http://www.k12ltsp.org/phpwiki/index.php/Technical:RemoteClientShutdown Permet de contrôler le client à partir du serveur. Contrairement aux 2 outils précédents on peut dans un premier temps l'ignorer : il est sans intérêt pour l'installation et la configuration de LTSP. dhcpd +++++ Installer dhcp-server # urpmi dhcp-server Ce service est nécessaire pour fournir une adresse IP aux clients et lui indiquer à partir de quel serveur récupérer tout ce qui est nécessaire (kernel, Xorg ...) à son fonctionnement. NB : dhcpd et ltsp sont indépendants : ils peuvent parfaitement, si on le désire, être installés sur des serveurs différents. tftpd +++++ Installer tftp-server. # urpmi tftp-server tftpd (simple serveur ftp) est indispensable : il permet au client de télécharger à partir du serveur le kernel fourni par LTSP. NFS +++ Généralement installé par défaut et démarré d'office dans la plupart des distributions (dont MDV). Exception : MDV 2007 / x86-64 ! # urpmi nfs-server A configurer, voir ci-dessous. XDMCP +++++ Généralement aussi installé par défaut et démarré dans la plupart des distributions (dont MDV). A configurer, voir ci-dessous. +++++++++++++++++++++++++++ A installer sur les clients +++++++++++++++++++++++++++ Consulter "Chapter 3. Setting up the workstation" sur http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1-en.html (ou équivalent dans la doc française) "Etherboot" permet de démarrer le client et d'établir la connexion avec le serveur dhcp. Le plus simple pour les tests est de mettre une image d'Etherboot sur une disquette ou un CD à partir duquel on démarrera le client. La doc conseille le site www.Rom-O-Matic.net où l'on peut compiler quasi-automatiquement le driver Etherboot correspondant à la carte réseau du client utilisé. Le problème est qu'il est souvent difficile de déterminer le modèle de carte réseau. Je conseille plutôt de récupérer sur http://etherboot.anadex.de/ une image contenant tous les drivers connus et de créer une disquette de boot "universelle" avec la commande : d if=eb_on_hd.ima of=/dev/fd0 (sous DOS créer la disquette avec rawrite, sous windows avec rawritewin). Elle détecte automatiquement la carte réseau installée sur le client et permet de le démarrer sans plus se compliquer la vie. +++++++++++++++++++++++++++++ Configuration du serveur dhcp +++++++++++++++++++++++++++++ On configurera ensuite le serveur dhcp 1 - Lancer sur le serveur : # tail :tail -f /var/log/messages le serveur dhcp n'affiche en effet aucune erreur à l'écran : les messages d'erreur (ou autres) vont dans /var/log/messages. 2 - Vérifier que le serveur dhcp est démarré Pour connaître son état (démarré / arrêté) # service dhcpd status dhcpd (pid 5511) is running...# Démarrer /redémarrer : service dhcpd start | restart En cas de problème regarder ce qui s'affiche dans /var/log/messages. 3 - Afficher l'adresse MAC de la carte réseau du serveur avec : # ifconfig 4 - Démarrer un client avec la disquette etherboot. L'adresse MAC de la carte réseau apparaît dans les logs du serveur. L'utiliser pour configurer /etc/dhcpd.conf. 5 - Configurer dhcpd sur le serveur (fichier /etc/dhcpd.conf). A l'installation de dhcp-server un fichier /etc/dhcpd.conf a été automatiquement créé. LTSP de son coté crée en s'installant un fichier /etc/dhcpd.conf.sample : on peut l'oublier, il est incompréhensible et n'apporte aucune information intéressante (à mon avis en tout cas). Editer plutôt /etc/dhcpd.conf et entrer les valeurs correspondant à son réseau (le fichier est déjà rempli avec des valeurs qui sont pratiquement bonnes pour un réseau "domestique" en 192.168.0...). On laissera les valeurs par défaut pour les paramètres que je n'indique pas et on modifiera si nécessaire : subnet-mask broadcast-address routeurs : il s'agit en fait du gateway ou passerelle vers l'extérieur domain-name-servers domain-name option root-path : attention ! indiquer ici l'adresse du serveur et le path où est installé LTSP, par exemple : option root-path "192.168.0.10:/opt/ltsp/i386"; Faire très attention pour la suite : voici par exemple ce qu'on peut mettre pour un rèseau "domestique" en 192.168.0... avec un serveur d'adresse 192.168.0.10 et un client "toto" dont on veut fixer l'adresse à 192.168.0.20 : subnet 192.168.0.0 netmask 255.255.255.0 { next-server 192.168.0.10; # adresse du serveur sur lequel se trouve LTSP # cette ligne est _indispensable_ pour Etherboot (bug probable) # mais par contre inutile pour d'autres clients dhcp use-host-decl-names on; option log-servers 192.168.0.10; # adresse du serveur de log host toto { # paramètres pour le client "toto" next-server 192.168.0.10 # _indispensable_ pour LTSP : c'est l'adresse # du serveur où le client trouvera LTSP hardware ethernet 00:01:02:cf:1d:f2; # adresse MAC de la carte réseau du client fixed-address 192.168.0.20; # on fixe ici l'adresse IP du client filename "/tftpboot/lts/vmlinuz-2.6.9-ltsp-3"; } Attention : dans "filename" indiquer l'adresse du kernel que le client devra récupérer sur le serveur "next_serveur" déclaré 3 lignes avant ATTENTION ! l'adresse filename dépend aussi du paramètre "server_args" du fichier de configuration de tftp (/etc/xinetd.d/tftp), voir ci-dessous. On déclarera bien évidemment autant de "host" (clients) que nécessaire. On pourra aussi faire de l'allocation dynamique (je n'ai pas encore testé). +++++++++++++++++++++++++++++ Configuration du serveur tftp +++++++++++++++++++++++++++++ Editer /etc/xinetd.d/tftp LTSP installe tftpboot dans / alors que tftp s'attend à le trouver dans /var/lib/tftpboot (cf paramètre de démarrage de tftpd "server_args"). Le plus simple est de mettre en commentaire la ligne : # server_args = -s /var/lib/tftpboot (si on laisse un argument à passer au serveur tftp, modifier en conséquence la ligne "filename" dans /etc/dhcpd.conf). Voilà le plus dur est fait : la connexion client-serveur devrait fonctionner. Si ce n'est pas le cas, voir : - /var/log/messages souvent très explicite - http://wiki.ltsp.org/twiki/bin/view/Ltsp/TroubleShooting - paragraphe "Messages d'erreur" plus loin ++++++++++++++++++++ Configuration de NFS ++++++++++++++++++++ Suivre les indications de http://wiki.ltsp.org/twiki/bin/view/Ltsp/NFS#NFS_Server_not_responding Très bien expliqué. +++++ XDMCP +++++ Appelle le "display manager" du serveur pour afficher un écran de login sur le client. En général c'est GDM ou KDM (mdkkdm) qui est appelé. Pour des raisons de sécurité la connexion de clients est par défaut interdite. Pour l'autoriser : GDM : éditer /etc/X11/gdm/gdm.conf chercher [xdmcp] et changer "Enable=false" en "Enable=true" KDM : éditer /etc/kde/kdm/kdmrc chercher[Xdmcp] et remplacer Enable=false par Enable=true Pour un autre "display manager", voir la doc sur http://www.tldp.org/HOWTO/XDMCP-HOWTO/ Relancer X. ( par exemple) ++++++++++++++++++++++++++++++++++++++ Configuration de LTSP et des terminaux ++++++++++++++++++++++++++++++++++++++ - Lancer ltspcfg pour voir si tout est OK. - Lire la doc : /opt/ltsp/i386/etc/lts.conf.readme - S'en servir pour configurer /opt/ltsp/i386/etc/lts.conf Bien lire lts.conf.readme : on y trouve de nombreux paramètres pour modifier le comportement des clients. Rajouter par exemple dans lts.conf : xkbLayout = fr pour avoir un clavier français X_MODE_0 = 1024x768 pour la résolution écran, si supportée par la carte video du client. L'écran de login devrait apparaître. Si ce n'est pas le cas : # tail -f /var/log/messages et aussi # tail -f /var/log/Xorg.0.log Voir aussi : Chapter 7. Troubleshooting sur http://ltsp.org/documentation/ltsp-4.1/ltsp-4.1-en.html et peut-être aussi Chapter 6. Troubleshooting sur http://ltsp.org/documentation/ltsp-3.0.0/ltsp-3.0-4-en.html#AEN514 ou les explications sur les problèmes que l'on peut rencontrer sont plus complètes. +++++++++++++++++++++++++++++++++++ Messages d'erreur divers rencontrés +++++++++++++++++++++++++++++++++++ L'option root-path dans /etc/dhcpd.conf est indispensable, sinon : ERROR! No root-path; Check your DHCP configuration .... Kernel panic .... Dans le cas où l'adresse Mac du client n'est pas déclarée dans dhcpd.conf les messages d'erreur suivants s'affichent : Coté serveur dans /var/log/messages : Feb 10 19:00:31 dhcpd: DHCPDISCOVER from 00:0e:0c:65:59:23 via eth0: network 192.168.0/24: no free leases Coté client sur l'écran : No IP address syslogd: cannot write to remote file handle on 192.168.0.254:514 Editer /etc/sysconfig/syslog Rajouter -r dans la ligne : SYSLOGD_OPTIONS="-m 0 -a /var/spool/postfix/dev/log" : => SYSLOGD_OPTIONS="-m 0 -r -a /var/spool/postfix/dev/log" Puis redémarrer syslogd $ ps aux | grep syslogd sudo kill -HUP +++++++ A faire +++++++ - Configurer le firewall - dhcpd : tester les allocations dynamiques Installation de la version LTSP 4.2 =================================== Documentation : http://wiki.ltsp.org/twiki/pub/Ltsp/Documentation/ltspguide.pdf Téléchargement : --------------- http://wiki.ltsp.org/twiki/bin/view/Ltsp/LTSP-42#Installation_of_LTSP_4_2 Télécharger ltsp-utils-0.25-0.tgz $ tar -xvf ltsp-utils-0.25-0.tgz # ./ltspadmin Suivre les instructions. Pré-configuration ----------------- Continuer en préconfigurant ltsp avec : # ./ltspcfg Choisir C - Configure the services manually Passer en revue les 11 points et installer si nécessaire les services manquants (ltsp, nfs, etc.) Au point 11, noter l'emplacement du fichier de configuration (/opt/ltsp/i386/etc/lts.conf par exemple) Quitter ltspcfg Configuration de dhcpd ---------------------- Continuer comme ci-dessus Mandriva Terminal server ======================== Documentation : http://qa.mandriva.com/twiki/bin/view/Main/TerminalServer ++++++++++++ Installation ++++++++++++ Installer terminal-server +++++++++++++ Configuration +++++++++++++ Lancer drakTermServ Cliquer sur [First Time Wizard] et suivre les indicatios affichées. Quel répertoire ? ================= pwd Gestion des disques =================== fdisk cfdisk Exemple : fdisk /dev/hda Monter une partition, une disquette, un cdrom ============================================= Exemples : # mount -t ext3 /dev/hdc2 /mnt/disk # mount -t auto /dev/hdc2 /mnt/disk # mount -t ext2 /dev/fd0 /mnt/floppy # mount -t iso9660 /dev/hda /mnt/cdrom (hda : cas cdrom en maître sur premier contrôleur) Pour autoriser un utilisateur ou un groupe d'utilisateurs à lire/écrire sur la partition montée (par exemple sur une clé USB ou un disque externe qui ne se monte pas automatiquement) : # mount -o users,rw,uid= /dev/sdax /mnt/disk # mount -o users,rw,gid= /dev/sda /mnt/disk NB: ces commandes changent le propriétaire (user uid) ou les propriétaires (group uid) du répertoire /mnt/disk Montages automatique de système de fichiers =========================================== voir autofs Démonter une partition récalcitrante (à voir) ============================================= $ fuser -k -TERM -v -m point_de_montage ou, plus violent (SIGKILL) : $ fuser -k -v -m point_de_montage Trouver ce qui empêche de démonter la disquette (par exemple) #umount /dev/fd0 umount: /mnt/floppy: périphérique occupé # fuser -m /dev/fd0 /dev/fd0: 1692 # ps aux | grep 1692 root 1692 fam # kill -9 1692 # umount /dev/fd0 # fam Le plus pratique : # umount -fl /point/de/montage ou # umount -fl /dev/NomDuDevice Cas où le système de montage automatique d'une clé USB ne fonctionne pas ------------------------------------------------------------------------ Mettre par exemple dans fstab : /dev/sdc1 /mnt/usb auto user,noauto,rw 0 0 /dev/sdc1 device sous lequel est reconnue la clé /mnt/usb point de montage auto reconnaissance automatique du type de partition user chaque user peut monter la clé. Seul l'utilisateur qui l'a monté peut la démonter Pour que tous les utilisateurs puissent monter/démonter la clé mettre "users" On pourait mettre à la place par exemple uid=503 pour n'autoriser que l'utilisateur d'id 503 à monter/démonter la clé. Pour connaître l'id d'un utilisateur : id noauto pas de montage automatique au démarrage du système rw l'utilisateur a les droits rw (mettre rwx si des programmes sur la clé doivent pouvoir être lancés (rwx si des programmes soivent être exécutés à partir de la clé) NFS === http://www.lea-linux.org/cached/index/Reseau-partfic-nfs.html Installation ------------ Généralement installé par défaut, sinon : $ urpmq nfs no package named nfs The following packages contain nfs: clusternfs libnfsidmap0 libnfsidmap0-devel nfs-utils nfs-utils-clients nfswatch # urpmi nfs-utils Paramétrage ----------- - Sur le serveur /etc/exports exemple : # Répertoire partagé PC(autorisations) /home/dupont 192.168.0.10(rw) 192.168.0.25(ro) /etc/hosts.deny # Interdire toutes les machines qui ne sont pas autorisées explicitement dans le /etc/hosts.allow ALL: ALL /etc/hosts.allow Exemple : portmap:192.168.1.34 lockd:192.168.1.34 mountd:192.168.1.34 # rquotad:192.168.1.34 # statd:192.168.1.34 Exporter le partage (ou les modification du partage) pour eviter de redémarrer le serveur nfs # exportfs -av Démarrage/arrêt --------------- - (Re)lancer nfs # service nfs start | restart ou bien : # /etc/init.d/nfs ou encore : # mcc -> System -> Enable or disable the system services - Monter le répertoire partagé : # mount NomMachine:RépertoirePartagé /mnt/disk Pour un montage plus simple, configurer fstab et / utiliser autofs # urpmi autofs fichier de configuration : /etc/auto.misc Pour vérifier si le service est démarré --------------------------------------- # rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 760 status 100024 1 tcp 763 status 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs Configurer le firewall pour laisser passer les ports nécessaires : cf.rpcinfo - Sur le client Pour lister les partages : # showmount -e man showmount man exportfs Gestionnaires de fichiers (file manager) ======================================== konqueror midnight commander krusader PCMan http://pcmanfm.sourceforge.net/ Mémoriser la configuration de Konqueror ======================================= Menu : Window/Save View Profile "File Management" Configuration de Konqueror en web browser ========================================= Changer la page web par défaut : - Installer une page web vierge : about:blank - Afficher le menu "konqueror" (intéressant : liens sur "Home", "Network Folders", "Applications", "Storage Media") : about: ou about:konqueror - Sinon aller sur la page de son choix. Puis : Menu : Settings > Configure View Profile > Web browsing Cocher "Save URL in Profile" Cliquer sur le bouton Konqueror, barre de recherches (searchbar) ========================================= Si elle a disparu ou n'est pas visible : Sur MDV en anglais : - Vérifier que le plugin "Search Bar Plugin" est installé : Settings > Configure extensions > Extensions : Name : Search Bar Plugin - Rendre visible la "search bar" : Settings > Toolbars > Search Toolbar la migrer d'"Available actions" à "Current actions" - Redémarrer konqueror. Sur MDV en français, plugin non installé : # urpmi kdeaddons-searchbar Redémarrer KDE Lancer konqueror : la barre est là. Curieusement le plugin n'est pas listé dans "Configurer les extensions > Extensions" ! Changer de console ================== Sortir de l'environnement graphique Alt Ctrl F9 Console 1 Alt F1 Revenir à l'environnement graphique Alt Ctrl F7 Variables ========= Voir une liste de variables d'environnement (shell, etc) ------------------------------------------------------- env Voir une variable particulière ------------------------------ exemple : echo $SHELL Supprimer une variable ---------------------- unset toto (et non pas $toto !) Conversions minuscules/majsucules --------------------------------- $ a=azerty $ echo $a |tr a-z A-Z AZERTY Substitution de variables ------------------------- http://www.linuxplusvalue.be/mylpv.php?id=187 http://abs.traduc.org/abs-3.4-fr/string-manipulation.html Affectation ----------- $ TUTU="Le soleil brille" $ echo $TUTU Le soleil brille Valeur par défaut à utiliser en cas de variable inexistante ----------------------------------------------------------- NB : TITI est une variable inexistante $echo TITI $ echo ${TITI:-il pleut} il pleut $ echo ${TUTU:-il pleut} Le soleil brille $echo TITI ce qui montre que la valeur de TITI est temporaire Affectation d'une valeur en cas de variable inexistante ------------------------------------------------------- $ echo ${TITI:=coucou} coucou $ echo TITI coucou Message à renvoyer en cas de variable inexistante ------------------------------------------------- $ unset TITI $ echo ${TUTU:?Cette variable est vide} Le soleil brille $ echo ${TITI:?Cette variable est vide} bash: TITI: Cette variable est vide Message à renvoyer si la variable existe ---------------------------------------- $ echo ${TUTU:+Cette variable est initialisée} Cette variable est initialisée $ echo ${TITI:+Cette variable est initialisée} Dans un bash utiliser plutôt un code, par exemple 0 pour TRUE $ echo ${TUTU:+0} 0 Extraction d'une sous-chaîne ---------------------------- ${variable:position:longueur} $ echo $TUTU Le soleil brille $ echo ${TUTU:3:6} soleil $ echo ${TUTU:3} soleil brille La numérotation commence à 0 La longueur de la chaîne soleil est 6 caractères Extraire un/des nombre(s) ------------------------- $ a=azer ti128bb $ echo ${a//[^0-9]} #Supprime tout ce qui n'est pas un chiffre 128 $ b="azer ti128bb85ezaz032e" $ echo ${a//[^0-9]} 12885032 => Extraire plusieurs nombres : $ echo "$b" | sed -e 's/[^0-9]/ /g' 128 85 032 $ for n in $(echo $b | sed -e 's/[^0-9]/ /g'); do echo $n; done 128 85 032 Ou mieux : $ echo ${b//[^0-9]/ } 128 85 032 $ for n in $(echo ${b//[^0-9]/ }); do echo $n; done 128 85 032 Nombre de caractères dans la variable : ------------------------------------- $ echo ${#TUTU} 16 $ LEN=${#TUTU} $ echo $LEN 16 Suppressions ----------- $ echo ${TUTU/soleil} Le brille $ echo ${TUTU/le} Le soil brille # une seule suppression (1° occurence de "le" $ echo ${TUTU//le} # plusieurs suppressions ("le" supprimé partout) Le soil bril Suppressions à partir du _début de la chaîne_ : TITI="Le soleil brille et le vent souffle" $ echo ${TITI#Le} soleil brille et le vent souffle $ echo ${TITI#brille} Le soleil brille et le vent souffle => Attention avec # et ## les suppressions commencent à partir du début de la chaîne !! $ echo ${TITI#Le*brille} et le vent souffle ou plus simplement : $ echo ${TITI#*brille} et le vent souffle Mais : $ echo ${TITI#soleil*souffle} Le soleil brille et le vent souffle # ne marche pas $ echo ${TITI#*il} # Suppression entre le début de la chaîne et le _premier_ "il" brille et le vent souffle $ echo ${TITI##*il} # Suppression entre le début de la chaîne et le _dernier_ "il" le et le vent souffle Suppressions à partir de la _fin de la chaîne_ : $ echo ${TITI%souffle} Le soleil brille et le vent Mais : $ echo ${TITI%vent} Le soleil brille et le vent souffle => Attention avec % et %% les suppressions commencent à partir de la fin de la chaîne !! $ echo ${TITI%brille*souffle} Le soleil $ echo ${TITI%brille*e} Le soleil $ echo ${TITI%brille*} Le soleil $ echo ${TITI%il*} Le soleil br # Suppression entre la fin de la chaîne et le il le plus proche de la fin $ echo ${TITI%%il*} Le sole # Suppression entre la fin de la chaîne et le il le plus loin de la fin Trouver le début et la fin d'une sous-chaîne (merci encore à Christophe Gaubert) -------------------------------------------- $ schaine="soleil" $ a=${TITI%%$schaine*} $ debut=${#a} # si on numérote à partir de 0 $ echo $debut 3 $ debut=$(( ${#a} +1 )) # si on numérote à partir de 1 $ echo $debut Ou bien, en une seule commande $ debut=$(expr length ${TITI%%$schaine*}) ou $ debut=$(( `expr length ${TITI%%$schaine*}` + 1 )) $ fin=$(expr "$TITI" : .*$schaine) $ echo $fin # si on numérote à partir de 1 9 $ (( fin -=1 )) # Si on numérote à partir de 0 $ echo $fin 8 Autres suppressions : isoler des caractères numériques (par exemple) -------------------------------------------------------------------- $ a="abcABC de128fg hi" Enlever les caractères à gauche du nombre : $ echo $a | sed -e "s/^[a-z ]*//" # le "^" (attention : Alt GR 9 !) correspond à "début de la chaîne" 128fg hi ou bien : $ echo $a | sed -e 's/^[^0-9]*//' 128fg hi Enlever les caractères à droite du nombre : $ echo $a | sed -e 's/[^0-9]*$//' # $ indique la fin de la chaîne abc de128 Ne garder que le nombre : $ echo $a | sed -e 's/[^0-9]*//g' # g = répéter Supprimer les répétitions ------------------------- Espaces multiples: $ a="aaa bb cc" $ echo $a aaa bb cc $ echo "$a" aaa bb cc $ b=`echo $a | tr -s " "` $ echo "$b" aaa bb cc $ b=`echo $a` # Semble aussi marcher pour les espaces, à voir $ echo "$b" aaa bb cc Remplacements ------------- $ echo ${TUTU/soleil/miroir} Le miroir brille Voir également sed, ci-dessus Remplacements multiples ----------------------- $ TUTU="Le chien hurle. Le chien s'endort" $ echo ${TUTU/chien/loup} Le loup hurle. Le chien s'endort $ echo ${TUTU//chien/loup} Le loup hurle. Le loup s'endort Noter que la valeur de TUTU n'a pas changé $ echo $TUTU Le chien hurle. Le chien s'endort Suppression(s) -------------- TUTU="dix sept, dix huit, dix neuf" $ echo ${TUTU//dix} sept, huit, neuf Echo, expr et les caractères "espace" fantômes ---------------------------------------------- $ a="ab80cde" $ b=${a%%"80c"*} $ echo $b ab $ echo ${#b} 2 $ echo $(expr length $b) 2 Tout est OK, Maintenant : $ a="ab 80cde" # 1 caractère "espace" entre ab et 80cde $ b=${a%%"80c"*} $ echo -n $b | od -a 0000000 a b # le caractère espace a disparu ! 0000002 $ echo ${#b} # Tiens on dirait qu'il y est quand même ! $ echo $(expr length $b) 2 # Ah, ben non ! $ echo $(expr length "$b") 3 # Ouf il y est ! Autre essai : $ a="ab 80cde" # 2 caractères "espace" entre ab et 80cde $ b=${a%%"80c"*} $ echo -n $b | od -a 0000000 a b # les 2 caractères "espace" ont disparu ! 0000002 $ echo ${#b} 4 $ echo $(expr length $b) 2 $ echo $(expr length "$b") 4 => echo supprime les caractères espace !!! => avec expr penser toujours à entourer les variables de "" Opérations (additions, soustractions, multiplications, divisions) ----------------------------------------------------------------- $ r=1 $ echo $((r++)) 1 $ echo $r 2 => l'affichage se fait avant l'incrémentation $ r=1 $ echo $((++r)) 2 $ echo $r 2 => l'affichage se fait après l'incrémentation $ r=1 $ a=$((r +=1)) $ echo $a 2 $ echo $r 2 $ r=1 a=$((r + 1)) $ echo $a 2 $ echo $r 1 $ a=2 $ b=10 $ echo $(($b + $a)) 12 $ echo $(($b * $a)) 20 $ echo $(($b / $a)) 5 b=11 $ echo $(($b / $a)) 5 $ echo $(($b % $a)) # modulo (reste) 1 Affecter le résultat d'une commande à une variable -------------------------------------------------- $ r=`ls /usr/X11R6` # affectation $ r=$(ls /usr/X11R6) # idem $ echo $r # affichage du résultat bin/ GNUstep/ include/ lib/ man/ share/ Affichage ligne à ligne de la variable r ---------------------------------------- $ for i in $r ; do echo $i; done # ou bien echo "${r[@]}" bin/ GNUstep/ include/ lib/ man/ share/ Tester si une sous-chaîne est contenue dans une chaîne de caractères -------------------------------------------------------------------- $ a="C'est sûr, il neige aujourd'hui, il neigera demain" $ b="neige" $ c="soleil" $ [[ $a == *$b* ]] $ echo $? 0 [[ $a == *$c* ]] $ echo $? 1 Trouver la position de la sous-chaîne dans la chaîne ---------------------------------------------------- $ echo $(expr $a : '.*est') expr: syntax error les "" sont indispensables ! $ echo $(expr "$a" : '.*est') ou bien $ echo $(expr "$a" : .*est) 5 5 est la position dans la chaîne $a du t de est Variante : $ echo $(expr match "$a" .*est) 5 Autres possibilités : $ n=$(expr "$a" : .*est) $ m=`expr "$a" : .*est` $ echo n=$n m=$m n=5 m=5 $ echo $(expr "$a" : \.\*$b) 41 => C'est le 2° neige qui est retourné :41 est la position du 2° e de neigera Trouver la position du premier "neige" $ echo $(expr index "$a" "$b") 3 marche pas : c'est le 1° e qui est trouvé ! $ b="rty 84bn" $ echo $(expr "$b" : .*'[0-9]') 6 Mais : $ echo $(expr $b : .*'[0-9]') expr: syntax error Comme b contient un espace, quand bash lit : $(expr $b : .*'[0-9]') il va essayer d'exécuter : $(expr rty 84bn : .*'[0-9]') Et là, erreur syntaxique : l'espace n'est pas protégé, rty et 84bn sont deux arguments, alors que expr n'en attend qu'un. Pour éviter ce genre de déconvenue, toujours mettre des guillemets. Concaténation ------------- a=abc a=${a}'123' echo $a abc123 Tableaux : affectation, affichage ================================= Affecter des variables à un tableau ----------------------------------- $ t=(bleu blanc rouge) $ echo $t bleu $ echo ${t[0]} bleu $ echo ${t[1]} blanc $ echo ${t[*]} # ou echo ${t[@]} bleu blanc rouge $ echo ${#t[*]} # Nombre d'éléments dans le tableau 3 $ t[1]=vert $ echo ${t[@]} bleu vert rouge Copie de tableau $ a=(${t[*]}) $ echo ${a[*]} bleu blanc rouge ou bien d'après certaines docs : a="${t[@]}" $ echo ${a[*]} bleu blanc rouge blanc rouge # !!! Initialiser un tableau ---------------------- a=() $ echo ${#a[*]} # Nombre d'éléments dans le tableau 0 Balayer un tableau ------------------ for (( i=0 ; i<${#t[*]} ; i++ )) ; do echo "i=$i t=${t[i]}" ; done i=0 t=bleu i=1 t=blanc i=2 t=rouge Rajouter un élément ------------------- $ t=( ${t[*]} vert ) $ echo ${t[*]} bleu blanc rouge vert $ v=violet t=(${t[*]} $v) $ echo ${t[*]} bleu blanc rouge vert violet Tableau résultat d'une commande ------------------------------- t=(`ls /usr/X11R6`) $ echo ${t[*]} bin/ GNUstep/ include/ lib/ man/ share/ $ echo ${t[3]} lib/ Nombre de variables dans un tableau de variables ------------------------------------------------ $ echo ${#t[*]} # attentionn : echo ${#t} donne 4, soit la longueur de t[0] 6 Longueurs --------- $ echo ${#t} # ou echo ${#t[0]} 4 # nb de caractères dans le premier élément du tableau (/bin) $ echo ${#t[2]} # nb de caractères dans le 3° élément du tableau (/include) 5 Additions, soustractions ------------------------ t=(10 2 7) $ echo `expr ${t[0]} + ${t[2]} - ${t[1]}` 15 Adressage indirect ------------------ $ médor=chien $ chien=canidé $ echo $médor chien $ echo $chien canidé $ echo ${!médor} canidé Voir/ supprimer des processus ============================= ps Vignettes ========= Les images sont dans /usr/share/mdk/faces/ Grub ==== http://www.gnu.org/software/grub/ http://doc.polynum.org/howto/grub/grub-howto-1.html (en français) I - Créer une disquette grub //////////////////////////// 1 - Formater une disquette au format ext2fs : # kfloppy ou bien : # mke2fs /dev/fd0 -c (ou cc) pour vérification -L nom du volume 2 - Monter la disquette 3 - Créer un répertoire boot. Dans ce répertoire créer un répertoire grub, Dans /boot/grub, copier les fichiers menu.lst stage1 stage2 3 - Démonter la disquette 4 - Rendre la disquette bootable La méthode décrite dans le "GRUB manual", §3.1 "Creating a GRUB boot floppy" ne fonctionne pas. Utiliser plutôt l'une ou l'autre des méthodes suivantes : a) Methode simple (interactive) # grub grub> root (fd0) grub> setup (fd0) grub> quit b) Méthode décrite dans la FAQ "4. How to create a GRUB boot floppy with the menu interface" --------------------------------------------------------------------------------- Lancer la commande batch suivante # grub --batch --device-map=/dev/null < find /boot/grub/stage1 (fd0) (hd1,1) Le root device est donc ici en hd1,1, c'est à dire hdb2 en nomenclature Linux 3 -Indiquer à grub l'emplacement du root device : grub> root (hd1,1) Filesystem type is ext2fs, partition type 0x83 4 - Installer GRUB dans le MBR de hd1 (hdb en nomenclature linux) grub> setup (hd1) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 17 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd1) (hd1)1+17 p (hd1,1)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. 5 - Quitter grub grub> quit 6 - Copier le programme de boot que l'on vient de mettre dans le MBR du disque hdb. La copie est mise dans un fichier (ici bootsect.grb) qui sera plac� dans la racine de la partition bootable, soit tr�s g�n�ralement hda1. Si n�cessaire v�rifier � l'aide de fdisk que cette partition a bien l'attribut bootable. Dans l'exemple ci-dessous /dev/hda1 est mont� en /mnt/win_c # dd if=/dev/hdb of=/mnt/win_c/bootsect.grb bs=512 count=1 Configurer grub pour booter linux -------------------------------------- Taper sur la touche pour passer en mode commande et rechercher où se trouve le(s) dossier(s) grub : c'est dans ces dossiers que se trouve le fichier menu.lst à configurer : grub> find /boot/grub/stage1 (fd0) (hd1,1) => dans ce cas il y a 2 dossiers grub - sur disquette (fd0) - sur la 2° partition du disque hd1 Taper sur les touches puis pour éditer les lignes de commande Corriger les valeurs et essayer de booter. Dans le cas d'un déplacement de disque, fstab est probablement incorrect : booter avec un mini-linux sur disquette (tomsrtbt, puis utiliser vi) ou sur CD (Knoppix avec KDE ou le CD1 d'installation Mandrake avec vi) et corriger fstab. En profiter pour corriger le fichier menu.lst qui se trouve dans boot/grub. NB : sous Knoppix les partitions sont par défaut "read only". En plus KDE est ouvert pour un utilisateur non root. Donc pas moyen d'écrire. Pour pouvoir écrire, passer dans une console root (il n'y a pas de mot de passe) : Démmarrer KDE en root : # startx -- :1 - Sur le bureau, trouver l'icône de la partition qui contient les fichiers menu.lst et fstab à modifier - Click droit sur l'icône de la partition, la monter - A nouveau click droit et changer le mode en read/write - passer dans le répertoire boot/grub/ - clik droit sur l'icône du fichier menu.lst : l'ouvrir avec un éditeur (kwrite) et entrer les bonnes valeurs - idem pour /etc/fstab Attention : Knoppix et Mandrake ne reconnaissent pas les disques sous le même nom : par exemple hdg sous knoppix peut devenir hdc sous Mandrake. Pour savoir comment mandrake identifie les disques, démarrer avec le CD d'installation n°1 jusqu'au partitionnement : on voit alors comment les disques sont nommés. Rebooter. S'il n'y a plus d'erreur dans menu.lst et dans fstab, ça boote correctement. Amélioration de l'affichage des infos au démarrage de MDK --------------------------------------------------------- Remplacer vga=788 par vga=791 dans le fichier /boot/grub/menu.lst Si le système affiche au démarrage "You passed an undefined number" c'est que le driver écran ne supporte pas cette résolution (il repasse automatiquement en 80x25). Dans ce cas, essayer d'autres résolutions du tableau ci-dessous. Valeur du paramètre vga cf. http://guide.andesi.org/html/jbootsplash.html Résolution Nombre de couleurs paramètre vga 640x480 256 769 32000 784 65000 785 16.7 Millions 786 800x600 256 771 32000 787 65000 788 16.7 Millions 789 1024x768 256 773 32000 790 65000 791 16.7 Millions 792 1280x1024 256 775 32000 793 65000 794 16.7 Millions 795 On peut également utiliser : vga=normal vga=ask Autre tableau (plus simple), cf. http://linuxfr.org/tips/249.html Couleurs___640x480__800x600__1024x768__1280x1024__1600x1200 -------+------------------------------------------------------------------------------- ____4__|____769______771_______773_______775________796___ ____8__|____784______787_______790_______793________797___ ___16__|____785______788_______791_______794________798___ ___24__|____786______789_______792_______795________799___ Changer/se débarasser de l'image de fond au démarrage ------------------------------------------------------ - Supprimer : splash=silent dans /boot/grub/menu.lst - Installer bootsplash-themes Puis lancer mcc, cliquer sur l'icône de menu "Boot" et choisir un fond sobre : "Linux" est simple et pas mal Voir aussi http://linuxfr.org/tips/249.html Gestion des disques =================== diskdrake Nettoyage des disques ===================== KleanSweep Taux d'occupation des disques ============================= http://www.linux.com/article.pl?sid=06/01/25/1548238 df df -h (h = human readable, affichage en MO, etc.) filelight Baobab KDirStat Sous KDE : Menu View > View Mode > File Size View (il faut auparavent avoir installé kdeaddons : sudo urpmi kdeaddons et redémarrer KDE) ou bien : Menu View > View Mode > RadialMap View (il faut auparavent avoir installé filelight) du taille occupée par les fichiers Exemples : $ du -s /home du: `/home/lost+found': Permission denied 15G /home # du /var/log/messages* 860K /var/log/messages 1,2M /var/log/messages.1.gz 96K /var/log/messages.2.gz 108K /var/log/messages.3.gz 232K /var/log/messages.4.gz Monter/démonter des disques, occupation ======================================= kdf Formatage d'une partition d'un disque dur ========================================= Formater la partition hdc2, par exemple : mkfs -V -t ext3 -c /dev/hdc2 Curieusement c'est une partition ext2 qui est crée : pour la passer en ext3 (ça n'efface rien !) tune2fs -j /dev/hdc. Cette erreur est corrigée dans les dernières versions. ou bien mkfs.ext3 -c -v /dev/hdc2 -v verbose -c vérifie les blocs défectueux (avec mkfs.ext3, c'est bien une partition journalisée ext3 qui est crée). Formatage rapide : mkfs /dev/hdc2 ext3 ---- Avec le noyau 2.6 les répertoires peuvent être indexés ce qui accélère l'affichage en cas de fichiers en grand nombre (cf. http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt) Par exemple pour ajouter l'indexation à un système de fichiers ext3 existant sur la partition sda3 : # tune2fs -O dir_index /dev/sda3 Nommer un disque (une partition), changer son nom ou afficher son nom --------------------------------------------------------------------- # e2label /dev/sdb1 TOTO nommer ou changer le nom # e2label /dev/sdb1 affiche le nom TOTO Egalement dans diskdrake, en mode expert Particulièrement utile pour désigner des disques amovibles dont la désignation peut changer à chaque montage. Formater une disquette ======================= kfloppy Formatage ext2 (rapide) mke2fs /dev/fd0 Formatage ext2 avec contrôle en lecture/écriture de la surface de la disquette (lent) mke2fs -c -c /dev/fd0 Localiser quelque chose ======================= find locate which ou type whereis kfind Rechercher à l'intérieur de fichiers ------------------------------------ grep rgrep kfind $ grep -il chaine $(locate NomFichier) Locate retourne à grep tous les fichiers correspondant à NomFichier : grep cherche parmi ces fichiers ceux qui contiennent la chaîne "chaine" et affiche leur nom. Copie de disquette (idem diskcopy sous DOS) =========================================== 1 - Copier le contenu de la disquette sur le disque dur dd if=/dev/fd0 of=flop.tmp 2 - Facultatif : formater une disquette (voir ci-dessus) Pas vraiment utile, car dd copie secteur à secteur. permet de vérifier l'état de la disquette 3 - Copier le fichier flop sur cette disquette dd if=flop of=/dev/fd0 4 - Effacer le fichier temporaire flop.tmp rm -i flop.tmp Clients de messagerie ===================== kmail Claws Mail www.claws-mail.org/ Groupware ========= Sogo http://www.sogo.nu/ Messagerie (mail) ================= Format de stockage des messages : 3 possibilités suivant les clients de messagerie utilisés : 1 - Dans un répertoire : 1 fichier par message 2 - tous les messages sont dans un seul fichier, éventuellement organisé en base de donnée 3 - Solution intermédiaire un fichier par dossier : tous les messages du dossier sont groupés dans un fichier. 1 = maildir, format le plus sûr cf. http://www.qmail.org/qmail-manual-html/man5/maildir.html, http://en.wikipedia.org/wiki/Maildir Utilisé par Kmail, Postfix, etc. Les messages d'un dossier du client de messagerie (par exemple inbox) sont mis dans un répertoire (inbox) subdivisé en trois sous-répertoires : cur, new et tmp - new : les messages nouvellement arrivés, avec l'heure et date d'arrivée - cur : idem new, mais messages lus - tmp : pas clair, voir doc ci-dessus 2 = format le plus dangereux et le plus difficile à tranférer sous un autre format Utilisé par Microsoft Outlook 3 = mbox, format très courant cf. http://www.qmail.org/man/man5/mbox.html, http://en.wikipedia.org/wiki/Mbox Utilisé par exemple par Eudora Mail : emplacement des messages (à sauvegarder) °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Kmail ----- ~/.kde/share/apps/kmail/mail/ Thunderbird ----------- ~/.thunderbird Postfix(serveur) ---------------- ~/Maildir Kmail ===== Par défaut l'icône kmail ou la commande kmail lancent "kontact". Pour lancer uniquement kmail, localiser kmail : $ which kmail /usr/bin/kmail et lancer cette application. Pour créer l'icône correspondante : - lancer konqueror - copier /usr/bin/kmail sur le bureau (par exemple drag&drop touche ctrl enfoncée) - changer l'icône de l'application sur le bureau : clic droit, properties, cliquer sur l'icône en forme de clé ; dans la fenêtre que s'ouvre, cliquer sur l'icône en forme de roue dentée, sélectionner "System icons" et les icônes "Applications" : on y trouve l'icône kmail. - ou bien drag&drop de l'icône dans la barre de lancement de tâches - choisir l'icône de son choix (kmail par exemple dans System icons / Applications) Fichiers de configuration (pour config "à la main") °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ~/.kde/share/config/kmailrc ------------------------------------ Etiquettes : - Compte(s) pour la réception : [Account 1] .... [Account 2] .... - Compte(s) pour l'envoi [Transport 1] .... Voir aussi : [Composer] current-transport=nom_serveur Signatures : [KFileDialog Settings] Recent Files=$HOME/Signatures/Standard.txt Identités fichier : /home/user/.kde/share/config/emailidentities ------------------------------------------------------ Threads °°°°°°° Menu Folder > Thread Messages et/ou Settings > Configure Kmail > Message list, cocher Threaded message list et Threads default to open. Si ça ne marche pas : Settings > Configure Kmail,> Layout > Message Structure Viewer, cocher Sows always , il semble que ça débloque la mise en forme des messages !!! Trash (poubelle) °°°°°°°°°°°°°°°° Menu : Settings/Configure Kmail Onglet Receiving Créer une BAL (ou bien choisir la BAL à modifier) Onglet General, en bas de la fenêtre menu déroulant "Trash folder" : bien choisir dans quel dossier mettre les messages à envoyer à la poubelle. Création de sous-répertoires °°°°°°°°°°°°°°°°°°°°°°°°°°°° La création de sous répertoires dans "Local Folders" ne pose pas de problème. Par contre la création de sous-répertoires sur le serveur dans le répertoire racine n'est pas possible (problème postfix / courier-imap ?). Les créer dans le sous-répertoire "inbox" ou au dessous. Sauvegarde des messages ----------------------- KMail 1.9.6, KDE 3.5.6 : Les messages locaux sont dans ~/.kde/share/apps/kmail/mail. A conserver (attention, conserver aussi les fichiers cachés) et copier dans la nouvelle installation. Messages conservés sur le serveur, voir plus loin "Sauvegarde des messages enregistrés sur le serveur Postfix" Sauvegarde des messages d'une version de kmail et restauration sur une autre version de kmail --------------------------------------------------------------------------------------------- Exemple : kmail 1.9.9 sur PC1 -> kmail 1.13.3 sur PC2 Sur PC1, aller dans le répertoire ~/kde/share/apps/kmail/mail/ Afficher les fichiers cachés Sur PC2, aller dans le répertoire ~/kde4/share/apps/kmail/mail/ Afficher les fichiers cachés Copier sur PC1 par exemple le répertoire "Essai" ainsi que les index associés "Essai.index", "Essai.index.ids", "Essai.index.sorted" Les coller sur PC2 Pour voir apparaître dans kmail de PC2 le répertoire Essai, quitter kmail (Fichier > Quitter, il ne suffit pas de cliquer sur la croix en haut à droite de la fenêtre) zt redémarrer kmail. Carnet d'adresses °°°°°°°°°°°°°°°°° ~/.kde/share/apps/kabc Signatures °°°°°°°°°° Configure Kmail > Identities > (Modifiy) > Signature Encodage °°°°°°°° Pour la réception : View > Set Encoding > Auto Pour l'envoi : ouvrir un nouveau message à envoyer, puis : Options > Set Encoding > Auto-detect Groupware ========= kolab ? Date ==== $ date sam fév 7 10:52:40 CET 2009 Formatage : $ date +%Y-%m-%d 2009-02-07 $ date '+DATE: %m/%d/%y%nTIME:%H:%M:%S' DATE: 02/07/09 TIME:10:53:57 Envoyer un mail en ligne de commande (mail) =========================================== Exemples : - Envoyer le résultat d'une commande : $ date | mail -s "Voici la date et l'heure" toto@serveur_mail (mettre le sujet entre "" si ce n'est pas un mot unique. - Rédiger le mail à l'aide d'un éditeur de texte quelconque et l'enregistrer dans un fichier. Puis : $ cat nom_fichier | mail -s sujet destinataire@serveur_mail Transférer les messages du format mailbox au format maildir =========================================================== Récupérer le programme perl mb2md sur http://batleth.sapienti-sat.org/projects/mb2md/ Le dézipper (gunzip nom_programme) Mettre les droits x Utilisation : voir le mode d'emploi. Par exemple pour remplir /home/utilisateur/Maildir : $ ./mb2md-x.xx.pl -s /var/spool/mail/mbox_utilisateur Si ça ne fonctionne pas vérifier que perl et perl-TimeDate soient bien installés. winmail.dat =========== Format de pièce(s) attachée(s) envoyé par outlook Pour le décoder, installer tnef Connaître le nom des fichiers inclus : tnef -t winmail.dat Extraction : tnef -f winmail.dat Alarme, sonnerie, avertissement, message ======================================== kalarm Calendriers =========== KOrganizer pour récupérer un calendrier : ~/.kde/share/apps/korganizer/std.ics Peut se faire par le menu File > Import > Calendar On peut se retrouver avec des évènements dupliqués : pour les supprimer : - vérifier que Settings > Side Bar > Show Resource View est coché - en bas à gauche dans le fenêtre "Calendar" sélectionner/déselectionner/supprimer les ressources utiles/inutiles. Autres calendriers dates orage (calendrier de xfce) Calendrier multi-utilisateurs ============================= Webcalendar http://www.k5n.us/webcalendar.php A voir. Clients FTP =========== gftp kbear konqueror ... Monter en local une connexion ftp ================================= curlftpfs http://curlftpfs.sourceforge.net/ http://doc.ubuntu-fr.org/curlftpfs Serveur ftp (proftpd) ===================== Documentation : http://www.mandrakeuser.org/docs/connect/print/ftp.html Fichier de configuration : /etc/proftpd.conf Répertoire de départ (cf. directive dans le fichier de configuration) : /var/ftp Statut, démarrer, arrêter, etc. # service proftpd status [start] [restart] [stop] etc. Version : # proftpd -v # proftpd --version Fichier de configuration ------------------------ /etc/proftpd.conf Créer un répertoire pour le dépôt anonyme de fichiers ----------------------------------------------------- cf. http://www.proftpd.org/docs/faq/linked/faq-ch5.html#AEN466 User ftp Group ftp UserAlias anonymous ftp RequireValidShell off DenyAll # Les modifs à ajouter sont ici : #-------------------------------- AllowAll DenyAll #-------------------------------- Significations : (http://www.proftpd.org/docs/directives/linked/config_ref_Limit.html) READ lecture STOR STORe (dépôt) CWD Change Working Directory RMD ReMove Directory DELEte MKD MaKe Directory NE PAS OUBLIER DE DONNER LES DROITS D'ECRITURE SUR pub/upload au groupe ftp !!! drwxrwsr-x 2 root ftp 4096 Aug 2 08:40 upload/ Proftpd, symlinks et chroot --------------------------- cf. http://castaglia.proftpd.de/doc/contrib/ProFTPD-mini-HOWTO-Chroot.html Pour faire apparaître un répertoire dans /var/ftp/pub ln ne fonctionne pas. Utiliser à la place : mount --bind /le/repertoire/a/monter /var/ftp/pub Pour rendre accessible par ftp un partage samba : mount -t smbfs -o username=toto //nom_machine/nom_partage /var/ftp/pub Nb : sous MDV 2007 : mount -t cifs ... FTP sécurisé ============ sftp utilise le port 22 (SSH) En fait, malgré le nom, sftp n'a rien à voir avec le protocole ftp : c'est du ssh. A partir de KDE/konqueror : sftp://NomDeMachine Puis entrer le login et le mot de passe de l'utilisateur : on est alors à la racine du home de l'utilisateur A partir de W$ : Pas de client sftp dans IE ou Mozilla :( Mais possible avec filezilla : remplir les champs Address, User et Password et taper retour chariot on est alors à la racine du home de l'utilisateur Serveurs http ============= Lighthttpd °°°°°°°°°° http://mdvmondelinux.tuxfamily.org/Une-alternative-au-serveur-apache Apache °°°°°° - Documentation : http://httpd.apache.org/docs-2.0/ - FAQ : http://httpd.apache.org/docs/misc/FAQ.html - Fichiers de configuration principaux : /etc/httpd/conf/http2.conf (en principe à ne pas modifier) /etc/httpd/conf/commonhttpd.conf (ou suivant les versions httpd.conf à adapter suivant besoins) - Répertoire de départ (cf. DocumentRoot dans le fichier de configuration http2.conf) : /var/www/html - Fichier(s) à ouvrir par défaut : à voir ou définir dans commonhttpd.conf. - Fichier de logs : /var/log/httpd/access_log - Fichier d'erreurs : /var/log/httpd/error_log - Fichiers de configuration : /etc/httpd/conf/commonhttpd.conf /etc/httpd/conf/vhosts/Vhosts.conf (voir ci-dessous) - Version : httpd2 -V Actuellement, dans le cas de la version 2 : # httpd -v Liste des modules : # httpd -l # httpd -M (cf.man httpd) Statut, démarrage / redémarrage, etc. ----------------------------- # service httpd status extendedstatus start restart stop ou bien # /etc/init.d/httpd status Autoriser l'accès local à un répertoire --------------------------------------- Mettre dans /etc/httpd/conf/commonhttpd.conf : Alias /toto /chemin/réel/vers/répertoire_à_autoriser Options Indexes FollowSymLinks Order deny,allow Deny from all Allow from 127.0.0.1 192.168.3.27 mabecane.fr NB : version 2 -------------- Le fichier commonhttpd.conf n'est plus utilisé, mettre les modifications dans /etc/httpd/conf/httpd.conf !! NB : localhost à la place de 127.0.0.1 ne marche pas S'y connecter avec : http://localhost/toto "Options Indexes FollowSymLinks" autorise l'affichage du contenu du répertoire et permet de suivre les liens symboliques Sites supplémentaires (virtual hosts) ------------------------------------- Ajouter les sites dans /etc/httpd/conf/vhosts/Vhosts.conf, par exemple : ################# Named VirtualHosts : Mon_joli_site NameVirtualHost 192.168.1.70 ServerName mon_joli_site.fr ServerAlias mon_joli_site #ServerPath /domain DocumentRoot /répertoire/de/départ Ajouter les adresses dans /etc/sysconfig/network-scripts Créer un fichier ifcfg-eth0:0 (ou :1, etc.) contenant : DEVICE=eth0:0 BOOTPROTO=static IPADDR=192.168.1.70 NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 GATEWAY=192.168.1.254 ONBOOT=yes NB : si le fichier est créé avec kwrite on a un message d'erreur à l'enregistrement. Enregistrer sous un nom quelquonque (toto par exemple) puis renommer. Relancer eth0 : ifup eth0 Vérifier (éventuellement) que les modifications ont été prises en compte : ifconfig (pas de eth0 aprés !) Ne pas oublier de redémarrer le serveur : service httpd restart Plusieurs sites sur un même serveur avec une seule adresse IP °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° cf. http://httpd.apache.org/docs/1.3/vhosts/examples.html Simplement 2 fichiers à configurer : /etc/httpd/conf/vhosts/Vhosts.conf ---------------------------------- rajouter : ServerName monserveur.mondomaine.a_moi NameVirtualHost 192.168.0.25 ################# MonJoliSite ServerName MonJoliSite.mondomaine.a_moi DocumentRoot /var/www/html/sites/MonJoliSite ################# MonAutreSite NameVirtualHost 192.168.0.25 ServerName MonAutreSite.mondomaine.a_moi ServerAlias www.MonAutreSite.mondomaine.a_moi Pour pouvoir se connecter aussi par cette autre adresse DocumentRoot /var/www/html/sites/MonAutreSite dans /etc/httpd/conf/commonhttpd.conf : --------------------------------------- rajouter : Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all et redémarrer le serveur : service httpd restart bugs et problèmes °°°°°°°°°°°°°°°°° Erreur 403 : access denied L'affichage du contenu du répertoire racine du site n'est pas autorisé : vérifier qu'il y a bien un fichier index.html ou analogue à la racine du site ! Vhosts.conf : ------------------ - En interne on peut en principe utiliser le nom "MonJoliSite" au lieu du nom comple MonJoliSite.mondomaine.a_moi. Curieusement certains noms mais pas tous, renvoient sur le site principal. La directive ServerAlias ne fonctionne pas ? - doc http://httpd.apache.org/docs/1.3/vhosts/. On y lis : "Folks trying to debug their virtual host configuration may find the Apache -S command line switch useful" # Apache -S (majuscules ou minuscules) -bash: Apache: command not found C'est une erreur dans la doc ; utiliser : # httpd -S - Apache 2.0.54, cooker ( et autres versions ?), à la fin du fichier /etc/httpd/conf/httpd.conf : # virtual hosts configuration section # Include virtual hosts, if any Include conf/vhosts.d/*.conf C'est faux : le répertoire conf/vhosts.d n'existe pas, c'est un sous-dossier du répertoire conf/vhosts/ Si on lance : # httpd -S VirtualHost configuration: Syntax OK c'est à dire qu'aucun virtual host n'est configuré En rajoutant dans /etc/httpd/conf/httpd.conf : include conf/vhosts/*.conf la commande httpd -S liste les hôtes virtuels. Exemple : # httpd -S VirtualHost configuration: 130.79.101.21:* is a NameVirtualHost default server aloes.u-strasbg.fr (/etc/httpd/conf/vhosts/Vhosts.conf:59) port * namevhost aloes.u-strasbg.fr (/etc/httpd/conf/vhosts/Vhosts.conf:59) port * namevhost immuno-meda.u-strasbg.fr (/etc/httpd/conf/vhosts/Vhosts.conf:93) .... Syntax OK Sécurité -------- http://httpd.apache.org/docs/howto/auth.html http://httpd.apache.org/docs-2.0/misc/security_tips.html http://httpd.apache.org/docs/misc/FAQ.html : How do I turn automatic directory listings on or off? G. Authentication and Access Restrictions Voir sécurisation plus loin Limiter l'accès par htpasswd ---------------------------- http://httpd.apache.org/docs-2.0/howto/htaccess.html http://www.destrucsaweb.com/ressources/phpmyannu/goto_43.php NB : l'utilisation de .htaccess est déconseillée sauf si l'on ne dispose pas des droits d'administration sur le serveur (cf. http://httpd.apache.org/docs-2.0/howto/htaccess.html). Si l'on dispose des droits d'administration préférer la méthode ci-dessous (voir à "Sécurisation)". Validation des pages web ======================== http://validator.w3.org/ Voir aussi xenu sous windows : http://home.snafu.de/tilman/xenulink.html Analyse des logs web, ftp, etc. =============================== phpMyVisites ------------ Semble sympa (http://www.phpmyvisites.net/screenshots.html) mais problèmes de dépendances. A voir, awstats -------) Documentation : /usr/share/doc/awstats-5.4/index.html http://awstats.sourceforge.net/docs/index.html Voir aussi le fichier de configuration /etc/awstats/awstats.conf Programme : /var/www/cgi-bin/awstats.pl Fichier de configuration : /etc/awstats/awstats.conf Remplacer dans ce fichier : LogFile="/var/log/httpd/mylog.log" par : LogFile="/var/log/httpd/access_log" Créer / mettre à jour les statistiques : ./awstats.pl -config=nom_serveur ./awstats.pl -config=nom_serveur -output -staticlinks > awstats.nom_serveur.html webalizer --------- Site : http://www.mrunix.net/webalizer/ Installation : urpmi webalizer Documentations : - man webaliser ou http://www.mrunix.net/webalizer/webalizer.1.html - lire et configurer le fichier de configuration /etc/webalizer.conf (la configuration pas défaut est OK) Générer les statistiques : # webalizer (à exécuter en root pour que le programme puisse lire le fichier /var/log/httpd/access_log sinon changer les droits sur ce fichier) A mettre éventuellment dans un cron. Visualiser les statistiques : Afficher la page web /var/www/html/stats/index.html (ou http://serveur/stats) et cliquer sur un mois pour visualiser les infos sur ce mois Sécurité -------- - Suprimer l'affichage permettant l'identification du système, de la version d'apache, etc. /etc/httpd/2.0/conf/commonhttpd.conf => ServerSignature Off - Sécurisation par login et mot de passe voir plus loin sécurisation de PhpMyAdmin Messagerie ========== MUA : Mail User Agent, = client de messagerie ( = écriture et la lecture des messages) Exemple Kmail, thunderbird etc. MTA : Mail Transfert Agent, pour l'expédier les messages Exemple : Postfix, Sendmail MDA : Mail Delivery Agent, pour délivrer les messages dans la(les) boîte(s) aux lettres du MUA Exemple Procmail Postfix ******* Liens utiles : http://www.postfix.org/docs.html http://vejnar.eu.org/linux/serveur-mdk/index.html (ou bien http://www.linux-france.org/article/mail/serveur-mdk/config.html#AEN80) http://troumad.free.fr/Linux/Linux.sxw http://www.jennings.homelinux.net/ NB : pour un serveur autonome (qui ne va pas chercher les messages chez un FAI), fetchmail est inutile : il ne sert que si l'on a pas une connexion permanente. Connaître la version de posfix installée : # postconf mail_version Fichiers de configuration dans /etc/postfix Lister les variables configurées : # postconf -n Démarrage ... _____________ # service postfix status start restart stop Simplement recharger les paramètres de configuration ---------------------------------------------------- # service postfix reload Relayage des messages _____________________ Postfix par défaut ne relaye pas les messages autres que celui du sous-réseau : cf documentation incluse dans le fichier de configuration main.cf. Pour relayer les messages (déconseillé !) modifier mynetworks ou smtpd_recipient_restrictions Configuration _____________ /etc/postfix/main.cf -------------------- Dans la version postfix-2.1.1-0.1.100mdk (et peut être d'autres, main.cf ne contient que les paramètres adaptés à Mandrake, ce qui fait que postfix ne peut pas fonctionner !!! Ouvrir main.cf.dist Copier les paramètres trouvés dans main.cf et les coller où il faut dans main.cf.dist Renommer main.cf main.cf.mdk (par exemple) et enregistrer main.cf.dist en main.cf La configuration par défaut de MDK10 est un peu trop restrictive. Changer : inet_interfaces = localhost par inet_interfaces = localhost, $myhostname mynetworks_style = host par mynetworks_style = subnet Choisir : smtpd_banner = $myhostname ESMTP $mail_name plutôt que le choix par défaut : smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandrakelinux) qui donne un peu trop d'infos sur le serveur et surtout (MDV ne le configure pas !) (voir http://vejnar.eu.org/linux/serveur-mdk/index.html pour plus d'insfos) --------------------------------------------------------------------------- myhostname = nom_du_serveur.nom_du domaine.fr (fully qualified server name) mydomain = nom_du domaine.fr default_transport = smtp myorigin = $myhostname (souvent en commentaire !) mydestination = $myhostname, localhost.$mydomain, localhost relayhost = $mydomain (décommenter) defer_transports = smtp alias_database = hash:/etc/postfix/aliases Gestion des adresses -------------------- Il faut définir la correspondance entre les adresses locales de type utilisateur@monserveur_de_mail et les adresses connues (ou communiquées) aux correspondants extérieurs du type Prénom.Nom@monserveur_de_mail : Editer (si nécessaire créer) le fichier /etc/postfix/sender_canonical et le remplir avec des lignes du type login_utilisateur Prénom.Nom@monserveur_de_mail De même, compléter le fichier /etc/postfix/recipient_canonical avec des lignes du type : Prénom.Nom@monserveur_de_mail login_utilisateur pour indiquer à postfix que Prénom.Nom@monserveur_de_mail est un utilisateur local Générer les fichiers DB correspondants (cf. http://www.postfix.org/canonical.5.html) postmap /etc/postfix/sender_canonical postmap /etc/postfix/recipient_canonical Vérifier la présence des lignes suivantes dans le fichier de configuration /etc/postfix/main.cf : sender_canonical_maps = hash:/etc/postfix/sender_canonical recipient_canonical_maps = hash:/etc/postfix/recipient_canonical Terminer en relançant Postfix par la commande postfix reload. Aliases ------- Un utilisateur (toto par exemple) déclaré au niveau du serveur (cf adduser ou userdrake) peut avoir 1 ou plusieurs alias : les déclarer dans le fichier /etc/postfix/aliases : webmaster: toto bibi: toto Terminer en mettant à jour la base "/etc/postfix/aliases.db" par la commande newaliases. webmaster, bibi n'ont pas besoin d'être des utilisateurs déclarés au niveau du serveur (cad avoir une entrée dans /etc/passwd ou /etc/group) Messages à root --------------- Root n'est pas censé recevoir des messages. Solution, modifier le fichier /etc/postfix/aliases : changer la ligne root: postfix en root: un_nom_d'utilisateur_valide pour rediriger les messages vers la messagerie de cet utilisateur Terminer en mettant à jour "aliases.db" par la commande newaliases. NB : avec root: postfix, les messages sont stockés dans le fichier /var/mail/postfix Postfix range les messages reçus dans le fichier texte /var/mail/nom_utilisateur On peut les visualiser grâce à la commande mail. Mais il n'y a pas de serveur pop ou imap fourni avec postfix : pour pouvoir récupérer les messages au moyen d'un client mail quelconque (kmail ...), installer un serveur pop ou imap : Installation de courier-imap (et imap-2002) ******************************************* NB : imap-2002 ne supporte pas le format maildir (http://www.washington.edu/imap/IMAP-FAQs/#1.31) Pour utiliser maildir, désintaller (s'il a été installé) imap-2002 et installer à la place courier-imap Les fichiers de configuration sont dans /etc/courier Après installation, démarrer le service : # service courier-imap start Maildirmake++ installé avec courier-imap permet de créer des Maildir Cf. http://www.trustonme.net/didactels/174.html Résolution des messages d'erreur -------------------------------- "Impossible de s'authentifier. Le mot de passe est sûrement non valable. Le serveur a répondu : Login failed." Le message d'erreur généré par le client mail (ici Kmail) peut n'avoir rien à voir avec le problème réel => Consulter les logs # tail -f /var/log/mail/errors Dans le cas présent : # tail -f /var/log/mail/errors postfix/smtpd[11324]: fatal: open database /etc/aliases.db: No such file or directory => Chercher où se trouve les fichiers aliases et aliases.db (probablement dans /etc/postfix), ouvrir le fichier main.cf, et corriger la ligne alias_maps = hash:/etc/aliases en alias_maps = hash:/etc/postfix/aliases Vérifier dans le fichier "aliases" que l'alias pour le login de l'utilisateur est défini, par (par exemple) : Fernand.Dubois@machine.fr: toto Recréer aliases.db # newaliases ou # postalias /etc/postfix/aliases Puis recharger les paramètres de configuration # service postfix reload Autres problèmes ---------------- - les messages externes ne sont pas reçus (ça marche en local sur l'hôte) => vérifier les règles du firewall en local (hôte) : ports smtp (25) et imap (143) en TCP => vérifier EGALEMENT les règles du firewall externe. Sauvegarde des messages enregistrés sur le serveur Postfix ---------------------------------------------------------- Les messages des utilisateurs du serveur sont dans ~/Maildir. Par exemple : - Dossier "Inbox" ~/Maildir/cur - Dossier "Inbox/Stages ~/Maildir/.Stages/cur - Dossier "Inbox/Stages/Toto ~/Maildir/.Stages.Toto/cur etc. Horloge : mise à jour de la date et de l'heure =============================================== http://www.traduc.org/docs/HOWTO/lecture/TimePrecision-HOWTO.html # ntpdate -u ntp1.tuxfamily.net # ou autre addresse de serveur de temps (Paquetage à installer : ntp-client) Pour avoir une heure plus précise --------------------------------- Installer ntpd : # urpmi ntpd Vérifier si le service est damarré : # service ntpd status Si ce n'est pas le cas, le démarrer : # service ntpd start Nb : l'installation de ntpd supprime ntpdate Modifier, si nécessaire, le fichier de configuration /etc/ntpd.conf : par détaut un pool de 12 serveur est interrogé en rotation. Décalage de 2 heures -------------------- Heures différentes : système, hardware, UTC, localtime # clock -> donne l'heure hardware (bios, hw) $ date -> donne l'heure système (sys) Pour changer : # hwclock cf man hwclock Exemple : # date Fri Nov 18 16:54:56 CET 2005 # clock Fri 18 Nov 2005 17:54:56 CET -0.269160 seconds => hardware et system clock sont différents # hwclock --systohc # clock Fri 18 Nov 2005 16:56:07 CET -0.092826 seconds # date Fri Nov 18 16:56:16 CET 2005 Inversement, pour mettre l'heure hardware dans l'heure système : # hwclock --hctosys --localtime --localtime pour indiquer (éventuellement) que l'heure bios est réglée sur l'heure locale --utc temps universel (gmt) Changement de fuseau horaire (timezone) --------------------------------------- Il est prévu (via mcc > Système > Ajuster la date et l'heure, bouton : changer le fuseau horaire) de pouvoir le changer, mais cette option ne semble pas fonctionner. Utiliser plutôt la méthode http://www.wikihow.com/Change-the-Timezone-in-Linux : Les différents fuseaux horaires sont des fichiers que l'on trouve dans /usr/share/zoneinfo Pour la France (Paris) : # cp /usr/share/zoneinfo/Europe/Paris /etc/localtime Puis resynchroniser l'horloge hardware # hwclock --systohc Nb: si cron continue à fonctionner sur l'ancienne heure (dû à l'oubli de "hwclock --systohc" ?) on peut le resynchroniser : # service crond restart Tuer une session X ================== Carte son ========= Statut des modules son dans le kernel °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° # lsmod | grep -i snd Connecteurs de la carte son °°°°°°°°°°°°°°°°°°°°°°°°°°° Code de couleur en principe standard : - vert sortie haut-parleurs (Line out / Speaker output) - rose entrée microphone (Mic) - bleu entrée d'une source son dans l'ordinateur (Line in) Carte son, pilotes °°°°°°°°°°°°°°°°°° mcc indique 2 pilotes possibles pour la carte son. Par exemple, pour la carte VT82C686 [Apollo Super AC97/Audio]: snd-via82xx -> pilote ALSA via82cxxx_audio -> pilote OSS Pour changer de pilote : appuyer sur la barre "Run config tool Pour que le changement soit effectif, il faut redémarrer le système. Commande pour éviter de redémarrer : ? Redémarrer le service son (alsa) en cas de problème *************************************************** #service alsa restart Test de la carte son ******************** # lspcidrake -v | fgrep -i AUDIO -> driver par défaut # grep sound-slot /etc/modprobe.conf -> " actuel # /sbin/lsmod -> teste si le driver est chargé # /sbin/chkconfig --list sound -> teste si les services sound et # /sbin/chkconfig --list alsa alsa sont configurés pour fonctionner en initlevel 3 # aumix -q -> volume on/off # /sbin/fuser -v /dev/dsp -> quel programme utilise la carte son Bugs : MDK10, carte MSI Neo FISR, le pilote installé (snd-intel8x0) est incorrect; le remplacer par celui que Knoppix, lui, autodétecte correctement, i810_audio : # mcc > harware > Soundcard 82801EB AC'97 Audio > Run config tool > Driver Réglage des entrées/sorties son, contrôle du son °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° aumix ou mieux kmix. kmix ++++ Si nécessaire urpmi kmix Boutons (LED) verts et rouges ----------------------------- Mute : bouton vert éteint Déselectionné bouton rouge éteint Volet output ************ Les icônes (triangles en haut à gauche et à droite, signal bleu etc.) n'ont aucun effet. Avec le bouton droit de la souris on obtient cependant un menu contextuel permettant différents réglages. Idem en cliquant sur le curseur. Bouton vert allumé : indique quel son est émis Master ------ Règle le niveau du son en sortie 3D Control-Center ----------------- Voir Volet Switches, "3D control switch" : il faut que la LED jaune soit allumée pour que ce contrôle fonctionne Semble cependant ne pas avoir d'effet sur le son 3D Control-Depth ---------------- Le fait de pousser le curseur vers le haut supprime les basses (son plus "sec") PCM --- = Pulse Code Modulation (technique d'échantillonnage pour digitaliser les signaux analogiques) Même effet que Master !! Pour avoir du son il faut que les LEDS vertes Master et PCM soient allumées PC Speaker ---------- Règle probablement le niveau du son du haut-parleur intégré au PC. Volet input *********** - Les LEDS vertes redirigent les entrées vers la sortie : donc en principe elles doivent être éteintes, sauf par exemple si l'on veut rapidement tester si un microphone fonctionne (si on parle dans le micro, on s'entend dans les écouteurs) - LEDS rouges : entrée en on/off Capture est l'équivalent de PCM sur le volet input ; si la LED rouge est éteinte, aucune entrée fonctionne Line ---- Correspond sans doute à l'entrée Line (connecteur bleu sur la carte). CD __ son provenant du CD/DVD Mic --- Entrée micro (entrée couleur rose sur la carte son) Allumer la LED verte pour que le son passe. LED rouge allumée ou non : pas de différence !! Phone ----- ? Aux --- ? Capture ------- ? Volet Switches °°°°°°°°°°°°°° 3D control switch ----------------- Allumer la LED jaune pour l'effet 3D. Mic Boot (+20dB) ---------------- Augmente beaucoup la sensibilité du micro Video ----- ? Mix --- ? Mix Mono --- ? External Amplifier ------------------ ? Enregistrer des sons -------------------- Audacity Interface réseau ================ http://rak.isternet.sk/linux-netman/commands.html Linux Network Commands http://www.cryptos.ch/article.php3?id_article=38 Vérification - réglage de la carte réseau ----------------------------------------- mii-tool Carte ethernet : si ethernet ne démarre pas, vérifier dans : /etc/sysconfig/network-scripts/ifcfg-eth0 que ONBOOT est à yes (et pas no) Configuration ------------- # netcardconfig (knoppix, debian, kanotix ...) Rem : avec kanotix, pour quitter le programme netcardconfig, cliquer sur le X en haut à doite de la fenêtre. # draknetcenter (Mandriva) ou # drakconnect ou passer par : # mcc NB : la configuration par mcc peut ne pas fonctionner : vérifier avec ifconfig si les paramêtres entrés par mcc sont bien pris en compte. Si ce n'est pas le cas Dans ce cas configurer /etc/sysconfig/network-scripts (voir ci-dessous) Statut des interfaces actives ----------------------------- ifconfig eth0 -> statut de l'interface eth0 ifconfig eth0 down -> arrêter l'interface eth0 ou ifdown eth0 ifup eth0 -> redémarrer l'interface eth0 (et non pas ifconfig eth0 up, voir le man, intéressant) Paramétrage temporaire (il disparaît au reboot de la machine) ------------------------------------------------------------- Attention : le paramétrage effectué avec ifconfig disparaît au reboot de la machine. Pour un paramétrage persistant : # drakconnect ou bien encore mieux, voir /etc/sysconfig/network-scripts ci-dessous Avec la commande ifconfig, entrer l'adresse IP, le masque de sous-réseau, l'adresse de diffusion (broadcast) # ifconfig eth0 netmask 255.255.255.0 broadcast up Broadcast : idem adresse IP, mais se termine par 255 dans le cas d'un masque de sous réseau 255.255.255.0 (CIDR 24) ou 127 dans le cas d'un masque 255.255.255.128 (CIDR 25) Routage ------- Configurer le routage vers la passerelle avec route - la machine passerelle permet de sortir sur internet (gateway) : # route add default gw Pour un paramétrage permanent ----------------------------- Entrer les bons paramètres dans les fichiers qui se trouvent dans : /etc/sysconfig/network-scripts les fichiers : ifcfg-eth0 ifcfg-eth0:x (les alias !) Entrer à la main les valeurs voulues : - Pour une adresse fixe (static) ................................ DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.xx. NETMASK=255.255.255.128 (si masque de sous réseau=255.255.255.128 cad CIDR=25 par exemple) NETWORK=192.168.xx.0 BROADCAST=192.168.xx.127 (si masque de sous réseau=255.255.255.128 cad CIDR=25 par exemple) GATEWAY=192.168.xx.126 (addresse de la passerelle de sortie, par exemple) ONBOOT=yes DOMAIN= - Pour une adresse allouée par dhcp ................................... DEVICE=eth0 BOOTPROTO=dhcp NETMASK=255.255.255.0 ONBOOT=yes METRIC=10 DOMAIN= Puis arrêter (ifconfig eth0 down) et redémarrer (ifup eth0) Enfin vérifier que les valeurs entrées ont été prises en compte (ifconfig). 3 - Mettre l'adresse des serveurs de nom dans /etc/resolv.conf nameserver nameserver .... e.g nameserver 192.168.1.25 Domaine par défaut (Search Domain), mettre aussi : search nom_du_domaine1 nom_du_domain2 ... pour éviter d'avoir à taper le nom complet des machines du domaine local ou des domaines à contacter fréquemment. Attention ! dans les nouvelles versions de Mandriva, un message indique que resolv.conf ne doit pas être modifié à la main. Utiliser la commande "resolconf". Le plus simple : - mettre la configuration voulue dans le fichier /var/run/resolvconf/interface/eth0 (ou autre interface utilisée) - # resolvconf -u pour mettre à jour /etc/resolv.conf 4 - Nom de la machine : à mettre dans /etc/sysconfig/network HOSTNAME=nom-machine NETWORKING=yes Nom de la machine (hostname), "DNS" local ------------------------------------------ Avant de consulter les DNS, les programmes réseau trouvent les adresses dans le fichier /etc/hosts : IPAddress Hostname Alias (faculatatif) Alias 127.0.0.1 titi.u-strasbg.fr titi localhost 130.79.200.1 ns1.u-strasbg.fr ns1 Pour modifier le nom de la machine en "tutu" : - modifier dans /etc/hosts : le champ "Hostname" en "tutu.u-strasbg.fr" (et le suivant en "tutu") - modifier dans /etc/sysconfig/network HOSTNAME=tutu.u-strasbg.fr - Redémarrer le réseau : # service network restart Knoppix ------- netcardconfig Debian ------ Paramétrage permanent : cf. http://david.decotigny.free.fr/libre/ ibook2-debian/etc/network/interfaces http://www.debian.org/doc/manuals/reference/ch-gateway.en.html Editer /etc/network/interfaces : iface eth0-0 inet static address 192.168.0.23 netmask 255.255.255.0 network 192.168.0.0 (facultatif) broadcast 192.168.0.255 gateway 192.168.0.3 dns-nameservers 192.168.0.3 130.28.12.3 Désactiver eth0 : ifconfig eth0 down Activer (lecture de /etc/network/interfaces) : ifconfig eth0 up Tester : ping 192.168.0.3 ping www.google.fr Si pas de réponse, redémarrer le réseau : # /etc/init.d/networking restart et refaire les tests. Affichage / modification des paramètres de l'interface réseau ------------------------------------------------------------- ethtool snmp (imprimantes en particulier) ----------------- snpm = Simple Network Management Protocol cf. http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm#xtocid1 snmpwalk query a network entity for a tree of information (cf. man snmp) Exemple : pour voir les infos d'une imprimante : $ snmpwalk -v 1 -c public nom_ou_IP_de_l'imprimante -system Moniteurs de réseau (network monitoring) --------------------------------------- - iptraf Après installation, le mode d'emploi de iptraf est dans : /usr/share/doc/iptraf-2.7.0/Documentation/menus.html - net_applet Affichage/modification du cache ARP (address resolution protocol) ----------------------------------------------------------------- # arp Cette commande, non suivie d'options, liste les adresses des machines qui sont dans le cache ARP : en général la machine hôte, le routeur et les machines connectées à l'hôte. Pour faire apparaitre une autre machine, faire par exemple un ping vers cette machine et relancer la commande arp. Outils réseau ------------- gnome-nettool Wifi ==== http://www.steletch.org/spip.php?article46&var_recherche=wifi # iwlist wlan0 scan Bridge ====== Administration : brctl # brctl showmacs liste les adresses mac connues Pour voir si une machine est derrière le firewall : # brctl showmacs br0 |grep -i adresse_mac (adresse_mac aura auparavant été récupérée en faisant un ping sur la machine et en lançant arp ensuite). Attention arp retourne les adresse en majuscules, alors que brctl les donne en minuscules, d'où grep -i) Changer de module ================= Exemple : dans le cas du module pilote de l'interface ethernet, pour remplacer driver1 par driver2 : remplacer dans /etc/modules.conf ou dans /etc/modprobe.conf (NB : noyau 2.4 => /etc/modules.conf 2.6 => /etc/modprobe.conf) la ligne : alias eth0 driver1 par alias eth0 driver2 ou, pour des tests rapides # service network stop # rmmod driver1 (supprime le driver1) # modprobe driver2 (mettre à la place le driver2) # service network restart Interfaces réseau inversées suite à un changement de carte mère ---------------------------------------------------------------- Suite à un changement par exemple de carte mère, on peut retrouver le port ethernet en eth1 au lieu de eth0 et le port firewire (IEEE1394) en eth0 au lieu de eth1. Solutions : Mandrake -------- - modifier les alias dans /etc/modprobe.conf cf. ci-dessus Debian/Knoppix, plusieurs solutions (à essayer) : ------------------------------------------------- - nameif ou ifrename pour changer le nom des interfaces réseau - désactiver le port firewire dans le bios (si pas utilisé !) - dans /etc/modprobe.conf : "alias eth1394 off" - echo "eth1394" >> /etc/hotplug/blacklist - dans /etc/modprobe.conf : install eth1394 { /sbin/modprobe sk98lin; /sbin/modprobe --ignore-install eth1394; } (cas d'une interface réseau yukon avec pilote sk98lin par exemple) Modem ===== Installation réseau / modem #drakconnect Configurer les accès réseau Pour le modem : lancer (ou installer si ce n'est déjà fait et lancer) kppp Le débit est beaucoup plus lent que sous windows. D'après http://forums.knoppix-fr.org/viewtopic.php?id=9564 on peut améliorer avec : - contrôle logiciel du flux au lieu du contrôle matériel - vitesse de connexion à 115200 A vérifier ! Serveur web =========== Placer le fichier de départ (Fichier par défaut : index.html) dans : /var/www/html Créer les utilisateurs et groupes ================================= Gestion des utilisateurs : http://support-info.fr/articles.php?lng=fr&pg=128 # userdrake useradd, cf. http://www.ahinc.com/linux101/users.htm#Adding a new user # useradd -d home directory -s starting program (shell) -p password -g (primary group assigned to the users) -G (Other groups the user belongs to) -m (Create the user's home directory Voir aussi usermod, userdel, passwd Informations stockées dans /etc/passwd et /etc/group Ajouter un utilisateur à un groupe (en ligne de commande) -------------------------------------------------------- # usermod -G NomDuGroupe NomUtilisateur ou bien éditer /etc/group (les utilisaturs sont séparés par des virgules) Afficher l'identité de l'utilisateur et son appartenance à des groupes ---------------------------------------------------------------------- id groups ATTENTION ! après affectation d'un utilisateur à un groupe, il faut que celui-ci se reconnecte pour que la modification soit prise en compte dans sa session !! Mots de passe et infos utilisateur ================================== cf. http://www.tldp.org/LDP/lame/LAME/linux-admin-made-easy/shadow-file-formats.html Voir /etc/password Les mots de passe cryptés sont stockés dans /etc/shadow : The ``/etc/shadow'' file contains password and account expiration information for users, and looks like this: smithj:Ep6mckrOLChF.:10063:0:99999:7::: As with the passwd file, each field in the shadow file is also separated with ":" colon characters, and are as follows: Username, up to 8 characters. Case-sensitive, usually all lowercase. A direct match to the username in the /etc/passwd file. Password, 13 character encrypted. A blank entry (eg. ::) indicates a password is not required to log in (usually a bad idea), and a ``*'' entry (eg. :*:) indicates the account has been disabled. The number of days (since January 1, 1970) since the password was last changed. The number of days before password may be changed (0 indicates it may be changed at any time) The number of days after which password must be changed (99999 indicates user can keep his or her password unchanged for many, many years) The number of days to warn user of an expiring password (7 for a full week) The number of days after password expires that account is disabled The number of days since January 1, 1970 that an account has been disabled A reserved field for possible future use Changer le mot de passe ----------------------- $ passwd et répondre aux questions Sinon : K > System > Configuration > Control Centre > Security & Privacy > Password & User Account Ou plus simple : $ kcontrol puis Security & Privacy > Password & User Account Vérouiller un mot de passe -------------------------- # passwd -l Locking password for user . passwd: Success Dévérouiller ------------ # passwd -u Unlocking password for user . passwd: Success. Supprimer le mot de passe ------------------------- # passwd -d Removing password for user . passwd: Success Créer/changer le mot de passe d'un utilisateur ---------------------------------------------- # passwd et répondre aux questions. Supprimmer l'utilisateur par défaut (dont la session s'ouvre sans mot de passe !), autologin Démarrer/ne pas démarrer avec l'interface graphique -------------------------------------------------------------------------------------------- # mcc Aggrandir, si nécessaire la fenêtre de façon à voir tous les boutons. Cliquer sur le bouton [BOOT] (le dernier en bas de la fenêtre) et configurer. Créer un nouvel utilisateur sous KDE ==================================== # userdrake Connaître les utilisateurs connectés ==================================== w Copie de fichiers ----------------- scp utilisateur@PCsource:fichiersource nom_utilisateur@PCdestination:fichier_destination Possibilité de changer à la volée le type de codage : 3des (défaut), blowfish, des En cas de machine ou réseau lent : scp -c blowfish (la suite comme ci-dessus) Infos système ============= uname -a Retourne les infos système (kernel, machine, etc...) Information sur les périphériques SCSI et USB : ---------------------------------------------- cat /proc/scsi/scsi Périphériques USB (et autre ieee ?) =================================== usbview Hotplug est le service qui permet de connecter à chaud des périphériques et de les utiliser immédiatement (cf. http://linux-hotplug.sourceforge.net). Vérifier si le noyau est prévu avec hotplug : $ cat /proc/sys/kernel/hotplug /sbin/hotplug En cas de problème, quelques contrôles ------------------------------------- http://www.linux-usb.org/ - Voir si hotplug est installé # cat /proc/sys/kernel/hotplug /sbin/hotplug - Voir s'il a fonctionné : il doit y avoir un répertoire usb dans /proc/bus/usb # ls /proc/bus input/ pci/ (pas de répertoire usb !) - Voir le statut du service hotplug # /etc/rc.d/init.d/hotplug status | grep -i usb USB Status for kernel: Linux 2.6.8.1-12mdk i686 usbfs is unavailable. USB may be statically linked. If khubd is running, that shows USB is available. - Voir si khubd tourne : # ps aux |grep khubd root 7162 0.0 0.0 0 0 ? S 14:36 0:00 [khubd] - Voir les éventuels messages d'erreur au lancement de hotplug # /etc/rc.d/init.d/hotplug restart /etc/hotplug/usb.rc: line 230: [: -lt: unary operator expected - Vérifier si le périphérique USB est détecté Connecter/déconnecter le périphérique. Des messages système sont envoyés. Les visualiser avec l'une ou l'autre des commandes suivantes : # dmesg # tail -f /var/log/syslog (MDK : les mêmes messages apparaissent avec dmesg et tail Knoppix : les messages ne sont visibles qu'avec dmesg) Exemple, dans le cas d'un USB qui fonctionne : # dmesg ..... usb 1-1: new full speed USB device using address 2 SCSI subsystem initialized Initializing USB Mass Storage driver... scsi0 : SCSI emulation for USB Mass Storage devices Vendor: IC35L060 Model: AVVA07-0 Rev: VA3O Type: Direct-Access ANSI SCSI revision: 02 USB Mass Storage device found at 2 usbcore: registered new driver usb-storage USB Mass Storage support registered. SCSI device sda: 120103200 512-byte hdwr sectors (61493 MB) sda: assuming drive cache: write through /dev/scsi/host0/bus0/target0/lun0: p1 p2 Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 - Si rien ne fonctionne : Vérifier la présence (ou rajouter à la main) ces 2 lignes dans /etc/modprobe.conf install usb-interface /sbin/modprobe usb-uhci; /sbin/modprobe ehci-hcd; /bin/true Créer ou éditer /etc/modprobe.preload et mettre (si cela n'y est pas), une ligne : usb-storage Trouver le device utilisé par un périphérique et monter ce périphérique ------------------------------------------------------------------------ cat /proc/scsi/scsi Repérer dans le résultat de cette commande ce qui correspond au périphérique recherché, par exemple Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: PIONEER Model: DVD-RW DVR-105 Rev: 1.00 Type: CD-ROM Chercher avec Konqueror dans le répertoire /dev/scsi le device correspondant, dans ce cas : /dev/scsi/host1/bus0/target0/lun0/cd Monter le périphérique : mount -t iso9660 /dev/scsi/host1/bus0/target0/lun0/cd /mnt/dvd Mettre dans /etc/fstab la commande ad hoc USB avec diskdrake -------------- Lancer diskdrake Un disque usb apparaît généralement comme disque sda, les partitions comme sda1, sda2, etc. Monter le disque à partir de diskdrake, ou mieux créer à la main les entrées ad-hoc dans fstab (diskdrake réorganise tout fstab et supprime les commentaires éventuels qui auraient pu y être écrits !) Trouver le device utilisé par un périphérique --------------------------------------------- mcc > Hardware > hardware list Voir et monter les disques -------------------------- A condition que fstab soit correct, kdf permet de monter/démonter les disques et voir le % d'utilisation de chaque disque. Mise à jour des menus ===================== $ update-menus Si ça ne marche pas (voir BUGS en fin de man update-menus) : # update-menus Pour que les menus soient mis à jour, relancer X (KDE) Voir aussi les fichiers ".desktop" dans /usr/share/applications/ Modification "à la main" du menu K ---------------------------------- Clic droit sur K > Menu Editor ou en ligne de commande : $ kmenuedit Spécifique debian ================= Installer un programme: -------------------------- dselect Changement de résolution écran ============================== Xdrakres Samba ===== Installation ------------ # urpmi samba Version installée ----------------- $ net -V ou $ net --version Aide ---- # samba help # samba --help Usage: /usr/sbin/samba {start|stop|restart|status|condrestart} - "Voisinage réseau" -------------------- $ findsmb # findsmb (Nb : sous MDV 2007 findsmb s'appelle mainteantn findsmb3 $ findsmb3 sh: /usr/bin/nmblookup: No such file or directory => petit bug facile à corriger : $ sudo ln /usr/bin/nmblookup3 /usr/bin/nmblookup) $ smb4K (Samba browser pour KDE) Idem ci-dessus : dans MDV 2007 : "the following programs missing on your system: smbclient, smbspool" Même correction : $ sudo ln /usr/bin/smbclient3 /usr/bin/smbclient $ sudo ln /usr/bin/smbspool3 /usr/bin/smbspool $ LinNeighborhood Sous konqueror : smb:/ Sous konqueror : lan:/ (les "Workgroups" ne sont pas affichés) - Tester l'état du service samba -------------------------------- # service smb status smbd (pid 2114) is running... nmbd (pid 2124) is running... ou bien # samba status smbd (pid 7403 7393) est en cours d'exéution... nmbd (pid 7407) est en cours d'exécution... - Démarrer, redémarrer ---------------------- start, restart # service smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] ou bien # samba start Se connecter à une disque Windows externe ----------------------------------------- $ smbclient //pc/partage smb: \> $ smbclient //pc/partage -U smb: \> Monter un disque Windows externe -------------------------------- "toto" est l'utilisateur Windows : En simple utilisateur : $ mkdir -p ~/mnt/disk $ smbmount //nom-machine_ou-N°IP/nom_partage ~/mnt/disk $ smbmount //nom-machine_ou-N°IP/nom_partage ~/mnt/disk -o username=toto Pour démonter, en simple utilisateur : $ smbumount ~/mnt/disk En root avec la commande mount : # mount -t smbfs //nom-machine_ou-N°IP/nom_partage /mnt/disk # mount -t smbfs -o username=toto //nom-machine_ou-N°IP/nom_partage /mnt/disk (sous MDV 2007 : # mount -t cifs -o username=toto //nom-machine_ou-N°IP/nom_partage /mnt/disk) Pour autoriser l'utilisateur (linux) "bibi" à accéder au montage : # mount -t smbfs -o username=toto,users,uid=bibi //nom-machine_ou-N°IP/nom_partage /mnt/disk ou si on préfère, dans fstab (ici avec le mot de passe en clair, beurk !) : //nom_machine/nom_partage /point/de/montage smbfs username=toto,password=le_mot_de_passe ou encore avec login et mot de passe dans un fichier accessible uniquement par root et contenant : username = toto password = le_mot_de_passe # mount -t smbfs -o credentials=/le/nom/de/ce/fichier //nom-machine_ou-N°IP/nom_partage /mnt/disk idem pour fstab : //nom_machine/nom_partage /point/de/montage smbfs -o credentials=/le/nom/de/ce/fichier Ajouter uid et gid de l'utilisateur pour qu'il puisse avoir les droits sur le point de montage (uid/gid donnés par la commande id). //nom_machine/nom_partage /point/de/montage cifs credentials=le/nom/de/ce/fichier, rw, iocharset=utf8, uid=mon_uid, gid=mon_gid 0 0 - Partager un répertoire (c.a.d. pouvoir accéder, à partir d'un PC Windows, à un répertoire résidant sur le PC linux ) ------------------------------------------------------------------------------------------------------- Editer le fichier de configuration /etc/samba/smb.conf et ajouter le répertoire à partager selon les exemples donnés dans ce fichier (voir à la fin du fichier). Vérifier éventuellement s'il n'y a pas d'erreur dans le fichier smb.conf : # testparm Relancer samba pour prendre en compte les modifications # samba restart ou encore : # service smb restart Samba n'utilise pas les mots de passe du système. Il a son propre fichier de mots de passe (/etc/samba/smbpasswd) Entrer le nom d'utilisateur et son mot de passe (sera mémorisé crypté dans /etc/samba/smbpasswd) # smbpasswd -a NomUtilisateur et répondre aux questions (c'est à dire entrer 2 fois le mot de passe) NB : il faut que "NomUtilisateur" ait un compte sur la machine, sinon smbpasswd répond : "Failed to modify password entry for user NomUtilisateur" Voir quels sont les utilisateurs pourvus d'un mot de passe : # cat /etc/samba/smbpasswd Vérifier que le fichier de mots de passe est bien en lecture/écriture _uniquement_ pour root : $ ls -al /etc/samba/smbpasswd -rw------- 1 root root 102 Jan 3 1996 /etc/samba/smbpasswd Si ce n'etait pas le cas, mettre les droits corrects : # chmod 600 /etc/samba/smbpasswd Il est inutile de relancer samba pour que les nouveaux mots de passe soient pris en compte. Se connecter à partir du PC windows. Erreur "incorrect password or unknown username" => vérifier que le mot de passe des utilisateurs potentiels a été entré, cf. smbpasswd ci-dessus. Sous W$ : "Attempt to connect to \\serveur_linux\Repertoire_partagé" "The network path \\serveur_linux\Repertoire_partagé could not be found" => vérifier que le firewall ne bloque pas la connexion. Par exemple, avec shorewall, rajouter dans /etc/shorewall/rules AllowSMB net fw et redémarrer shorewall (sudo shorewall restart) Le partage peut également être fait à partir de konqueror : pointer le fichier, click droit, propriétés, partage ; mais c'est finalement plus compliqué et moins précis dans les permissions que d'éditer le fichier smb.conf. Problème de différence de jeux de caractères entre Linux et Windows ------------------------------------------------------------------- Peut se régler dans /etc/samba/smb.conf Voir paragraphe "File Naming Options:" et "Enabling internationalization:" Exemple : dos charset = 1252 case sensitive = Yes unix charset = ISO8859-15 (à adapter suivant les systèmes utilisés) Documentation :http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/unicode.html Netatalk (réseau Mac Intosh) ============================ http://www.megaoctet.net/howto_netatalk.pdf http://www.mandrakeuser.org/docs/connect/cnatalk.html http://netatalk.sourceforge.net Doc locale : ------------ /usr/share/doc/netatalk-x.x.x Version ------- # atalkd -v Paramétrage et utilisation de netatalk ______________________________________ Démarrer/arréter le serveur ... service atalk start restart stop status (Debian : /etc/init.d/netatalk start) Pour savoir si netatalk fonctionne et avoir la liste des MACS accessibles : nbplkup Le service est très long à démarrer (~ 30 secondes). Pour éviter d'avoir à attendre lors du reboot de la machine changer dans /etc/netatalk/netatalk.conf : ATALK_BGROUND=no en ATALK_BGROUND=yes (Debian : /etc/default/netatalk) Les services : papd: AppleTalk printer daemon (pap = Printer Access Protocol) atalk: atalk - AppleTalk protocol family atalkd - AppleTalk RTMP, NBP, ZIP and AEP manager RTMP - Routing Table Maintenance Protocol NBP - Name Binding Protocol ZIP - Zone Information Protocol AEP - AppleTalk Echo Protocol afpd: AFP = AppleTalk Filing Protocol Configuration ______________ Fichiers de configuration dans /etc/netatalk Autoriser l'accès aux répertoires --------------------------------- /etc/netatalk/AppleVolumes.default Créer sur le serveur un/des volume(s) accessibles par les Mac -> ajouter dans le fichier /etc/netatalk/AppleVolumes.default #Nom du partage sur le serveur Nom du partage présenté au Mac login des utilisateurs et/ou groupes autorisés /shares/Mac_Pub "Zone commune MAC-PC" allow:toto, groupe_truc Autoriser la connexion en "guest" (invité) ------------------------------------------ /etc/netatalk/afpd.conf Ajouter : -uamlist uams_guest.so dans le fichier de configuration /etc/netatalk/afpd.conf Autoriser l'accès avec login et mot de passe -------------------------------------------- Créer (ou utiliser le login) d'un utilisateur Linux (# userdrake) Le mot de passe pour netatalk est celui de cet utilisateur NB : dans l'installation du rpm netatalk-1.6.4xxx.mdk la ligne (dans le fichier /etc/netatalk/afpd.conf) : - -transall -uamlist uams_dhx.so -nosavepassword désactive le mot de passe en clair ce qui fait que sans ajout sur les Macs des outils ad-hoc de cryptage il est impossible de se connecter. Pas très sécurisé, mais acceptable derrière un firewall : mettre en commentaire la ligne : - -transall -uamlist uams_dhx.so -nosavepassword -noslp pour que les valeurs par défaut : - -transall -uamlist uams_clrtxt.so,uams_dhx.so -nosavepassword soient utilisées (cf. le commentaire dans le fichier) Droits d'accès -------------- Ne pas oublier d'autoriser l'accès à ce(s) volume(s) : -> mettre les droits ad-hoc sur le(s) volume(s) partagé(s) Interdire l'accès au Home directory ----------------------------------- /etc/netatalk/AppleVolumes.default Dans AppleVolumes.default, en fin de fichier supprimer ou mettre en commentaire le ~ Ports utilisés par AppleTalk ---------------------------- cat /etc/services | grep -i apple at-rtmp 201/tcp # AppleTalk routing at-nbp 202/tcp # AppleTalk name binding at-echo 204/tcp # AppleTalk echo at-zis 206/tcp # AppleTalk zone information echo 4/ddp # AppleTalk Echo Protocol En fait il semble qu'il ne soit nécessaire d'ouvrir que le port 548 : AppleTalk Filing Protocol (AFP) 548 TCP (UDP ne semble pas indispensable) Installation de netatalk (netatalk-2.0.1) sur MDK 9.1 (et autres versions de MDK ?) ______________________________________________________________________ - Télécharger la dernière version de netatalk (en l'occurrence netatalk-2.0.1.tar.bz2) sur : http://netatalk.sourceforge.net/ - Décompresser : tar -jxvf netatalk-2.0.1.tar.bz2 Le mode d'emploi (mal foutu, opinion personnelle) est dans netatalk-2.0.1/doc - Installer Berkeley DB Comme indiqué dans la doc de netatalk Berkeley DB version 4.1.25 ou 4.2.52 doivent être présents. Si ce n'est pas le cas, récupérer les sources (db-4.2.52.tar.gz) sur le site http://www.sleepycat.com/download/db/index.shtml Décompresser. Lire la doc : son installation est très bien expliquée et ne pose aucun problème. NB : j'ai essayé la dernière version Berkeley DB (4.3) : netatalk-2.0.1 la refuse à la compilation. - Installer netatalk : # ./configure --with-bdb=/usr/local/BerkeleyDB.4.2/include --enable-redhat * Avec --with-bdb il faut passer le path du répertoire contenant db.h (sinon on obtient un message d'erreur indiquant que Berkeley DB n'a pas été trouvé) * Configurer avec --enable-redhat ce qui permet une installation des scripts de démarrage au bon endroit (/etc/rc.d/init.d/) Puis # make # make install Le login et le mot de passe sur Apple sont ceux d'utilisateurs déclarés sur la machine Linux. Ne pas oublier de mettre les bons droits d'accès (Linux) sur les partages qui sont déclarés dans AppleVolumes.default. Les fichiers de configuration sont dans /usr/local/etc/netatalk (et non pas dans /etc/netatalk) comme avec la version rpm de netatalk-1.6xxx. Configurer les fichiers AppleVolumes.default et afpd.conf à sa convenance : - afpd.conf On peut laisser tout en commentaires comme ci-dessous ou modifier la dernière ligne à sa convenance : # default: # - -transall -uamlist uams_clrtxt.so,uams_dhx.so -nosavepassword - /etc/netatalk/netatalk.conf Pas grand chose à modifier non plus, si ce n'est supprimer éventuellement des services inutiles et mettre : # Control whether the daemons are started in the background ATALK_BGROUND=yes pour éviter l'attente (~ 30 sec) au démarrage des services netatalk. - /etc/netatalk/AppleVolumes.default Y déclarer les volumes à partager (1 ligne unique par volume) de la façon suivante : /chemin/vers/partage "partage sur monserveur" allow:toto, groupe_truc dbpath:/chemin/vers/partage * /chemin/vers/partage : chemin vers le volume accessible * "partage sur monserveur" : chaîne de caractères qui s'affiche sur le mac, à mettre entre "" s'il y a des espaces * allow:toto, groupe_truc : utilisateurs et groupes autorisés * dbpath:/chemin/vers/partage : emplacement où netatalk crée automatiquement un répertoire .AppleDB dans lequel il stocke les bases de données. ATTENTION !!! Pour une raison incompréhensible il existe déjà un répertoire .AppleDB à cet endroit (avec les droits rw pour les utilisateurs déclarés) qui bloque la connexion à /chemin/vers/partage !? Le partage apparaît dans le sélecteur du Mac mais il n'est pas possible d'y accéder (partage en grisé non cliquable ou message d'erreur). Ma solution : renommer .AppleDB en n'importe quoi (.AppleDB.bak par exemple) et mettre comme cible de dpath /chemin/vers/partage : un nouveau .AppleDB est recréé au même endroit et tout fonctionne correctement. (Re)lancer netatak : # service atalk restart Installation de Netatalk sur une MDV LE 2005 à partir des rpm ------------------------------------------------------------- Problème observé avec netatalk (version 2.0.1-1.mdk ou 2.0.3-3.mdk) - client Mac OS 8.1 : met une bonne minute à répondre "No response from the server" - client Mac OS9.2 : affiche indéfiniement la fenêtre "Connection status, Connecting nom_du_serveur" : il faut alors appuyer sur "Cancel" pour avoir un message "Switching back to Appletalk" et pouvoir se connecter au serveur. Cause : connexion bloquée par le firewall, cf. ci-dessous Installation de Netatalk 2.0.3 à partir des sources ------------------------------------------------------ Installer BerkeleyDB.4.2 comme décrit ci-dessus. Après installation de BerkeleyDB.4.2, la compil de netatalk 2.0.3 pose problème : $ ./configure --with-bdb=/usr/local/BerkeleyDB.4.2/include/ --enable-redhat .... checking for Berkeley DB link (-ldb-4.2)... no checking for Berkeley DB link (-ldb42)... no ... configure: error: Berkeley DB library required but not found! Pour que la librairie soit trouvée : $ ./configure --with-bdb=/usr/local/BerkeleyDB.4.2/include/ --libdir=/usr/local/BerkeleyDB.4.2/lib/ --enable-redhat La suite se passe sans problème. Après avoir configuré comme indiqué ci-dessus les fichiers : /usr/local/etc/netatalk/netatalk.conf /usr/local/etc/netatalk/AppleVolumes.default /usr/local/etc/netatalk/afpd.conf relancer netatalk, non pas avec : # service atalk restart qui génère une série d'erreurs : "Unregistering nom_serveur:Workstation: Can't unregister nom_serveur:Workstation@* [ECHEC ] Unregistering nom_serveur:netatalk: Can't unregister nom_serveur:netatalk@* [ECHEC ] Stopping atalk: [ OK ] Stopping afpd: [ECHEC ] Stopping cnid_metad: [ECHEC ]" mais par : # service atalk stop # service atalk start Penser, en cas de blocage du client, à un problème de firewall ! Netatalk et firewall -------------------- Pour voir quels sont les ports à ouvrir : # tail -f /var/log/messages Repérer les accès refusés. En connaissant le n°IP du Mac qui se connecte : # grep N°IP /var/log/messages et configurer le firewall en conséquence (port 548 TCP) Voisinage réseau ================ smb4k LinNeighborhood Sous konqueror : smb:/ lan:/ Contrôle, vérification, de l'intégrité de fichiers ================================================== md5sum ------ md5sum affiche la somme de contrôle du fichier Exemple : $ md5sum /etc/mandriva-release 28df2767da1f55de428554336d12d6dd /etc/mandriva-release $ md5sum /etc/mandriva-release > mandriva-release.md5 $ md5sum -c mandriva-release.md5 /etc/mandriva-release: OK md5deep -------- Contrôle récursif. Exemple : $ md5deep -r /etc/sysconfig/console b1618ca5fefd99c3190feeaa839f577a /etc/sysconfig/console/default.kmap d7f193020e48d68e052821da8531f3da /etc/sysconfig/console/consolefonts/lat0-16.psfu.gz $ md5deep -re /etc/sysconfig/console > console.md5deep $ md5sum -c console.md5deep /etc/sysconfig/console/default.kmap: OK /etc/sysconfig/console/consolefonts/lat0-16.psfu.gz: OK Gravure de CD et images iso =========================== http://guides-info.org/linux/applis/gravure.php#gravure_commande http://jipe.homelinux.org/trucs_en_vrac/dvd.html NB sous MDV 8, noyau 2.6 mkisofs -> genisoimage cdrecord -> wodim même utilisation, même commandes. L'utilisation de wodim est plus simpe que cdrecord, voir plus loin "Graver avec wodim" Visualiser le contenu d'une image iso ************************************* mount -t iso9660 -o ro,loop=/dev/loop0 image.iso /mnt/disk Créer une image iso à partir d'un ensemble de fichiers ****************************************************** mkisofs est maintenant remplacé par genisoimage. Même syntaxe. $ mkisofs -o NomDuFichier.iso -v -r -J -force-rr -iso-level 4 RepertoireàTraiter/ -v verbose -R extension rockridge ou mieux -r (en plus droits à zéro) -J extension Joliet -force-rr pour que Nero veuille bien graver l'image !! -iso-label 4 : moins de limitations (cf man mkisofs) Pour une image destinée à être gravée sur DVD : $ mkisofs -J -r -v -udf -o NomDuFichier.iso RepertoireàTraiter/ ATTENTION !! -udf crée un DVD au format UDF illisible sous windows toutes versions confondues (2000, XP, Vista et 7) => utiliser plutôt la commande sans -udf: $ genisoimage -J -r -v -o NomDuFichier.iso RepertoireàTraiter/ Attention : les caratères que mkisofs ne sait pas interpéter (é par exemple) dans les noms de fichiers ou répertoires sont remplacés par _ ! Voir le man mkisofs à charset Créer une image iso à partir d'un CD ou DVD ******************************************* A essayer : dd if=/dev/cdrom of=image.iso Graver une image iso ******************** Afficher le(s) périphériques de gravure SCSI -------------------------------------------- $ cdrecord -scanbus dans le cas d'un graveur ATA : $ cdrecord dev=ATA -scanbus (NB "ATA" en majuscules, sinon message d'erreur !!) scsibus0: 0,0,0 0) * 0,1,0 1) * 0,2,0 2) 'SONY ' 'DVD RW AW-G170A ' '1.71' Removable CD-ROM 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * Inscrire la valeur retournée dev= des commandes ci-dessous Information sur le CD/DVD inséré -------------------------------- $ cdrecord -atip dev=ATA:0,2,0 WARNING: the ATA: method is considered deprecated on modern kernels! Use --devices to display the native names. Device type : Removable CD-ROM Version : 0 Response Format: 2 Capabilities : Vendor_info : 'SONY ' Identification : 'DVD RW AW-G170A ' Revision : '1.71' Device seems to be: Generic mmc2 DVD-R/DVD-RW. Using generic SCSI-3/mmc DVD-R(W) driver (mmc_mdvd). Driver flags : SWABAUDIO BURNFREE Supported modes: PACKET SAO-dvd-compat HINT: use dvd+rw-mediainfo from dvd+rw-tools for information extraction. Pour un dvd : $ dvd+rw-mediainfo /dev/dvd $ cdrdao disk-info --device ATA:1,0,0 Effacer un CDRW (attention à la vitesse ! ----------------------------------------- # cdrecord -v speed=4 dev=0,3,0 blank=fast (ou =all) cas d'un graveur ATA : # cdrecord -v speed=4 dev=ATA:0,3,0 blank=fast Noyau 2.6 : en principe wodim est correctement positionné sur /dev/cdrom cf. /usr/share/doc/cdrkit/READMEs/README.ATAPI.setup il n'est plus indispensable d'indiquer le device # wodim -v blank=fast NB : les DVD+RW ne sont pas effaçables, wodim -v blank=fast affiche un message d'erreur : "wodim: Cannot blank disk, aborting." On peut simplement graver une image par dessus. Graver une image iso (image.iso) sur un CD ----------------------------------------- # cdrecord -v speed=4 dev=0,3,0 -data image.iso cas d'un graveur ATA : # cdrecord -v speed=4 dev=ATA:0,3,0 -data image.iso Graver une image iso (image.iso) sur un DVD ------------------------------------------ # growisofs -Z /dev/cdrom=image.iso -Z session initiale -M ajouter une session -speed=n fixer la vitesse Contrôler l'image gravée ------------------------ Soit /dev/cdrom le périphérique lecteur de CD : # md5sum /dev/cdrom et comparer la somme de contrôle avec celle donnée pour le fichier iso. Mais les sommes de contrôle peuvent ne pas correspondre (semble ne se produire qu'avec les dvd ?) : la gravure peut en effet excéder la taille de l'iso, en général pour ajuster la gravure à un multiple de la taille d'1 bloc. Autres solutions : 1- dd if=/dev/cdrom | cmp image.iso (à voir, semble ne pas marcher) ou 2 - Monter l'image iso et le CD (ou DVD) : mount -t iso9660 -o ro,loop=/dev/loop0 image.iso /mnt/disk mount -t iso9660 /dev/hda /mnt/cdrom Contrôler avec diff ou kdiff : diff /mnt/disk /mnt/cdrom & kdiff3 /mnt/disk /mnt/cdrom & Contrôler une image iso téléchargée ----------------------------------- md5sum -c NomDuFichierContenantLaSommeDeControle Créer une somme de contrôle d'un fichier ---------------------------------------- md5sum NomDuFichier > NomDuFichierContenantLaSommeDeControle Logiciels graphiques de gravure ------------------------------- k3b brasero Problèmes /bugs °°°°°°°°°°°°°°° Gravage impossible : Avec cdrecord -------------- # cdrecord -scanbus .... Linux sg driver version: 3.5.27 Using libscg version 'schily-0.8'. scsibus1: 1,0,0 100) 'SONY ' 'DVD RW AW-G170A ' '1.71' Removable CD-ROM .... Puis : # cdrecord -v speed=4 dev=1,0,0 -data fichier.iso cdrecord: No write mode specified. cdrecord: Asuming -tao mode. ... TOC Type: 1 = CD-ROM scsidev: '1,0,0' scsibus: 1 target: 0 lun: 0 cdrecord: No such file or directory. Cannot open '/dev/sg*'. Cannot open SCSI driver. cdrecord: For possible targets try 'cdrecord -scanbus'. cdrecord: For possible transport specifiers try 'cdrecord dev=help'. => cf. http://www.linuxquestions.org/questions/showthread.php?t=229069 il semble que l'émulation SCSI ne fonctionne pas avec certains kernels 2.6, ici : # uname -sr Linux 2.6.12-12mdk => solution(s) - Mettre éventuellement le noyau à jour : # urpmi kernel (et redémarrer) - Ne pas utiliser l'émulation SCSI : # cdrecord -v speed=4 dev=/dev/hdc -data fichier.iso (/dev/hdc ou autre device lié au graveur) Graver avec wodim ----------------- $ wodim -v blank=fast pour effacer un réinscriptible $ wodim -v -data fichier.iso pour graver le fichier iso Problèmes divers avec K3b ------------------------- k3b: ERROR: (K3bDevice::Device) Unable to do inquiry. => tout simplement rajouter dans le groupe cdrom (cdwriter dans les nouvelles version de MDV)les utilisateurs qui doivent utiliser k3b !! Editer le fichier /etc/group et modifier la ligne : cdwriter:x:80:utilisateur1,utilisateur2,utilisateur3 Message d'erreur au > démarrage : "No CD/DVD writer found." Idem : même solution que ci-dessus Il sera peut-être nécessaire de rebooter (à vérifier) Graver des répertoires sur un DVD ================================= voir le man de genisoimage ou growisofs Graver un volume ISO9660 + Joliet + Rock-Ridge # growisofs -Z /dev/cdrom -R -J /some/files Ajouter des données # growisofs -M /dev/cdrom -R -J /more/files Finaliser un DVD multisessions # growisofs -M /dev/cdrom=/dev/zero # Graver une image growisofs -Z /dev/cdrom=image.iso Installation/désinstallation de paquetages, mises à jour ======================================================== http://lea-linux.org/software/rpm.php3 http://www.urpmi.org/fr/urpmi_first_fr.php http://personal.riverusers.com/~thegrendel/build-4.html#ss4.1 (=Whats wrong with rpms?) http://www.mandrakehelp.com/RPM-HOWTO.html#1.2 http://speculation.org/garrick/urpmifaq.txt rpm, urpm* en mode graphique, mcc, kpackage rpm === http://www.pcentraide.com/index.php?showtopic=175 Commande / syntaxe rpm Installer # rpm -i nom_paquet.rpm Désintaller # rpm -e nom_paquet.rpm Mise a jour # rpm -U nom_package.rpm Vérifier qu'un paquetage est bien installé ------------------------------------------ $ rpm -V NomDuPaquet rpm -q (ou --query} -------------------------------------------- rpm -qa (-a ou --all) affiche tous les paquets installés rpm -qf foo (-f ou --file) Retourne les paquets contenant le fichier foo rpm -ql paquet (-l ou --list) liste les fichiers contenu dans le paquet rpm -qR paquet (-R ou --requires) liste les paquets nécessaires pour ce paquet (dependances) rpm -qd paquet (-d ou --docfiles) liste uniquement les fichiers de documentation rpm -q --dump paquet infos complètes sur les fichiers rpm -qi paquet infos complètes sur le paquet rpm -q --provides paquet List capabilities this package provides (?) version et libs ? Exemples : - retourne la liste des rpm apache installés $ rpm -qa | grep apache - cherche dans quel paquet se trouve un logiciel : $ rpm -qf $(which perl) perl-base-5.8.8-6mdk $ rpm -qf $(which vmstat) procps-3.2.7-2mdv2007.1 - retourne la liste des fichiers contenus dans les paquets qui contiennent /bin/bash $ rpm -ql $(rpm -qf $(which bash)) - retourne la liste des applis installées, derniers installés en tête $ rpm -qa --last Rechercher et désinstaller un package ------------------------------------- $ rpm -qa nuke PHP-nuke-6.0-1mdk # rpm -e foo <- désinstalle le package foo-x.y.rpm Remplacer, mettre à jour une package ------------------------------------ # rpm -Uvh foo <- installe ou remplace # rpm -Fvh foo <- remplace (mise à jour d'une version préexistante) Remet une package plus ancien : # rpm -Uvh --replacepkgs --nodeps --oldpackage foo.rpm Afficher les dépendances d'un programme ----------------------------------------- Exemple : $ rpm -qR man (-R ou --requires) groff-for-man setup rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 bash libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.3) Rpm "source" (appli.src.rpm) ---------------------------------------------------- cf. http://www.rpm.org/max-rpm/s1-rpm-miscellania-srpms.html Pour recompiler le paquet en tenant compte de l'environnement : rpm --rebuild appli.src.rpm urpm* ===== urpmf ----- Liste les paquets qui contiennent la chaîne passée en argument. NB : il faut que hdlist soit présent, sinon message d'erreur "Note: no hdlist for medium "Main Updates (Official2008.0-1)Mandriva Linux - 2008.0-1)" , unable to return any result for it". Dans ce cas, utiliser urpmq -y (ou urpmq --fuzzy) $ urpmf /usr/bin/kwrite kdebase-progs:/usr/bin/kwrite kdebase-progs:/usr/bin/kwriteconfig $ urpmf avicat avifile-samples:/usr/bin/avicat avifile-samples:/usr/share/man/man1/avicat.1.bz2 urpmi ----- Configurer les sources : plusieurs méthodes : - http://easyurpmi.zarb.org - K -> Configuration -> Packaging -> Software source manager Par exemple menu remove medium pour retirer un CD - urpmi.setup : Pour recharger un CD : urpmi.addmedia CD1_MK9 removable://mnt/cdrom_ide /var/lib/urpmi cf. #urpmi.addmedia Pour ajouter une source ftp (ou http) urpmi.addmedia contrib ftp://ftp.u-strasbg.fr/pub/linux/distributions/mandrake/9.0/contrib/RPMS Pour mettre à jour la base des sources # urpmi.update --all (urpmi.update -a à partir de MDK10) La liste des sources est dans /etc/urpmi/urpmi.cfg La liste des logiciels et les index sont dans /var/lib/urpmi/ Dévérouiller la base de donnée urpmi : supprimer le fichier /var/lib/urpmi/LOCK Pour supprimer toutes les sources # urpmi.removemedia -a Pour installer un paquetage --------------------------- Exemple # urpmi kdenet (recherche les paquets qui contiennent "kdenet") The following packages contain kdenet: kdenetwork-devel kdenetwork kdenetwork-kppp # urpmi kdenetwork et répondre aux questions Pour installer automatiquement les mises à jour ----------------------------------------------- # urpmi --auto-select NB : faire au préalable une mise à jour des sources avec : # urpmi.update -a Au lieu de ces 2 commandes, utiliser : # urpmi --auto-update qui fait une mise à jour des sources suivie de la mise à jour du système. Pour éviter la mise à jour de certains paquets ---------------------------------------------- /etc/urpmi/skip.list Pour contrôler si l'installation s'est bien passée --------------------------------------------------- # less /var/log/urpmi.log Faire une base locale de mises à jour ------------------------------------- Le but est double : 1 - pouvoir faire les mises à jour sur des PCs non connectés au réseau ou avec une connexion trop lente pour être utilisable 2 - pouvoir, lors d'une installation de machine, charger les mises à jour de sécurité avant de la connecter au réseau : ça permet d'éviter son piratage éventuel alors qu'elle est encore vulnérable. Les étapes : 1 - récupérer le répertoire ad hoc (actuellement /mandrake/updates/9.1/RPMS) à l'aide de wget directement sur un support amovible (ou sur un disque dur, puis graver un CD) 2 - Démonter le support amovible, le monter sur la machine à mettre à jour 3 - Mettre à jour la base urpmi avec urpmi.update 4 - Faire les mises à jour des logiciels avec urpmi --auto-select En détail 1 - Récupérer sur l'un des nombreux serveurs disponibles les rpms des mises à jour à l'aide de wget : $ wget -mirror -P /mnt/disk -nH --cut-dirs=3 ftp://NomDuServeurFTP/pub/linux/distributions/mandrake/updates/9.1/RPMS avec : -mirror pour créer localement un "mirroir" du répertoire RPMS du serveur. Avantage : si on lance à nouveau cette commande, seuls les fichiers nouveaux ou modifiés sont transférés -P /mnt/disk pour écrire à un endroit donné (ici un support amovible monté en /mnt/disk) -nH et --cut-dirs options facultatives : -nH pour effacer le nom du serveur de l'arborescence créée --cut-dirs=3 pour effacer /pub/linux/distributions de l'arborescence créée Dans cet exemple l'ajout de -P et --cut-dirs permet de simplifier l'arborescence créée en : /mnt/disk/mandrake/updates/9.1/RPMS au lieu de : /mnt/disk/NomDuServeurFTP/pub/linux/distributions/mandrake/updates/9.1/RPMS 2 - Démonter le disque amovible et le monter sur la machine à mettre à jour de façon à avoir (par exemple) les rpms dans : /mnt/disk/mandrake/updates/9.1/RPMS 3 - Ajouter le répertoire contenant les rpm à la base urpmi Ca peut se faire soit en mode graphique, soit en ligne de commande : Mode graphique : K -> Configuration -> Packaging -> Software Sources Manager et ajouter le répertoire contenant les rpms dans les sources à utiliser, dans cet exemple : /mnt/disk/mandrake/updates/9.1/RPMS Mode ligne de commande : # urpmi.addmedia updates file:/mnt/disk/mandrake/updates/9.1/RPMS Puis mettre à jour la base : # urpmi.update updates 4 - Faire toutes les mises à jour en mode automatique : # urpmi --auto-select Les fichiers "hdlist" ne sont pas indispensables : urpmi.update les crée. Ceci dit, on peut les récupérer sur le serveur dans /9.1/base. Dans ce cas les ajouter (ici hdlist.cz) : # urpmi.addmedia updates file:/mnt/disk/mandrake/updates/9.1/RPMS with ../base/hdlist.cz Sinon on peut les créer, avec la commande : $ genhdlist nom_du_répertoire Attention : les hdlists vont dans le répertoire contenant les rpms. Il ne semble pas y avoir d'option dans genhdlist pour rediriger les fichiers créés dans un répertoire "base" : le faire "à la main". Dans les messages urpmi ----------------------- ETA = Estimated Time of Arrival Lister les sources ------------------ $ urpmq --list-media $ urpmq --list-media active Lister les paquets disponibles ------------------------------ urpmq --list urpmq --list -f Exemples : $ urpmq --list | grep ekiga ekiga ekiga $ urpmq --list -f | grep ekiga ekiga-2.0.11-1mdv2008.0.i586 ekiga-2.0.12-1mdv2008.0.i586 $ urpmq -f ekiga ekiga-2.0.12-1mdv2008.0.i586|ekiga-2.0.11-1mdv2008.0.i586 $ urpmq -f kernel-2.6.22.18 No package named kernel-2.6.22.18 The following packages contain kernel-2.6.22.18: actuator-kernel-2.6.22.18-desktop-1mdv actuator-kernel-2.6.22.18-desktop586-1mdv ... Paquets (installés ou non ?) --------------------------- $ urpmq --fuzzy nom_paquet (ou urpmq -y nom_paquet ou urpmq -y nom_paquet) $ urpmq -l nom_paquet liste en plus les fichiers Information (questions) sur un paquet -------------------------------------- $ urpmq -h Mode d'emploi de urpmq $ urpmq --summary paquet (ou urmpq -S paquet) Affiche une courte infomation sur le paquet $ urpmq -i paquet Affiche plus d'informations $ urpmq -l paquet Liste les fichiers du paquet $ urpmq -d paquet Affiche les dépendances Voir où un paquet est installé : -------------------------------- $ urpmq arpw no package named arpw The following packages contain arpw: arpwatch arpwatch2html ou bien : $ urpmq --fuzzy arpw arpwatch arpwatch2html Puis : $ rpm -ql arpwatch /etc/rc.d/init.d/arpwatch /etc/sysconfig/arpwatch /usr/sbin/arpsnmp /usr/sbin/arpwatch ... Installer un ensemble de paquets (metapaquets, meta packages dans mcc à partir de MDV 2008.1) -------------------------------- Le nom des paquets qui regroupent un ensemble de paquets commence par task- : $ urpmq --list | grep task- task-3ddesktop task-c++-devel task-c-devel task-gnome task-kde task-kde-devel task-kde4 task-kde4-devel etc. urpmi problèmes =============== urpmi database locked --------------------- "urpmi database is locked (another program is using it)" Vérifier qu'il n'y a pas un processus utilisant la base rpm ([Ctrl][Esc]), sinon : # rm -f /var/lib/urpmi/.LOCK # rm -f /var/lib/urpmi/.RPMLOCK Installations en mode graphique =============================== # rpmdrake Installation en mode graphique : # rpmdrake-remove Configuration des media : # edit-urpm-sources.pl (/usr/bin/perl /usr/bin/edit-urpm-sources.pl) Mises à jour # MandrivaUpdate ou bien passer par le menu System / Configuration /Packaging ... ou bien encore y accéder par mcc En cas de problème, essayer : rpm --rebuilddb (compter plusieurs minutes pour le mise à jour des index de la db) Problèmes --------- "Les paquetages suivants ont des signatures non valides" Plusieurs causes (Les paquetages suivants ont des signatures non valides) Vérifier en particulier sue les bonnes clés sont installées : # mcc > Gérér les clés > Ajouter les clés correspondant aux média utilisés Les clés sont dans les paquetages gpg-pubkey Installation de programmes à partir des sources =============================================== Ne jamais installer de programme à partir des sources dans /usr (destiné aux programmes de la distribution) ; les installer dans /usr/local Mises à jour ============ Mode d'emploi : http://wiki.mandriva.com/fr/Mettre_à_jour Cygwin ====== Récupération/installation de Cygwin ----------------------------------- Cf. http://people.via.ecp.fr/~alexis/formation-linux/outils-windows.html Cygwin disponible sur de nombreux sites, par exemple : http://xfree86.cygwin.com http://www.cygwin.com En bref : Cliquer sur l'icône "Install Cygwin now" en haut à droite de la page web, ce qui permet de télécharger setup.exe L'exécuter : c'est le programme qui permet de récupérer et d'installer Cygwin. Passer la 1° page puis sélectionner "Install from Internet". Page suivante sélectionner le répertoire d'installation (root directory). Page suivante sélectionnez le répertoire dans lequel seront écrits les fichiers téléchargés. Deux pages plus loin, sélectionner un miroir dans la liste. La liste des packages disponibles s'affiche : 4 possibilités - Default - Install - Reinstall - Uninstall Au début tout est à "Default". Rajouter les packages nécessaires, par exemple net/ssh, rsync, X11, etc. provoque le téléchargement et l'installation des packages sélectionnés, leur configuration, la mise à jour du menu "Démarrer" et une icône Cygwin est mise sur le bureau. Installation/configuration de SSH et SSHD ----------------------------------------- cf. http://pigtail.net/LRP/printsrv/cygwin-sshd.html Nb : il faut avoir sélectionné et installé net/ssh, cf. ci-dessus - Ajouter à W$ une variable d'environnement et modifier le path : Clic droit sur My Computer, puis Properties/Advanced/Environment Variables User ou System variables/new => CYGWIN=ntsec tty User ou System variables/Path/Edit => ajouter c:\cygwin\bin Ceci permet de lancer une commande UNIX directement à partir d'une fenêtre dos (et non pas seulement à partir de la fenêtre cygwin) - Lancer ssh-host-config et répondre de la façon suivante aux questions : privilege separation => yes local user => yes install sshd as a service => yes CYGWIN= => ntsec tty - Lancer le daemon sshd : net start sshd ou cygrunsrv --start sshd - Stopper le daemon sshd net stop sshd ou cygrunsrv --stop sshd - Tester le fonctionnement de sshd telnet 127.0.0.1 22 ou ssh $USERNAME@127.0.0.1 à partir d'une machine distante : telnet adresse_PC_W$ 22 ou ssh utilisateur@adresse_PC_W$ Si ça ne fonctionne pas, voir si ce n'est pas un problème de firewall. Dans le cas de Kerio : Network Security/Applications, x:\cygwin\usr\sbin\sshd.exe, mettre "ask" ou "permit" au moins pour Trusted/In - ssh-user-config Cette commande permet de gènèrer facilement le couple clè privèe/publique Alias ----- Le fichier ~.bashrc contient un ensemble d'alias très intéressants (mais en commentaires). Editer le fichier et mettre les alias de son choix (alias rm='rm -i' en particulier !) Version de cygwin installée ---------------------------- uname cygcheck Créer un utilisateur sous cygwin -------------------------------- Créer d'abord l'utilisateur sous windows ( Lancer le mode graphique ------------------------ - Un serveur X windows nu, avec juste une console texte $ xinit & Lancer ensuite le gestionnaire de fenêtres de son choix : $ twm & ou wmaker & - Ou bien un serveur X windows avec un gestionnaire de fenêtres (twm est lancé par défaut) : $ startx & Et éventuellement une autre session X-Windows : $ startx -- :1 Changer d'environnement graphique --------------------------------- Lancer le mode graphique (twm est installé par défaut) : startx & Editeur en mode graphique : nedit Pour lancer windowmaker à la place de twm : $ nedit /etc/X11/Xinit/xinitrc faire une sauvegarde de xinitrc en xinitrc.twm remplacer twm par wmaker enregistrer sous le nom xinitrc Relancer le mode graphique par startx. Se connecter à un UNIX distant en mode sécurisé (texte uniquement) ----------------------------- $ ssh -l utilisateur nom_ou_n°IP_machine ou bien : $ ssh utilisateur@nom_ou_n°IP_machine Se connecter en mode graphique sécurisé à un UNIX distant ----------------------------- $ ssh -X -l utilisateur nom_ou_n°IP_machine ou bien : $ ssh -X utilisateur@nom_ou_n°IP_machine A partir de là, si KDE est installé sur l'Unix distant (Linux Mandrake dans mon cas) on peut lancer différents programmes, par exemple : $ kwrite & $ konqueror & $ kmail & Problème, par exemple : $ kwrite kwrite: cannot connect to X server ou bien $ nedit NEdit: Can't open display Solution : - dans /etc/ssh/sshd_config changer X11Forwarding no en X11Forwarding yes - dans /etc/ssh_config: ForwardX11 yes et redémarrer sshd (sshd restart ou service sshd restart, sous Debian : /etc/init.d/ssh) restart) Toutes les étapes pour avoir en local un KDE distant ---------------------------------------------------- Démarrer cygwin, puis : $ xinit & $ ssh -X utilisateur@machine_distante & $ /usr/bin/startkde -display localhost & Clipboard --------- Pour des copies entre windows et unix et vice-versa : $ xwinclip & Existe aussi en paramètre à passer à XWin.exe, cf. doc cygwin-xfree-ug Mise à jour du fichiers /etc/passwd de cygwin (contient la liste des utilisateurs) ----------------------------------------------------------------------------------- La création d'un nouvel utilisateur sous Windows ne modifie pas le fichier /etc/passwd, ce qui fait que pour cygwin ce nouvel utilisateur n'existe pas Pour mettre à jour /etc/passwd (cf. : http://ncyoung.com/entry/389) mkpasswd -l > /etc/passwd (pour simplement visualiser les modifications : mkpasswd -l) Désinstallatoin manuelle de cygwin ---------------------------------- Supprimer les services installés ++++++++++++++++++++++++++++++++ (Cf. cygrunsrv --help) cygrunsrv --list Pour lister les services installés ou -L cygrunsrv --stop ou -S cygrunsrv ----remove ou -R Supprimer le répertoire Cygwin ++++++++++++++++++++++++++++++ Nettoyer la base de registre ++++++++++++++++++++++++++++ regedit Supprimer les registres contenant 'Cygnus solution', en principe : HKEY_CURRENT_USER\Software\Cygnus Solutions HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions Nettoyer les variables d'environnement ++++++++++++++++++++++++++++++++++++++ User ou System variables => CYGWIN= User ou System variables => Path= Supprimer l'icône sur le bureau et l'entrée dans le menu "Démarrer" Redémarrer Windows (!) ++++++++++++++++++++++ Configuration de la session root de KDE pour qu'elle se comporte comme une session ordinaire ============================================================================================= * > System > Configuration > KDE > Appearance & Themes > Behaviour > General (ou, en ligne de commade kcmshell desktopbehaviour) x Show icons on desktop Mouse Button Actions Left button : No Action Middle button : Window List Menu Right button : Desktop menu * > System > Configuration > KDE > Appearance & Themes > Screensaver (ou, en ligne de commade kcmshell screensaver) Gestion du temps, gestion des bugs, bug tracking system ======================================================= Voir mantis (http://www.mantisbt.org/) Browsers ======== Mozilla, Firefox Taper dans la ligne d'adresse : about:config -> Infos sur la configuration about:plugins -> plugins installés about:aboutbuildconfig -> infos sur les compilateurs utilisés Installation/désintallation de Mozilla, Firefox et thunderbird =============================================================== Firefox °°°°°°° Aucune indication incluse dans le fichier téléchargé => voir la doc sur http://www.mozilla.org/ : Installation : -------------- tar -xzvf firefox-1.0.installer.tar.gz cd firefox-installer ./firefox-installer et suivre les instructions qui s'affichent. Choisir le mode d'installation "custom" et indiquer comme répertoire d'installation (par exemple) "/opt/firefox" Pratique : mettre firefox dans la barre de tàches (drag&drop) ; l'icône est dans /opt/firefox/chrome/icons/default/ Désinstallation : ----------------- Pas d'indication précise sur le site Mozilla : sans doute supprimer /usr/share/firefox/ ? Le profil utilisateur peut être gardé ou effacé au choix : il est dans ~/.mozilla/firefox Installation de Firefox par urpmi --------------------------------- Pour trouver les icônes : locate ico | grep firefox L'icône en forme de dragon se trouve dans /usr/lib/mozilla-firefox-1.0.2/chrome/icons/default Les autres icônes sont moins intéressantes (représentent une terre bleue) Firefox : répertoires cache et bookmarks ---------------------------------------- $ locate -i cache | grep -i firefox Cache firefox ------------- about:cache permet d'accéder au contenu du cache (en mémoire et sur disque). Indique l'adresse du répertoire cache. Connaître les plugins installés ------------------------------- about:plugins Installer des extensions (plugins .xpi) --------------------------------------- Outils > Modules complémentaires > Obtenir des extensions Dans la page "Add-ons for Firefox" qui s'ouvre, chercher le plugin et cliquer sur "Ajouter à Firefox" Redémarrer Firefox Firefox, associations fichiers-application ------------------------------------------ Edit > Preferences > Content [Manage] Si la liste des associations n'est pas visible (ce qui est le cas par défaut !!) : taper "about:config" dans la barre d'adresses de firefox (sans les "") Dans la barre Filter: taper "extensions" (sans les "") Double cliquer sur "browser.download.hide_plugins_without_extensions" de façon à ce que la valeur change de "true" en "false". La liste est maintenant visible dans Preferences > Content [Manage] A noter que beaucoup de types de fichiers sont absents (pdf en particulier) Peut aider aussi : # urpmi mozplugger Relancer firefox Edit > Preferences > Content [Manage] -> les fichiers de type pdf sont maintenant visibles Double-cliquer sur l'association que l'on veut changer. Cocher "Open them with this application" et choisir l'application ad-hoc (un which permet de savoir où elle se trouve, en général dans /usr/bin) Configuration de firefox ------------------------ Pour associer kmail à un "mailto" : Cf. http://www.think-underground.com/index.php?post/2005/09/06/36-firefox-ouvre-kmail about:config Saisir « mail » dans le filtre, cliquer à droite sur la ligne contenant : "network.protocol-handler.app.mailto" Choisir « Modifier ». Mettre (ou remplacer par) ce qu'on veut, par exemple : kmail Fichier de configuration des associations ----------------------------------------- fichier mimeTypes.rdf dans : ~/.mozilla/firefox/rqsz96yo.default/mimeTypes.rdf Il peut être plus facile de le modifier à la main que de passer par des menus de configuration incompréhensibles. Correcteur orthographique ------------------------- Récupérer le(s) distionnaire(s) sur http://dictionaries.mozdev.org/installation.html ou https://addons.mozilla.org/fr/firefox/browse/type:3 et suivre les indications d'installation. Add_ons intéressants -------------------- Traduction Foxlingo Video Dowbloadhelper Sauvegardes ----------- FEBE https://addons.mozilla.org/fr/firefox/addon/2109 "FEBE backs up your extensions, themes, and (optionally) your bookmarks, preferences, passwords, cookies and just about everything else Firefox offers (it can even backup/restore your entire profile)." Home page de firefox -------------------- Edit > Preferences > Home Page about:blank pour avoir une page vierge Thunderbird °°°°°°°°°°° Pas d'installateur. Sous root, lancer konqueror, cliquer sur le tarball (thunderbird-xxx.tar.gz) Copier le répertoire thunderbird qui apparaît Le coller dans (par exemple) /opt Comme pour firefox ci-dessus mettre thunderbird dans la barre de tàches. L'icône de thunderbird est dans /opt/thunderbird/chrome/icons/default/ : prendre l'icône messengerWindow.xpm Configuration : --------------- tous les dossiers distants n'apparaissent pas automatiquement : pour les faire apparaître, click droit sur inbox (ou un des sous dossiers), menu subscribe, développer l'arborescence et cocher les sous-menus dont le contenu doit apparaître. Affichage des pièces jointes ---------------------------- Pour changer l'application liée à un type de fichier : Clic droit sur la pièce à ouvrir Open Open with faire défiler la liste des applications (il n'y en a qu'une) pour voir le bouton "Other" Choisir l'application voulue. Fichier de configuration des associations ----------------------------------------- fichier mimeTypes.rdf dans : ~/.thunderbird/vjrbeg0k.default/mimeTypes.rdf Comme dans le cas de firefox il peut être plus facile de le modifier à la main que de passer par des menus de configuration incompréhensibles. Mozilla °°°°°°° cf http://www.mozilla.org/releases/mozilla1.7/installation.html#linux Récupérer Mozilla (actuellement mozilla-i686-pc-linux-gnu-1.7.6-installer.tar.gz) tar -xzvf mozilla-i686-pc-linux-gnu-1.7.6-installer.tar.gz cd mozilla-isntaller ./mozilla-installer et suivre les instructions Désinstallation : ----------------- Supprimer le répertoire où est installé Mozilla (par oexemple /opt/Mozille) Supprimer éventuellemnt ~/.mozilla directory (profil utilisateur) Profils Mozilla, thunderbird, firefox °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° http://www.geckozone.org/articles/2005/08/31/100-comprendre-le-profil-de-firefox-thunderbird-mozilla http://gemal.dk/mozilla/files.html Plugins (pour Mozilla Firefox et konqueror) =========================================== konqueror est capable d'utiliser les plugins firefox Pour que konqueror utilise les plugins Mozilla : 1 - repérer dans quel répertoire se trouve le plugin 2 - Démarrer konqueror en root 3 -Settings/Configure Konqueror/Plugins (en français : Configuration / Configure Konqueror / Modules externes) Netscape Plugins, onglet Scan, bouton [New] indiquer le répertoire contenant le plugin Apply 4 - Il semble qu'il faille redémmarrer KDE pour que la modification soit prise en compte. Plugin Macromedia Flash ----------------------- Télécharger le plugin sur le site macromedia. Lire la doc d'installation (elle est bien faite) Décompacter, lancer ./flashplayer-installer Pour Firefox changer le répertoire d'installation proposé par défaut par (actuellement) : Browser installation directory = /usr/lib/mozilla-firefox-1.0.6 Plugin Flash ------------ Moins de problèmes aujourd'hui (2-7-2007) : télécharger le rpm du site http://www.macromedia.com/go/getflashplayer/ et l'installer. Taper about:plugins dans firefox pour voir les plugins installés------- Encore moins aujourd'hui : le plugin s'installe automatiquement pour un utilisateur en cliquant sur l'icône en forme de pièce de puzzle. Sécurité ? Installation du plugin flash pour konqueror ------------------------------------------- Installation du plugin Flash pour MDV 64 bits --------------------------------------------- Plugin 64 bits .............. Cf : http://wiki.mandriva.com/fr/Plugin_flash_pour_firefox_en_64bits - Désintaller si nécessaire le plugin 32 bits (cf l'installation du plugin 32 bits ci-dessous) - Télécharger le plugin 64 bits sur : http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz - $ tar -zxvf libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz Se mettre sous root à l'endroit où a été décompacté le fichier, puis : - # cp libflashplayer.so /usr/lib64/mozilla/plugins/ (Re)démarrer firefox et aller sur http://www.adobe.com/fr/products/flashplayer/ pour vérifier que le plugin fonctionne (il y a une animation flash sur la page). L'installation du plugin 32 bits avec nspluginwrapper(voir ci-dessous) n'est donc plus nécesaire Plugin 32 bits : ................ Cf. : http://blogs.winsos.net/crev/index.php/?2006/11/29/26-flash-et-acrobat-reader-sous-mandriva-2007-x86_64-nouvelle-version http://doc.fedora-fr.org/Flash_et_Acrobat_Reader_sous_Firefox_2_en_64bits Installation de nspluginwrapper # urpmi nspluginwrapper Installation du plugin flash # nspluginwrapper -i /usr/lib/flash-plugin/libflashplayer.so Liste les plugins installés $ nspluginwrapper -l /usr/lib64/mozilla/plugins/npwrapper.libflashplayer.so Original plugin: /usr/lib/flash-plugin/libflashplayer.so Wrapper version string: 0.9.91.3 Le plugin au bon endroit (pour firefox) ! Plugin java ------------ Attention : peut maintenant directement s'installer par urpmi java Télécharger le plugin sur http://www.java.com/en/ (actuellement jre-1_5_0_02-linux-i586.bin) L'exécuter : il se décompresse localement dans un répertoire "jre1.5.0_02" Déplacer ce répertoire dans un endroit qui convient (/opt/java/ par exemple) Installation du jre6 à partir du rpm auto-extractible : ------------------------------------------------------ Télécharger jre-6-linux-i586-rpm.bin $ chmod +x jre-6-linux-i586-rpm.bin $ ./jre-6-linux-i586-rpm.bin $ sudo rpm -ivh jre-6-linux-i586.rpm L'installation du rpm est automatique : répertoire d'installation /usr/java/jre1.6.0/------- Continuer l'installation des plugins comme indiqué dans les paragraphes ci-dessous, par exemple : - pour firefox # ln -s /usr/java/jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox-2.0.0.3/plugins 16-10-2007 : il existe maintenant un jre java 64 bits sur le site http://www.java.com/fr/download/ ------- Multiples versions ------------------ Voir les versions installées : # rpm -q jre Mettre à jour ------------- # rpm -Uvh jre-x-x... (-U = --upgrade) Implémentations "open source" de Java ------------------------------------- kaffe, japhar cf. http://java.oreilly.com/news/freejava_0498.html blackdown ? Activation de java dans mozilla et firefox ------------------------------------------ D'après les docs "officielles" SUN et Mozilla 1 - créer un lien soft vers le plugin ; dans le cas de jre1.5.0_02, par exemple, en étant positionné dans l'un des répertoires "plugins" de mozilla ou de firefox (mozilla/plugins firefox/plugins ~/mozilla/plugins actuellement /usr/lib/mozilla-firefox-1.0.6/plugins) : ln -s /opt/java/jre1.5.0_02/plugin/i386/ns7/libjavaplugin_oji.so Sinon chercher le répertoire "plugins" avec : $ locate plugins | grep firefox 2 -Vérifier que dans la config de ces logiciels java soit autorisé : Firefox : Edit/Preferences/WebFeatures Mozilla : Edit/Preferences/Advanced/Scripts & Plug-ins 3 - tester si ça fontionne sur : http://java.com/en/download/help/testvm.xml NB : 1 - les docs précisent qu'il faut impérativement créer un lien et non mettre une copie du plugin dans le répertoire plugins. 2 - la création d'un lien par drag'n drop sous konqueror ne fonctionne pas : mozilla et firefox ne veulent plus se lancer. 3 - utiliser le plugin qui se trouve dans i386/ns7 et non pas dans i386/ns7-gcc29 : ce dernier est pour une utilisation avec de vieilles versions de mozilla et firefox compilées avec gcc avant les versions 3.xxx Pour connaître la version de gcc utilisée pour compiler ces browsers, taper about:aboutbuildconfig dans la ligne d'adresse. 4 - La procédure ci-dessus ne fonctionne pas à tous les coups : il semble que mozilla et/ou firefox ne trouvent pas le path vers l'exécutable "java" (/opt/java/jre1.5.0_02/bin/). Solution ? Activation de java dans konqueror --------------------------------- Plus simple et plus logique que pour mozilla/firefox - Settings/Configure Konqueror/Java & JavaScripts : En bas de fenêtre, dans "Path to java executable, or 'java' indiquer /chemin_complet_vers/programme_java (par exemple /opt/java/jre1.5.0_02/bin/java ou /usr/java/jre1.5.0_06/bin/java) - Settings/Configure Konqueror/Plugins : indiquer le(s) répertoire(s) à scanner pour trouver le plugin java .so ad-hoc (par exemple /opt/java/jre1.5.0_02/plugin/i386/ns7). Si ce répertoire n'est pas encore dans la liste affichée (quasi certain dans l'exemple donné) cliquer ensuite sur "Scans for New Plugins". java ==== Installation ------------ # urpmi java et choisir la version la plus récente Les exécutables java ne fonctionnent pas ------------------------------------ Définir dans ~/.bash_profile le chemin vers jre/bin, par exemple : #JAVA JAVA_HOME=/opt/java/jre1.5.0_02 export JAVA_HOME PATH=$PATH:$JAVA_HOME/bin export PATH Puis exécuter source ~/.bashrc pour que les modifications soient prises en compte. Pour ajouter le meme PATH à tous les utilisateurs ---------------------------------------------- /etc/profile exécute 1 à 1 les fichiers qui se trouvent dans le répertoire /etc/profile.d Donc créer dans ce dernier les 2 scripts (rwxr-x-r root root) suivants : jre-1.5.sh : #!/bin/bash JAVA_HOME="/opt/java/jre1.5.0_02/" export JAVA_HOME export PATH="$PATH:$JAVA_HOME/bin" jre-1-5.csh : setenv JAVA_HOME "/opt/java/jre1.5.0_02/" setenv PATH "$PATH:$JAVA_HOME/bin" Affecter à ces 2 fichiers les bons droits et propriétaires : chmod 755 jre-1.5.* chown root:root jre-1.5.* et mettre à jour : source /etc/profile ou ouvrir une autre session Tester le fonctionnement des applets java : ----------------------------------------- http://java.com/en/download/help/testvm.xml Installation du SDK (j2sdk-1_4_2_07-nb-4_0-bin-linux.bin) --------------------------------------------------------- http://java.sun.com/j2se/1.4.2/download.html Exécuter : ./j2sdk-1_4_2_07-nb-4_0-bin-linux.bin Répondre aux questions Ca se termine par : JSE Developpement kit 1.4.2_07 installation location /opt/java/j2sdk1.1.2_07 To run IDE lanch: /opt/java/netbeans-4.0/bin/netbeans To uninstall the IDE lanch: /opt/java/netbeans-4.0/_uninst/unistaller To uninstall the J2SE Development Kit 1.4.2_07 launch: /opt/java/j2sdk1.4.2_07/_uninst/unistall.sh Installation du SDK (j2eesdk-1_4_01_2005Q1-linux.bin) ----------------------------------------------------- Exécuter : ./j2eesdk-1_4_01_2005Q1-linux.bin En cas de message d'erreur :"error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file..." installer libstdc++ (suffisant : l'erreur concernant libc6.2-2.so disparait ; de toutes façons il n'y a pas actuellement de rpm pour libc6). L'installation se termine par : -Access the About Application Server PE 8 welcome page at: SUNWappserver/docs/about.html - Start the Application Server by executing: SUNWappserver/bin/asadmin start-domain domain1 - Start the Admin Console: http://localhost:4848 - Access sample applications: http://localhost:8080/samples/index.html Installation du plugin java pour AMD 64 --------------------------------------- # urpmi java choisir le plus récent Voir où est installé java (pas mal tordu !) : # which java # ll /usr/bin/java /usr/bin/java -> /etc/alternatives/java* # ll /etc/alternatives/java /etc/alternatives/java -> /usr/lib/jvm/jre-1.6.0-sun/bin/java* ou encore : # locate java | grep -i plugin => actuellement pas de plugin java pour les AMD 64 bits ! PHP === Affichage des infos ------------------- PHP étant installé, l'affichage des infos se fait au moyen d'une page html contenant : => 1 - voir ci-dessus Apache "Autoriser l'accès local à un répertoire", par exemple "toto" 2 - mettre dans ce répertoire (ou un sous-répertoire à condition d'avoir mis les autorisations ad-hoc) un fichier "InfosPHP.php" contenant juste : 3 - http://locatlhost/toto et cliquer sur InfosPHP.php Bases de données //////////////// Mysql ===== Doc : http://dev.mysql.com/doc/mysql/en/index.html http://dev.mysql.com/doc/mysql/fr/index.html FAQ : http://mysql.developpez.com/faq/ Portail PHP/MySQL : http://www.nexen.net/ Installation du serveur *********************** # urpmi mysql Voir les notes d'installation dans /usr/share/doc/mysql/README.urpmi Vérifier si le service mysqld fonctionne, le lancer, l'arrêter ... **************************************** # service mysqld status start restart stop Fichier de configuration ************************ /etc/my.cnf Première connexion ****************** $ mysql il n'y a aucun mot de passe ! Les créer d'urgence pour root (= l'administrateur MySQL, n'a rien à voir avec le root linux !) et au moins un utilisateur : mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MotDePassePourRoot'); mysql> GRANT ALL PRIVILEGES ON *.* TO 'utilisateur'@'localhost' IDENTIFIED BY 'MotDePasseDeCetUtilisateur' WITH GRANT OPTION; Vérifier (facultatif) le résulat : mysql> SELECT Host, User FROM mysql.user; mysql> quit Se connecter ************ $ mysql -h localhost -u joe -p $ mysql -p NB : -h localhost et -u joe sont facultatifs : en leur absence c'est localhost et l'utilisateur qui lance la commande mysql qui sont pris par défaut. - p pour qu'au démarrage de mysql le mot de passe soit demandé Version, aide en ligne ********************** Lancer simplement mysql : $ mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.1.5-gamma Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SHOW DATABASES; liste les DB $ mysqlshow -u root -p " mysql> SELECT DATABASE(); affiche la DB actuellement sélectionnée (NULL si aucune DB est sélectionnée) mysql> CREATE DATABASE toto; Crée la DB toto mysql> USE toto Sélectionne la DB toto CREATE TABLE `tb1` ( `id_tb1` int(11) NOT NULL auto_increment, `nom` text NOT NULL, .... PRIMARY KEY (`id_tb1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; mysql> SHOW TABLES FROM toto; liste les tables contenues dans la DB toto mysql> DESCRIBE tb1; Affiche la structure de la table tb1 mysql> DROP DATABASE tb1; Supprime la DB tb1 Sécurité ******** Afficher les utilisateurs : mysql> SELECT Host, User FROM mysql.user; --------------------------- mysql> SELECT Host, User FROM mysql.user; +-----------+------+ | Host | User | +-----------+------+ | localhost | | | localhost | root | +-----------+------+ La ligne où user est vide correspond à un accès anonyme avec les pleins droits ! => supprimer le compte anonyme : -------------------------------- mysql> DELETE FROM mysql.user WHERE User = ''; suppression mysql> FLUSH PRIVILEGES; mise à jour Assigner un mot de passe chiffré : ---------------------------------- Plusieurs commandes possibles : - SET PASSWORD .............. mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mot_de_passe'); - mysqladmin ............ $ mysqladmin -u root password "mot_de_passe" $ mysqladmin -u root -h nom_ou_IP_machine password "mot_de_passe" - UPDATE ........ mysql> UPDATE mysql.user SET Password = PASSWORD('mot_de_passe') -> WHERE User = 'root'; mysql> FLUSH PRIVILEGES; Vérifier la mise en place du mot de passe ----------------------------------------- mysql> SELECT Host, User, password FROM mysql.user; Se connecter apès avoir mis un mdp ---------------------------------- $ mysql -h host -u user -p Se connecter après voir mis un mdp Enter password: Ajouter un utilisateur ---------------------- Utilisateur pouvant se connecter à partir de localhost avec tous les droits : mysql> GRANT ALL PRIVILEGES ON *.* TO 'utilisateur'@'localhost' -> IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION; Utilisateur pouvant se connecter à partir de n'importe où avec tous les droits : remplacer TO 'utilisateur'@'localhost' par TO 'utilisateur'@'%' Autres mesures de sécurité ************************** http://www.securityfocus.com/infocus/1726 Activer /désactiver l'accès par le réseau ***************************************** Editer /etc/my.cnf Désactiver = skip-networking (existe par défaut dans le fichier) Activer = mettre "skip-networking" en commentaire Messages d'erreur ***************** $ mysql -u joe -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) => Vérifier si mysqld est lancé # service mysqld status mysqld is stopped # service mysqld start Starting MySQL: [OK] Installation de phpMyAdmin ========================= Voir documentation phpMyAdmin Configuration de la version stable (rpm) °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° MDV installe phpMyadmin dans /var/www/html/admin/phpMyAdmin La documentation locale est dans : http://localhost/admin/phpMyAdmin/Documentation.html Pour lancer phpMyAdmin : http://localhost/admin/phpMyAdmin/ En cas de message d'erreur : cannot load mysql extension; please check PHP configuration installer les fonctions nécessaires à PHP pour se connecter au servfeur Mysql : php-mysql-x.x.x-xmdk Mire phpMyAdmin, mais message d'erreur : The configuration file now needs a secret passphrase (blowfish_secret). => editer le fichier /var/www/html/admin/phpMyAdmin/config.inc.php : chercher la ligne $cfg['blowfish_secret'] = '' et entrer une phrase quelconque qui servira à coder les mots de passe. Autres messages d'erreur - The mbstring PHP extension was not found and you seem to be using a multibyte charset. Without the mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results. => probablement une fausse alerte. Installer php4-mbstring-x.x.x-xmdk Se déloger Redémarrer le serveur mysql # service mysqld stop # service mysqld start Relancer phpMyAdmin Le message d'erreur persiste !! A voir. Création des tables nécessaires au "whole set of new features (bookmarks, comments, SQL-history, PDF-generation, field contents transformation, etc." ---------------------------------------------------------------------------------------------------------- Documentation, voir : http://localhost/admin/phpMyAdmin/Documentation.html /var/www/html/admin/phpMyAdmin/scripts/create_tables_mysql_4_1_2+.sql - Créer un utilisateur 'pma' (par userdrake par exemple) et lui attribuer un mot de passe quelconque - Mettre ce nom d'utilisateur et ce mot de passe dans le fichier de configuration de phpMyAdmin /var/www/html/admin/phpMyAdmin/config.inc.php : $cfg['Servers'][$i]['controluser'] = 'pma'; // MySQL control user settings // (this user must have read-only $cfg['Servers'][$i]['controlpass'] = 'mot de passe pour pma'; // access to the "mysql/user" Indiquer dans ce même fichier de configuration les services voulus ; pas de service si la variable correspondante n'est pas initialisée : $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; // Database used for Relation, Bookmark and PDF Features // (see scripts/create_tables.sql) // - leave blank for no support // DEFAULT: 'phpmyadmin' $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark'; // Bookmark table // - leave blank for no bookmark support // DEFAULT: 'pma_bookmark' $cfg['Servers'][$i]['relation'] = 'pma_relation'; $cfg['Servers'][$i]['table_info'] = 'pma_table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma_column_info'; $cfg['Servers'][$i]['history'] = 'pma_history'; Configurer correctement les droits du controluser pma : cf http://localhost/admin/phpMyAdmin/Documentation.html au paragraphe "Using authentication modes" GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'mot de passe pour pma'; GRANT SELECT ( Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv ) ON mysql.user TO 'pma'@'localhost'; GRANT SELECT ON mysql.db TO 'pma'@'localhost'; GRANT SELECT ON mysql.host TO 'pma'@'localhost'; GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO 'pma'@'localhost'; - Créer les tables nécessaires à l'aide du script fourni dans phpMyAdmin/scripts : $ mysql -ulogin -p -vv /etc/phpMyAdmin/config.default.php Placer une copie de ce fichier (ou un lien) dans le répertoire principal de phpMyAdmin (celui contenant le fichier index.php, en principe /var/www/phpMyAdmin ou tout autre endroit où l'on a installé phpMyAdmin) ; nommer cette copie config.inc.php. Seule chose à modifier (pour commencer) : $cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)? => remplacer 'cookie' par 'http' Script de configuration : /usr/share/doc/phpMyAdmin-2.8.0.3/scripts/setup.php : intérêt? Fonctionnemnet ? En cas de login/mot de passe rejeté : vérifier qu'Apache et msql sont bien démarrés ! # service httpd status|start # service mysqld status|start Sécurisation °°°°°°°°°°°° Pour qu'apache présente une fenêtre login/password : 1 - fichier config.inc.php : remplacer config par http: $cfg['Servers'][$i]['auth_type'] = 'http'; 2 - Créer un fichier de mots de passe utilisable par apache : cf. documentation apache : file:/usr/share/doc/apache2-manual-2.0.50/howto/auth.html Créer le fichier de mots de passe n'importe où (éviter de le mettre sous /var/www/html qui est la racine du serveur web sous Mandrake, lisible sauf précautions particuliéres (.htaccess) par tout le monde). Le placer par exemple dans la zone de fichiers de configuration d'apache (/etc/httpd). Créer par exemple un dossier spécial : # mkdir /etc/httpd/passwd Puis créer (-c) avec l'utilitaire (apache) htpasswd un fichier de mots de passe avec un nom quelconque (ici par exemple .htpasswd). Ici pour l'utilisateur root : # htpasswd -c /etc/httpd/passwd/.htpasswd root répondre par le mot de passe à utiliser pour root (NB : pour que le nouvel utilisateur soit pris en compte par apache il est nécessaire de redémarrer apache (service httpd restart). Ici ce n'est pas utile : il sera redémarré au point 4 Pour ajouter un nouvel utilisateur, même commande, mais ATTENTION ! sans -c, sinon le fichier de mots de passe est effacé) 3 - Indiquer à apache où se trouve ce fichier de mots de passe : Dans le fichier de configuration d'apache /etc/httpd/conf/commonhttpd.conf, rajouter dans la partie concernant phpMyAdmin les directives suivantes : ... AuthType Basic AuthName "phpMyAdmin" AuthUserFile /etc/httpd/passwd/.htpasswd Require user toto Explication : indique quel répertoire est concerné (celui qui contient phpMyAdmin) AuthType Basic type d'identification Basic : le mot de passe circule en clair Digest : le mot de passe est transmis crypté : n'est supporté que par les clients web les plus récents : OK avec konqueror Ne fonctionne pas avec Mozilla 1.7.2 et Firefor 0.9.3 AuthName "phpMyAdmin" Invite affichée dans la fenêtre de demande de login/mot de passe AuthUserFile /etc/httpd/passwd/.htpasswd /path/vers/le/fichier_de_mots_de_passe Require user root utilisateur autorisé 4 - Relancer apache (service httpd restart) pour que les nouvelles directives soient prises en compte 5 - Si on veut indiquer non plus un utilisateur, mais un (ou des) groupes d'utilisateurs AuthType Digest AuthName "Accès à phpMyAdmin" AuthUserFile /etc/httpd/passwd/.htpasswd AuthGroupFile /etc/httpd/passwd/groups Require group Nom_du_groupe Explication : AuthGroupFile /etc/httpd/passwd/groups groups : nom du fichier (il peut être quelconque) où sont définis un (ou des) groupe(s) Dans le fichier texte "groups" définir les groupes de la facon suivante : Nom_du_groupe: user4 user6 user25 Pour d'autres possibilités de sécuriser l'accès au serveur web, voir la documentation apache : file:/usr/share/doc/apache2-manual-2.0.50/howto/auth.html plutôt bien faite. phpMyadmin-2.10.0.2 sous MDV 2008.0 °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° phpMyadmin est maintenant installé dans /var/www/ (/var/www/phpmyadmin). On peut le déplacer ailleurs. Documentation : /usr/share/doc/phpmyadmin-2.10.0.2/Documentation.txt /var/www/phpmyadmin/Documentation.html Configuration : /etc/phpmyadmin/config.default.php (/var/www/phpmyadmin/libraries/config.default.php -> /etc/phpmyadmin/config.default.php) La doc précise - de copier config.default.php dans config.inc.php - d'éditer et de compléter ce dernier (voir plus loin) - de le copier dans la racine de phpmyadmin (phpmyadmin/libraries/config.default.php est d'abord lu puis phpmyadmin/config.inc.php. # cp /var/www/phpmyadmin/libraries/config.default.php /var/www/phpmyadmin/config.inc.php Configuration de phpmyadmin --------------------------- Voir plus haut "Installation de phpMyAdmin-2.8.0.3 (à partir de cooker)" Configuration du serveur Apache ------------------------------- Les modifications ne sont pas apportées dans /etc/httpd/conf/httpd.conf, mais dans /etc/httpd/conf/webapps.d/phpmyadmin.conf Modifier ce fichier en conséquence en particulier Alias /phpmyadmin /var/www/phpmyadmin si on a modifié l'emùplacement de phpmyadmin et Allow from All pour renforcer la sécurité puis redémarrer httpd Quelques problèmes °°°°°°°°°°°°°°°°°° couldn't perform authentication. AuthType not set! -------------------------------------------------- "Require user" non précédé de la façon dont doit se faire l'authentification de l'utilisateur. => voir "Authtype" dans le paragraphe "Sécurisation" ci-dessus Permission denied: Could not open password file: /etc/httpd/passwd/htpasswd access to // failed, reason: verification of user id 'toto' not configured ------------------------------------------------------------------------------------- => Apache doit pouvoir lire le fichier htpasswd. Tester où ça bloque avec : # su - apache Mettre les droits d'accès corrects et de lecture corrects : # chmod 755 /etc/httpd/passwd # chmod 644 /etc/httpd/passwd/htpass ou de préférence (droits plus restreints) : ou bien les 2 commandes : # chown root:apache /etc/httpd/passwd # chown root:apache /etc/httpd/passwd/htpass # chmod 750 /etc/httpd/passwd # chmod 640 /etc/httpd/passwd/htpass Existing configuration file (./config.inc.php) is not readable -------------------------------------------------------------- Apache ne peut pas le lire. Appartient probablement à root:root) # ll /var/www/phpmyadmin/config.inc.php -rw-r----- 1 root root /var/www/phpmyadmin/config.inc.php # chown root:apache /var/www/phpmyadmin/config.inc.php MySQL - ODBC - OpenOffice ========================= Cf. http://support.openoffice.org/index.html, cliquer sur "Free: OpenOffice.org, ODBC,and MySQL How-To" (fichier OOoMySQL9.pdf) - Installer MySQL - Installer MyODBC - Configurer /etc/odbcinst.ini et /etc/odbc.ini comme indiqué dans la doc ci-dessus $ cat /etc/odbc.ini [MySQL-test] Description = MySQL database test Driver = MySQL Server = localhost Database = test Port = 3306 $ cat /etc/odbcinst.ini (à rajouter dans ce fichier, il y a probablement deja un paragraphe [PostgreSQL]) [MySQL] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc3.so.1.0.0 Setup = = /usr/lib/libmyodbc3S.so.1.0.0 FileUsage = 1 - Voir la version et la config d'ODBC : $ odbcinst -j - Tester la configuration : $ isql -v MySQL-test login MotDePasse Problèmes --------- 1 : $ isql -v MySQL-test test [IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV fail ed [ISQL]ERROR: Could not SQLConnect => dans /etc/odbcinst.ini Driver = /usr/lib/libmyodbc3S.so.1.0.0 le driver indiqué n'est pas le bon : "S" est seulement pour le setup 2 : $ isql -v MySQL-test test [S1T00][unixODBC][MySQL][ODBC 3.51 Driver]Access denied for user 'test'@'localhost' (using password: NO) [ISQL]ERROR: Could not SQLConnect => l'utilisateur test n'existe pas (a été supprimé) ou bien, même message d'erreur mais avec un utilisateur existant : 3 : $ isql -v MySQL-test NomDeLogin [S1T00][unixODBC][MySQL][ODBC 3.51 Driver]Access denied for user 'NomDeLogin'@'localhost' (using password: NO) [ISQL]ERROR: Could not SQLConnect => Connexion refusée car pas de mot de passe Installation/configuration de PostgreSQL ======================================== http://www.postgresql.org http://www.postgresqlfr.org/?q=node/view/33 (Tutoriel pour installer PostgreSQL et pgacces sous Mandrake et paramétrer les logiciels pour qu'ils fonctionnent ensemble) Groupes de discussion : http://archives.postgresql.org/pgsql-admin/ Installer le rpm MDK ******************** Lors de l'installation du rpm un user "postgres" est créé sans mot de passe (!) avec la configuration suivante : User: postgres Home directory: /var/lib/pgsql Default shell: /bin/bash Lui assigner un mot de passe avec les commandes sous root : # userdrake (si postgres n'apparaît pas => menu/Options/Filter system/users) ou # passwd postgres Lancer postgresql, vérifier si postgresql est lancé : ----------------------------------------------------- # service postgresql status postmaster (pid 4037 4036 4032) is running... Lancer (start) ou relancer (restart) # service postgresql restart [ OK ] Starting postgresql service: [ OK ] Ou bien : # /etc/rc.d/init.d/postgresql start Autre possibilité (cf. pg_ctl --help) pg_ctl start -D /var/lib/pgsql/data NB : pour autoriser l'accès au serveur via le réseau (localhost y compris) 2 possibilités : - mettre tcpip_socket = true dans /var/lib/pgsql/data/postgresql.conf - ou bien rajouter l'option -i à pg_ctl. Sécuriser le compte postgres ----------------------------- Par défaut postgres n'a pas de mot de passe non plus au niveau de la base. Pour créer ce mot de passe : # psql template1 postgres ... template1=# SELECT * from pg_shadow ; ... template1=# UPDATE pg_shadow SET passwd = 'mon_mdp'; Pour voir si le mdp a bien été entré : template1=# select * from pg_shadow; usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig ----------+----------+-------------+----------+-----------+---------+----------+----------- postgres | 1 | t | t | t | mon_mdp | | toto | 1 | t | t | t | mon_mdp | | Attention : cette commande met tous les mots de passe à la même valeur ! Utiliser plutôt : template1=# ALTER USER toto WITH PASSWORD 'fifi' ; et vérifier : template1=# SELECT * from pg_shadow WHERE usename = 'toto'; Pour que le mot de passe soit inséré (et apparaisse) crypté et non pas en clair, ouvrir /var/lib/pgsql/data/postgresql.conf et dans : # - Security & Authentication - mettre : password_encryption = true puis relancer postgresql Aide en ligne psql : \h \h commande Pour quitter psql : template1=# \q; Créer un utilisateur -------------------- su postgres createuser MonNom Attention : le mot de passe demandé est celui de postgres dans la BD et non pas le mot de passe de l'utilisateur unix postgres. createuser ne permet pas non plus d'affecter un mot de passe au nouvel utilisateur. Pour lui créer un mot de passe : $ psql template1 -U postgres template1=# ALTER USER MonNom WITH PASSWORD 'MonMotdePass' ; et pour vérifier : template1=# SELECT USER MonNomU from pg_shadow ; Vérifier où MDK a installé les fichiers de configuration de postgresql ---------------------------------------------------------------------- # find / -name pg_hba.* /usr/share/pgsql/pg_hba.conf.sample /var/lib/pgsql/data/pg_hba.conf => les fichiers de configuration sont dans /var/lib/psql/data Ou bien installer Posgresql à partir des sources ************************************************ Récupérer les sources sur http://www.postgresql.org/ Les décompresser : # tar -zxvf postgresql-xxx.tar.gz Les possesseurs et groupes des fichiers sont rpc:rpc !? # chown -Rv root:root postgresql-xxx.tar.gz L'installation est très bien expliquée dans le fichier INSTALL : ./configure gmake su gmake install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test Ici le programme s'installe dans /usr/local/pgsql /var/lib/pgsql/ Pour pouvoir démarrer et stopper le serveur avec la commande "service postgresql", récupérer dans les sources le script "linux.sh". Il permet aussi de lancer automatiquement Postgresql au démarrage du PC et l'arrêter lors de l'arrêt du PC. Ce script est situé dans le répertoire :contrib/start-scripts, a partir de la racine de l'archive. Placer ce fichier dans /etc/init.d/, le renommer "postgresql". Consulter la doc très claire, contenue dans le script, pour le configurer correctement. Configurer postgresql ********************* Fichier /var/lib/pgsql/data/pg_hba.conf ("postgresql host-based authentication") -------------------------------------------------------------------------------- cf.http://www.postgresql.org/docs/7.3/static/client-authentication.html Pour commencer mettre des autorisations assez permissives, par exemple : # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust host all all 127.0.0.1 255.255.255.255 trust ce qui signifie : accès : local (à partir du PC) ou host (à partir du réseau, y compris localhost) bases de données : all = accès à toutes les bases de données utilisateurs : all = tous méthode d'identification : trust : accepte tout utilisateur sans mot de passe Puis limiter l'accès au strict minimum nécessaire, par exemple : local all truc, postgres md5 host all truc, postgres 127.0.0.1, machine.fr 255.255.255.255 md5 soit accès permis seulement aux utilisateurs "truc" et "postgres" en local ou par réseau (localhost et machine.fr uniquement), avec mot de passe obligatoire crypté md5. Fichier /var/lib/pgsql/data/postgresql.conf ------------------------------------------- tcpip_socket = true port = 5432 (ou un autre port de son choix) Après ces changements de configuration, ne pas oublier de faire la mise à jour par : postgresql start (ou restart) Ou bien : pg_ctl reload ou en cas d'erreur "pg_ctl: no database directory specified and environment variable PGDATA unset" pg_ctl -D /var/lib/pgsql/data -l logfile reload Quelques commandes ****************** Trouver le n° de version ------------------------ $ psql --version Créer une base de données "test" -------------------------------- $ createdb test Lister les BD disponibles ------------------------- $ psql -U NomUtilisateur -l Installation de phpPgAdmin ========================== Installer le rpm fourni par Mandrake est sans intérêt : préférer la dernière version disponible sur : http://phppgadmin.sourceforge.net/ actuellement : phpPgAdmin-3.5.1.tar.bz2 Décompresser : $ tar -jxvf phpPgAdmin-3.5.1.tar.bz2 Déplacer le répertoire créé (phpPgAdmin) vers un endroit acceptable quelconque : par exemple le rpm Mandrake installe phpPgAdmin dans la racine du serveur apache : /var/www/html/admin/phpPgAdmin Si on l'a installé de cette façon, on le lancera donc par : http://localhost/admin/phpPgAdmin Dans le cas où on l'a installé "à la main" par exemple dans /installe/admin, ajouter dans la config de Apache (/etc/httpd/conf/commonhttpd.conf) : Alias /toto /installe/admin/phpPgAdmin Options Indexes FollowSymLinks Order deny,allow Deny from all Allow from localhost S'y connecter avec : http://localhost/toto Rajouter si nécessaire après "Allow from" les machines autorisées à se connecter en plus de localhost : Allow from localhost 192.168.1.23 monpc.fr knoda ===== www.knoda.org 2 packages à installer : - hk_classes - knoda Télécharger et décompresser chaque package Installer en premier hk_classes Pour que les BD postgresql, mysql, sqlite et ODBC soient reconnues il faut que les packages -devel correspondants aient été installés au préalable (avant hk_classes) xmms ==== Pour accéder au menu : click droit Le skin par défaut (noir avec boutons bleu foncé) est illisible/inutilisable, à dégouter d'utiliser xmms : télécharger xmms-skins et choisir un skin correct (Helix-Sawfish par exemple) La liste des url (radios à écouter) se trouve à la fin du fichier ~/.xmms/config sous la forme : url_history_length=2 url_history1=http://ogg.tv-radio.fr:1441/encoderfip.ogg url_history2=http://accent4.dyndns.org:8000/ Radio, musique, enregistrement des flux (stream) ================================================ Interface d'accès à des radios : streamtuner http://www.nongnu.org/streamtuner/ Liste de radios : streamtuner http://www.nongnu.org/streamtuner/ shoutcast http://www.shoutcast.com/ Enregistrement des flux streamripper http://streamripper.sourceforge.net/ Synchronisations ================ rsync en ligne de commande (cf. ci-dessous) draksync graphique Sauvegardes =========== http://yann.morere.free.fr/article.php3?id_article=74 rsync °°°°° rsync -Cvaub --exclude='/tmp/' --exclude='/downloads/' ~/ /sauvegarde_mon_home ou rsync -Cvau --exclude-from=dir_exclus.lst / /sauvegarde_tout avec un fichier texte dir_exclus.lst contenant par exemple : ................... /proc /tmp /mnt ................... -C évite les fichiers inutile (*~, *.bak,core ...) -a sert à passer en mode archive (conservation des droits, des liens ...) -u pour transférer uniquement les fichiers nouveaux ou modifiés (plus exactement, ne transfère pas les fichiers qui sont plus récents sur la destination) -b fait une copie des fichiers modifiés (avec un ~, option pas toujours utile). -v verbose -r récursif -n pour un transfert "à blanc" : montre ce qui sera transferré rsync Via SSH : (n'est plus nécessaire avec les versions récentes de rsync) rsync -e 'ssh' -vau --delete --exclude='/tmp/' ~/ utilisateur@machine:~/ --delete efface les fichiers sur la destination qui ne sont pas présents sur le source Autre exemple : sauvegarder via samba une partition Windows (ici D:) ----------------------------------------------------------- $ rsync -Cav --exclude-from=win_exclude.lst --delete /mnt/Win/D /repertoire/destination - La partition D est montée en /mnt/Win/D - win_exclude.lst contient, par exemple, une liste de répertoires à ne pas sauvegarder ; ces répertoire ne sont pas obligatoirement présents sur D : MSDOS6 Sauvegardes _Download System?Volume?Information RECYCLER Recycled pagefile.sys Temp temp1 temp Tmp tmp tmp1 tmp2 tar --- A voir : - backuponcd - cdbackup - rsnapshot - BackupPC - storeBackup http://sourceforge.net/projects/storebackup - dar http://dar.linux.free.fr/ - et KDar http://members.shaw.ca/jkerrb/kdar/index.html - DrakBackup - rdiff-backup - bacula - amanda - areca backup http://areca.sourceforge.net - Rsync: le meilleur des systèmes de sauvegarde http://linuxfocus.vlsm.org/Francais/March2004/article326.shtml - rsync examples http://rsync.samba.org/examples.html - Easy Automated Snapshot-Style Backups with Linux and Rsync http://www.mikerubel.org/computers/rsync_snapshots Excellent ! Contient aussi des explications très claires sur le fonctionnement de rsync, cron, hard links, cp - dirvish - La Sauvegarde sous GNU/Linux http://linux.ensimag.fr/sauvegarde.html - Mise en oeuvre d'un solution de clonage sur disque dur IDE externe http://erick.bullier.org/pub/real_perso/backupDD/ - Linux Backups mini-FAQ http://kmself.home.netcom.com/Linux/FAQs/backups.html - Backup and Restore Procedures http://tldp.org/LDP/lame/LAME/linux-admin-made-easy/backup-and-restore.html - The Linux System Administrator's Guide: Chapter 12. Backups http://tldp.org/LDP/sag/html/backups.html - Backing Up Windows Machines to a Linux Host http://tldp.org/HOWTO/SMB-HOWTO-11.html - Linux Complete Backup and Recovery HOWTO http://tldp.org/HOWTO/Linux-Complete-Backup-and-Recovery-HOWTO/index.html - EVMS User Guide-Chapter 11. Creating snapshots http://tldp.org/LDP/EVMSUG/html/whatissnapshotting.html Installation de BackupPC (BackupPC-3.0.0beta2) ���������������������������������������������� http://backuppc.sourceforge.net/ (téléchargement) http://backuppc.sourceforge.net/faq/BackupPC.html (Documentation) Une fois les sources téléchargées, la documentations est dans BackupPC-3.0.0beta1/doc/BackupPC.html Suivre pas à pas cette documentation plutôt bien faite. Lirairies::modules perl à installer, si pas déjà présentes (cf. documentation) : -------------------------------------------------------------------------------- Compress::Zlib Archive::Zip File::RsyncP Vérifier si ces librairies sont déjà présentes : ---------------------------------------------- # perl -MCPAN -e shell cpan> i Librairie::Module Sinon installer celles qui manquent : ------------------------------------- cpan> install Librairie::Module On peut aussi les installer à partir des rpm, exemple : # urpmi perl-Compress-Zlib Samba ----- Pour la sauvegarde de machines sous Windows via samba (probablement inutile si la sauvegarde est faite avec rsync), vérifier la présence des programmes smbclient et nmblookup Sous MDV2007 smbclient3 et nmbclient3 Versions de tar et rsync ------------------------- $ tar --version (> 1.13.20) tar (GNU tar) 1.15.1 $ rsync --version (> 2.6.3) rsync version 2.6.6 protocol version 29 Installer Backuppc proprement dit --------------------------------- $ tar zxvf BackupPC-3.0.0beta1.tar.gz Dans le répertoire où a été décompressé BackupPC-3.0.0beta2 : # perl configure.pl Répondre aux questions => Sauvegarder l'ensemble des messages affichés par perl configure.pl (par exemple dans un fichier "Output_configure.pl.txt" : - utile pour se souvenir des paramètres entrés (répertoires d'installation, etc. - contient des infos utiles pour la suite. NB : dans les messages affichés : - "I found the following locations for these programs:" un certain nombre de programmes n'auront pas été trouvés : ne pas s'en soucier, le problèmes sera réglé plus tard au niveau du fichier de configuration /etc/BackupPC/config.pl (cf. paragraphe suivant). - "Are these paths correct? [y]?" répondre "y" : on fera aussi les vérifications et modifications èventuelles au niveau de /etc/BackupPC/config.pl - "BackupPC should run as user [backuppc]?" => crèer un utilisatur de backup dèdiè "backuppc" (ou tout autre non de son choix) et rèpondre par le nom de cet utilisateur. Prèciser son home directory dans lequel on pourra mettre les clés ssh dans ~/.ssh Configurer ---------- Fichier de configuration général : /etc/BackupPC/config.pl Le script configure.pl ci-dessus a déjà rempli un certain nombre de variables de ce fichier. Configures "à la main" les autres. 4 sections (cf commentaires dans le fichier) : 1 - Configuration générale du serveur 2 - backups : quand et quoi 3 - backups : comment 4 - statut et messages 5 - interface CGI Les configs 2, 3, 4 et 5 peuvent etre personnalisées pour chaque PC à sauvegarder en mettant un fichier config.pl dans directory_de_backup/HostName # Full path to various commands for archiving Installer les programmes manquants si nécessaire : - par2 : si utilisé (si $Conf{ArchivePar} = 1 dans /etc/BackupPC/config.pl) récupérer sur le site http://sourceforge.net par2cmdline-0.4-x86-Linux-2.4.20-Redhat-9.0.tar.gz copier par2 dans /usr/bin # chown root:root /usr/bin/par2 # chmod 755 /usr/bin/par2 - bzip2 (compression des backups) : si utilisé (si $Conf{ArchiveComp} = 'bzip2' dans /etc/BackupPC/config.pl) dans cooker main pour MDV2006 # What transport method to use to backup each host => indiquer la plus courante. Pas important car modifiable pour chaque hôte à sauvegarder $Conf{XferMethod} = 'rsync'; Machines à sauvegarder ---------------------- Compléter le fichier /etc/BackupPC/hosts Fichiers de configuration pour chaque client -------------------------------------------- Ils doivent être mis dans le répertoire de configuration "/etc/BackupPC/pc" avec comme nom le nom du client (ou n°IP) terminé par ".pl". - si le nom du client est 192.168.0.36 => /etc/BackupPC/pc/192.168.0.36.pl Dans ces fichiers, modifier les variables concernant l'hôte à sauvegarder : sections 2 et 3 principalement (2 - backups : quand et quoi, 3 - backups : comment) - Pour rsync les variables à vérifier sont (cf doc) : $Conf{RsyncClientPath} chemin vers l'exécutable rsync sur l'hôte à sauvegarder $Conf{RsyncClientCmd} Commande de sauvegarde avec ses arguments $Conf{RsyncClientRestoreCmd} Commande de restauration avec ses arguments $Conf{RsyncShareName}, Les répertoires à sauvegarder $Conf{RsyncArgs} Arguments passés à la commande rsync de backup on peut y ajouter: '-v', '--exclude', '/proc', '--exclude', '*.tmp', $Conf{RsyncRestoreArgs}. Arguments passés à la commande rsync de restauration Voir aussi les variables : $Conf{ClientCharset} $Conf{BackupFilesExclude} Installer le script de démarrage -------------------------------- Cf. BackupPC-3.0.0beta1/init.d/README Il se trouve dans les sources (/BackupPC/BackupPC-3.0.0beta1/init.d/linux-backuppc) et a été configuré par configure.pl # cp linux-backuppc /etc/init.d/backuppc # chmod 700 /etc/init.d/backuppc Le tester --------- # service backuppc status | start | stop ou bien (équivalent) : # /etc/init.d/backuppc status | start | stop (pour recharger simplement la configuration sans stopper et redémarrer : reload) Communiquer avec BackupPC ------------------------- Permet de voir si tout fonctionne bien. Ce qui suit permet d'accéder directement à des programmes utilitaires normalement utilisés par l'interface web. S'exécute sous "user" backuppc : $ su - backuppc et si le répertoire d'installation est /opt/BackupPC : $ /opt/BackupPC/bin/BackupPC_serverMesg status info $ /opt/BackupPC/bin/BackupPC_serverMesg status jobs $ /opt/BackupPC/bin/BackupPC_serverMesg status hosts Pour vérifier que BackupPC peut envoyer correctement des mails dans la BAL "user@ServeurDeMail" : $ /opt/BackupPC/bin/BackupPC_sendEmail -u user@ServeurDeMail => message reçu : This is a test message from /opt/BackupPC/bin/BackupPC_sendEmail. Regards, PC Backup Genie Pour envoyer un message avertissant que BackupPC est arrêté, mettre dans le cron de l'utilisateur backuppc : /opt/BackupPC/bin/BackupPC_sendEmail -c le message est envoyé à l'administrateur (ou aux administrateurs) listés dans /etc/BackupPC/config.pl variable $Conf{EMailAdminUserName} : $Conf{EMailAdminUserName} = 'admin1@ServeurDeMail, admin2@ServeurDeMail'; => Contenu du message Error: cannot connect to BackupPC server. Regards, PC Backup Genie Interface web (CGI) ------------------- Voir où l'interface CGI a été installée lorsque BackupPC a été configuré au moyen de configure.pl (cf. "Installing cgi script BackupPC_Admin in" dans le fichier Output_configure.pl.txt que l'on a sauvegardé) Dans ce répertoire il y a -r-sr-xr-- 1 backuppc backuppc 3986 Oct 26 18:03 BackupPC_Admin* Adapter les droits : ^^^^^^^^^^^^^^^^^^ # chown backuppc:apache BackupPC_Admin # ll /var/www/cgi-bin/BackupPC -r-xr-xr-- 1 backuppc apache 3986 Oct 26 18:03 BackupPC_Admin* # chmod u+s,o= BackupPC_Admin # ll /var/www/cgi-bin/BackupPC -r-sr-x--- 1 backuppc apache 3986 Oct 26 18:03 BackupPC_Admin* Fichier config.pl et variables CGI : vérifier qu'elles sont correctement positionnées : ����������������������������������������������������������������������� $Conf{CgiAdminUserGroup} $Conf{CgiAdminUsers} $Conf{CgiImageDir} $Conf{CgiImageDirURL} i Configurer Apache ^^^^^^^^^^^^^^^^^ Editer /etc/httpd/conf/httpd.conf et rajouter une configuration du type : ScriptAlias /backuppc/ "/chemin/vers_BackupPC_Admin/" Options ExecCGI AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 AuthName "BackupPC Access" AuthType Basic AuthUserFile /etc/BackupPC/htpass.backuppc Require valid-user Créer les utilisateurs qui pourront accéder à l'interface web de BackupPC et entrer les mots de passe qu'ils devront utiliser # htpasswd -c /etc/BackupPC/htpass.backuppc root # htpasswd /etc/BackupPC/htpass.backuppc backuppc Lancer l'interface web ^^^^^^^^^^^^^^^^^^^^^^ http://localhost/backuppc/BackupPC_Admin Problèmes éventuels ------------------ - Dans le menu à gauche, sous "Hosts" pas de liste déroulante avec le nom des machines à sauvegarder ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ => taper dans la zone de recherche le nom d'une machine déclarée dans le fichier /etc/BackupPC/hosts et cliquer sur Résultat : le message d'erreur "Error: Only privileged users can view information about host ." s'affiche. Solution : voir les variables $Conf{CgiAdminUserGroup} $Conf{CgiAdminUsers} La configuration de ces variables n'est pas très claire. Mettre per exemple : $Conf{CgiAdminUserGroup} = '*'; $Conf{CgiAdminUsers} = 'user1 user2'; ou $Conf{CgiAdminUserGroup} = ''; $Conf{CgiAdminUsers} = 'user1 backuppc'; pour pouvoir administrer le serveur (à revoir). Sauvegarde ---------- Choisir dans la liste déroulane sous "Hosts" un ordinateur à sauvegarder () Cliquer sur [Start Full Backup] BackupPC crée automatiquement l'arborescence suivante sous le répertoire de backup (ici /backup) : attention il faut que l'utilisateur backup ait les droits d'accès et d'écriture dans ce répertopire : # ll -R /backup /backup: total 0 drwxr-x--- 3 backuppc backuppc 88 Nov 1 11:56 pc/ /backup/pc: total 0 drwxr-x--- 2 backuppc backuppc 136 Nov 1 11:56 / /backup/pc/: total 8 -rw-r----- 1 backuppc backuppc 0 Nov 1 11:56 LOCK -rw-r----- 1 backuppc backuppc 189 Nov 1 11:56 LOG.112006 -rw-r----- 1 backuppc backuppc 618 Nov 1 11:56 XferLOG.bad => pour avoir une sauvegarde personnalisée de ce PC, placer dans le répertoire /etc/BackupPC/pc/ une copie du fichier /etc/BackupPC/config.pl en lui donnant le nom ou l'adresse IP du PC à sauvegarder suivi de .pl (nom.du.client.pl) et ajuster les variables pour ce PC. Configuration de ssh ------------------- Cf. http://backuppc.sourceforge.net/faq/ssh.html#how_can_client_access_as_root_be_avoided Sur le client ^^^^^^^^^^^^^ - Créer un utilisateur ("admsave" par exemple) et lui mettre un mot de passe - Configurer sudo (en lançant visudo) admsave ALL=NOPASSWD: /usr/bin/rsync => l'utilisateur admsave peut lancer en root sans mot de passe uniquement la commande rsync - Editer /etc/ssh/sshd_config Si le mot clé AllowUsers existe, rajouter admsave dans les utilisateurs autorisés par exemple : AllowUsers toto backuppc@ (cf. www.faqs.org/docs/securing/chap15sec122.html) Sur le serveur ^^^^^^^^^^^^^^ - Vérifier que l'utilisateur "backuppc" puisse se connecter via ssh en tant qu'utilisateur "admsave" sur le client $ su - backuppc Password : [backuppc]$ ssh admsave@ - Pour éviter d'avoir à entrer le mot de passe de l'utilisateur "admsave", créer un couple clé publique/clé privée : [backuppc]$ ssh-keygen -t rsa et copier la clé publique dans le répertoire de l'utilisateur admsave sur le client : [backuppc]$ scp ~/.ssh/id_rsa.pub admsave@:~/.ssh/authorized_keys (NB : le répertoite .ssh doit exister sur le client, sinon message d'erreur : scp: /home/admsave/.ssh/authorized_keys: No such file or directory) - Editer /etc/BackupPC/config.pl et modifier $Conf{RsyncClientCmd} pour que l'utilisateur "admsave" puisse lancer "sudo rsync" sans avoir à fournir le mot de passe root : remplacer $Conf{RsyncClientCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+'; par : $Conf{RsyncClientCmd} = '$sshPath -q -x -l admsave $host nice -n 19 sudo $rsyncPath $argList+'; - Tester en lançant une sauvegarde complète - Modifier/créer un fichier et un répertoire sur le client et vérifier que la sauvegarde incrémentale fonctionne. - De même modifier la commande de restauration $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+'; en $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l admsave $host nice -n 19 sudo $rsyncPath $argList+'; - et tester en lançant une restauration Démarrage automatique de BackupPC --------------------------------- Quand tout fonctionne bien, configurer le démarrage automatique : # chkconfig --add backuppc # chkconfig --level 35 backuppc on (démarre dans les niveaux 3 et 5) ( cf /etc/inittab : 3 - Full multiuser mode 5 - X11 # chkconfig --list backuppc ou passer par mcc. Fichier de logs --------------- /var/log/BackupPC/LOG Configuration pour sauvegarde d'un PC sous windows en utilisant ssh et rsync ----------------------------------------------------------------------------- Sur le client ------------- - Installer cygwin modifier la sélection par défaut pour inclure rsync - Configurer ssh ssh-user-config NB : sudo et nice n'existent pas dans cygwin Sur le serveur -------------- - Vérifier que la connexion en ssh sur le client avec le login utilisateur que l'on veut utiliser fonctionne. Copier ou ajouter la clé publique de backuppc dans le répertoire de l'utilisateur chargé de la sauvegarde sur le client : Pour copier : [backuppc]$ scp ~/.ssh/id_rsa.pub @:~/.ssh/authorized_keys (NB : le répertoite .ssh doit exister sur le client, sinon message d'erreur : scp: /home//.ssh/authorized_keys: No such file or directory) Pour ajouter : [backuppc]$ cat .ssh/id_rsa.pub | ssh @ "cat >> .ssh/authorized_keys" - Créer un fichier /etc/BackupPC/pc/.pl - Ajouter dans le fichier /etc/BackupPC/hosts le client windows à sauvegarder - recharger le fichiers de configuration # service backuppc reload - Lancer un "Full Backup" et vérifier le résultat. Problèmes --------- Démarrage d'Apache ------------------ # service httpd restart Starting httpd: Syntax error on line 46 of /etc/httpd/modules.d/41_mod_ssl.default-vhost.conf: SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty => Pas de certificat SSL, le créer : # /usr/sbin/mod_ssl-gentestcrt Mot de passe refusé à la connexion sur la page backuppc ------------------------------------------------------- "Authentification failed" => # tail -f /var/log/httpd/error.log "Permission denied: Could not open password file" Vérifier si apache peut accéder au répertoire contenant le fichier de mots de passe, par exemple (fichier de mots de passe dans /etc/BackupPC): # su - apache -sh-3.1$ ls /etc/BackupPC/ ls: /etc/BackupPC/: Permission denied -sh-3.1$ ll /etc | grep Bac drwxr-x--- 3 backuppc backuppc 1024 Nov 22 11:46 BackupPC/ => # chmod o+x /etc/BackupPC/ # ll /etc/ | grep Bac drwxr-x--x 3 backuppc backuppc 1024 Nov 22 11:46 BackupPC/ ou encore : # chown backuppc:apache /etc/BackupPC/ # ll /etc/ | grep Bac drwxr-x--- 3 backuppc apache 1024 Nov 22 11:46 BackupPC/ aborted by signal=ALRM ----------------------- Peut être dû à un "time out" : voir la variable $Conf{ClientTimeout}, par défaut 7200 secondss (2 heures) Exécuter en ligne de commande la sauvegarde du client qui pose problème : $ su - backuppc Password: -bash-3.00$ BackupPC_dump -v -f -bash: BackupPC_dump: command not found -bash-3.00$ locate BackupPC_dump /opt/BackupPC/bin/BackupPC_dump -bash-3.00$ /opt/BackupPC/bin/BackupPC_dump -v -f La page web s'affiche en texte uniquement ----------------------------------------- il est possible que le répertoire contenant les images ne soit pas accessible : vérifier les logs : # tail -f /var/log/httpd/error_log => L'autoriser dans /etc/httpd/conf/httpd.conf, par exemple si /usr/local/apache/htdocs/BackupPC/ contient les images : Alias /BackupPC "/usr/local/apache/htdocs/BackupPC/" Options -Indexes MultiViews AllowOverride None Order allow,deny Allow from all fileListReceive failed ---------------------- Got fatal error during xfer (fileListReceive failed) Backup aborted (fileListReceive failed) Peut être dû au fait que backuppc a attendu en vain l'entrée du mot de passe pour se connecter sur le client. => Se loger en tant qu'utilisateur "backuppc" Taper : ssh et vérifier que la connexion se fasse sans mot de passe Si ce n'est pas le cas, voir "Configuration de ssh" ci dessus. Drakbackup °°°°°°°°°° Permet de sauvegarder des données locales sur différents médias, y compris à travers le réseau sur une machine distante : c'est la machine locale qui commande ses sauvegardes. Contrairement à BackupPC ne permet pas de centraliser les sauvegardes de données de machines distantes sur un serveur. Version : --------- # drakbackup --version Répertoires et fichiers utilisés par drakbackup ----------------------------------------------- /etc/drakxtools/drakbackup drakbackup.conf drakbackup_catalog /etc/drakxtools/drakbackup/restores/ /var/lib/drakbackup/ list_base_user_toto_20080422_222202.txt.gz ~/ .backupignore (ou autre localisations) Configuration ------------- Lancer drakbackup en root Passer tout de suite à Advanced configuration plus souple que Wizard Configuration What : sélectionner les données à sauvegarder (What) Users : cocher "Do not include browser cache" Décocher "Use incremental/Differential Backups" pour forcer la sauvegarde complète. Sinon le cocher et sélectionner de préférence Use incremental Backups (c'est le choix par défaut) Where : sélectionner l'emplacement de sauvegarde (PC distant via ssh de préférence) Pour une sauvegarde sur PC distant via ssh : cocher "Use network connection to backup Sélectionner "Net method: ssh" cocher "Other (not drakbackup) keys in place already" et créer un jeu de clés ssh : voir ci-dessous) "Host name ou IP" du la mechine qui recevra les sauvegardes Directory ... bien mettre le path complet "Login name" : mettre celui de l'utilisateur qui recevra le backup et qui a la clé root du PC source (sur lequel tourne drakbackup), cf. ci-dessous Password : ne rien mettre, c'est ssh qui gère tout When : Configurer à quel moment doit être faite la sauvegarde : cocher "Use daemon" Choisir "Custom" pour pouvoir définir manuellement les intervalles de sauvegarde (cf. le Help) : la commande cron se construit automatiquement dès qu'on sélectionne les minutes./var/lib/drakbackup/backup_ba More options Configurer l'envoi de mails (pour savoir si ça fonctionne) Cocher delete Hard Drive tar ... Cocher view restore log ... .backupignore Fichier texte indiquant les répertoires/fichiers à exclure Créer ce fichier dans la racine du répertoire à sauvegarder. Attention : mal foutu, n'accepte pas différentes façons de nommer les répertoires : /home/bibi/tmp ne fonctionne pas ! Exemple de syntaxe correcte pour le home d'un utilisateur : ------------------ .* *~ Documents Download tmp Desktop core.* ------------------- - Le répertoire de sauvegarde local (et temporaire) est pas défaut /var/lib/drakbackup/ : il contient backup_base_user_toto_20080422_120837.tar.gz list_base_user_toto_20080422_120837.txt.gz Pour la reconstitution des sauvegardes, il peut être intéressant de sauvegarder : - Le fichier de configuration est pas défaut : /etc/drakxtools/drakbackup/drakbackup.conf Dans le cas de configurations de drakbackup sur plusieurs PCs, il est plus facile de copier ce fichier sur ces PCs et de modifier juste ce qui est nécessaire. Idem avec le(s) fichier(s) .backupignore - Le catalogue des sauvegardes est dans le fichier /etc/drakxtools/drakbackup/drakbackup_catalog : en cas d'erreur (peut contenir de vieilles sauvegardes inutiles que l'on aura supprimées à la main) l'éditer et le modifier Dans le cas de sauvegardes automatiques programmées à travers le réseau via ssh, il faut éviter d'avoir à taper le mot de passe : pour cela, la machine sur laquelle sont stockées les sauvegardes (D(estination)) doit connaître la clé publique de la machine (S(ource)) à sauvegarder. Drakbackup fonctionne en root, c'est donc la clé publique de root qui doit être copiée dans les "authorized-keys" du compte utilisateur de destination : Sur S(ource) créer un jeu de clés en root :ls # ssh-keygen -t rsa Copier la clé publique sur D(estination) : # cat ~/.ssh/id_rsa.pub | ssh utilisateur@Destination "cat >> ~/.ssh/authorized_keys2" (puis vérifier qu'elle a bien été copiée, sinon drakbackup demandera le mot de passe) Vérifier sur D le propriétaire et les droits sur ~/.ssh/authorized_keys2 : -rw------- 1 bibi bibi Si ce n'est pas le cas sshd du PC destination peut continuer à demander un mot de passe => Vérifier les droits sur ~/.ssh/authorized_keys2 : rw uniquement pour le propriétaire, sinon corriger : $ chmod go-rwx ~/.ssh/authorized_keys2~/.ssh/authorized_keys2 Lancer la sauvegarde à la main ------------------------------ # export USER=root; /usr/sbin/drakbackup --daemon Problèmes : *********** Backup destination quota exceeded! 1881 Mb used vs 1000MB allocated ------------------------------------------------------------------- Editer /etc/drakxtools/drakbackup/drakbackup.conf $ sudo vi /etc/drakxtools/drakbackup/drakbackup.conf et mettre une valeur correcte à la place de : MAX_SPACE=1000 No media selected for cron operation ------------------------------------ Dans le fenêtre "When" Ne pas oublier en bas à droite de sélectionner le mdia utilisé (ssh par exemple) No configuration file found please click Wizard or Advanced ----------------------------------------------------------- Un mot de passe pour ssh est demandé ------------------------------------ Vérifier que cat a correctement copié la clé sur la destination, que la clé sur S(ource) et celle sur D(estination) sont bien identiques. Vérifier les droits sur le fichier authorized_keys2 : # ll ~utilisateur/.ssh/authorized_keys2 -rw------- Si les droits sont différents : # chmod 600 ~utilisateur/.ssh/authorized_keys2 Vérifier aussi que l'utilisateur est bien le propriétaire du fichier Si Drakbackup persiste à demander le mot de passe, cela peut provenir des droits sur le répertoire ssh : n'accorder les droits d'entrée, lecture, écriture qu'à l'utilisateur : # chmod go-rwx ~utilisateur/.ssh (ou chmod 700 ~utilisateur/.ssh) "Warning: Identity file /root/.ssh/identity-drakbackup not accessible: No such file or directory." -------------------------------------------------------------------------------------------------- Pour éviter ce message : Configuration manuelle > Où > Réseau et cocher "D'autres clés (pas celles de drakbackup) sont déjà en place" Drakbackup semble se bloquer sur un fichier ou répertoire, pas d'affichage du rapport de sauvegarde --------------------------------------------------------------------------------------------------- Peut-être dû à la taille du fichier à transférer par ssh : le transfert d'un fichier de 500 Mo peut durer de nombreuses minutes avant que le compte rendu de sauvegarde s'affiche. On peut vérifier que ssh et scp sont actifs avec la commande top. On peut aussi comparer la taille du fichier à tansférer avec celle du fichier qui augmente petit à petit dans le répertoire destination. Pourrait être dû à l'absence de serveur SMTP local (à vérifier) ? Editer /etc/drakxtools/drakbackup/drakbackup.conf et supprimer : SMTP_SERVER=localhost ou bien indiquer un serveur SMTP valide. Récupération de la sauvegarde ----------------------------- Si ce n'est pas possible à partir de drakbackup, se positioner dans le répertoire où se trouve la sauvegarde et taper : for f in `ls -tr`; do tar -zxvf $f; done ce qui reconstitue la sauvegarde à partir de l'ensemble des fichiers : backup_base_user....tar.gz backup_incr_user....tar.gz ls -tr liste les fichiers du plus ancien au plus récent (-t du plus récent au plus ancien, -r pour inverser l'ordre) Rechercher un nom de fichier dans la sauvegarde ----------------------------------------------- for f in `ls -tr`; do tar -tf $f | grep -i LeNomDuFichier ; done Suppression des sauvegardes --------------------------- - Effacer les fichiers dans le répertoire où ils sont sauvegardés - Vider le répertoire /var/lib/drakbackup/ - Effacer la commande cron de sauvegarde (sudo crontab -e) - Effacer /etc/drakxtools/drakbackup/drakbackup.conf - Effacer /etc/drakxtools/drakbackup/drakbackup_catalog Autres softs et docs à voir =========================== http://www.coagul.org/article.php3?id_article=481 Synchronisation de dossiers avec UNISON http://www.coagul.org/article.php3?id_article=234 Copier/partager/synchroniser un fichier entre deux postes Software raid array =================== http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html http://www2.linuxjournal.com/article/3778 http://linas.org/linux/raid.html http://evms.sourceforge.net/ http://www.drbd.org/ NAS (Network Attached Storage), SAN (Storage Area Network) ========================================================== FreeNAS (the free NAS Server), à base de FreeBSD http://www.freenas.org/ Openfiler www.openfiler.com Images, slideshow (diaporama), traitement d'images, photos ========================================================== gimp kuickshow xxx gthumb xx gwenview xxx #urpmi kipi-plugins pour ajouter des plugins showimg xx kim (Image menu for kde) gqview xnview xxx imagemagick mogrify Création de panoramas --------------------- hugin # urpmi hugin avec éventuellement en plus : AutoPano-Sift # urpmi autopano-shift et Enblend # urpmi enblend cf. http://www.commentcamarche.net/faq/sujet-6740-creer-une-vue-panoramique-avec-hugin-et-autopano-sift Récupérer/modifier les données exif, renommer les fichiers suivant le contenu exif ---------------------------------------------------------------------------------- jhead (urpmi jhead) exiftool http://www.sno.phy.queensu.ca/~phil/exiftool/ http://www.linux-magazine.com/w3/issue/61/Image_Processing_with_EXIF.pdf Format "RAW" ============ dcraw ufraw ufraw-gimp RawTherapee Traitement, retouche d'images ============================= gimp krita Inkscape Xara Xtreme fotoxx qtpfsgui (http://bellette.tuxfamily.org/tutos/hdr/3.php) Enfuse GIMP ==== Documentation : --------------- http://www.gimp.org/docs/ http://www.gimp.org/tutorials/ http://www.wideo.fr/search/?q=gimp http://www.monsieurnicolas.com/trOpFastOch/gimp/index.html http://www.infetech.com/ http://raymond.ostertag.free.fr/php/webring.php3 ImageJ ====== Télécharger la version pour Linux x86 avec inclus le Sun Java runtime sur : http://rsb.info.nih.gov/ij/download.html Décompresser : $ tar zxvf ij136-x86.tar.gz Exécuter : $ cd ImageJ $ ./run Pour le mettre par exemple dans opt et le rendre exécutable par quiconque : # mv ImageJ/ /opt # chmod ugo+x /opt/ImageJ/* # chown -R root:root /opt/ImageJ/ On peut déplacer java dans un répertoire plus logique, par exemple # mv /opt/ImageJ/jre/ /opt/java/ # chown -R root:root /opt/java et créer un lien vers l'exécutable java : # ln -s /opt/java/jre/bin/java /usr/bin/java Remplacer dans /opt/ImageJ/run : jre/bin/java -mx256m -cp ij.jar ij.ImageJ par java -mx256m -cp /opt/ImageJ/ij.jar ij.ImageJ Créer un lien vers /opt/ImageJ/run : # ln -s /opt/ImageJ/run /usr/bin/ImageJ ImageJ peut maintenant être démarré de la façon suivante : $ ImageJ ou $ /opt/ImageJ/run Installation de GoogleEarth 6 64 bits pour Linux ================================================ Télécharger sur www.google.fr # chmod +x GoogleEarthLinux.bin # ./GoogleEarthLinux.bin Googleearth s'installe mais ne fonctionne pas : $ googleearth /usr/local/bin/googleearth: line 49: /opt/google-earth/googleearth-bin: No such file or directory alors que googleearth-bin est bien présdent dans /opt/google-earth/googleearth-bin En fait googleearth-bin semble être un executable 32 bits : # file googleearth-bin googleearth-bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, strippedSolution , cf. : Solution (cf. http://www.google.com/support/forum/p/earth/thread?tid=773edb588e876497&hl=en et http://forum.mandriva.com/fr/viewtopic.php?f=24&t=133386&p=837554&hilit=googleearth#p837539) Insuffisant ou peut-être pas utile : vérifier que lsb-core et ld-lsb.so.3 soient présents Si ça ne marche toujours pas : $ wget -nd ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2010.1/i586/media/main/release/glibc_lsb-2.4.7-4mdv2010.1.i586.rpm $ rpm -Uvh glibc_lsb-2.4.7-4mdv2010.1.i586.rpm et redémarrer googleearth : $ google-earth Cluster, TreeView ================= Cluster ------- Télécharger Cluster 3, actuellement : http://bonsai.ims.u-tokyo.ac.jp/~mdehoon/software/cluster/cluster-1.35.tar.gz Compilation : $ ./configure configure: error: Failed to locate the Xp library. => quel est la librairie manquante (motif ?) ? $ ./configure --without-x $ make # make install Treeview -------- Documentation : http://jtreeview.sourceforge.net/manual.html Installation : Récupérer la version en cours (actuellement TreeView-1.1.0-bin.tar.gz) Décompresser : $ tar zxvf TreeView-....-bin.tar.gz Mettre le répertoire créé à l'endroit de son choix (/opt par exemple) : # mv TreeView-...-bin/ /opt/ Le rendre exécutable par quiconque : # chmod ugo+x /opt/TreeView-...-bin # chown -R root:root /opt/TreeView-...-bin/ NB : TreeView ne fonctionne pas avec java-1.4.2-kaffe fourni par MDV. Fonctionne avec le java fourni par ImageJ (cf. ci-dessus) Pour que treeview puisse être lancé par tout le monde : Supprimer /opt/TreeView-...-bin/win32TreeView.bat Le remplacer par un fichier treeview contenant la ligne : java -jar -Xmx500m /opt/TreeView-1.1.0-bin/TreeView.jar Rendre ce fichier exécutable : # chmod ugo+x /opt/TreeView-...-bin/treeview Mettre un lien dans /usr/bin # ln -s /opt/TreeView-...-bin/treeview /usr/bin/treeview TreeView peut maintenant être lancé par : $ treeview VOIP Gnomemeeting ============ Paramétrage de shorewall (cf. http://www.gnomemeeting.org/index.php?rub=3&pos=0&faqpage=x213.html) # Pour recevoir les appels : ACCEPT net fw tcp 1720 # H.245 Port Range: TCP port range [30000-30010], ACCEPT fw net tcp 30000:30010 #ACCEPT net fw tcp 30000:30010 # RTP Port Range: UDP port range [5000-5016]: RTP and RTCP channels for audio and video transmission/reception. ACCEPT fw net udp 5000:5016 #ACCEPT net fw udp 5000:5016 # Gatekeeper Port Range: UDP port range [5020-5023], ACCEPT fw net udp 5020:5023 #ACCEPT net fw udp 5020:5023 VOIP libres =========== Gnomemeeting/Ekiga WengoPhone/QuteCom SIP Communicator VOIP peer to peer ================= skype libXv.so.1 sudo urpmi --medi Main32 libxv libXss.so.1 sudo urpmi --medi Main32 libxscrnsaver Ekiga ===== Installation sur MDV 2006 du rpm cooker ekiga Version: 2.0.2-7mdv2007.0 ----------------------------------------------------------------------- $ ekiga ekiga: symbol lookup error: /usr/lib/libedataserver-1.2.so.7: undefined symbol: g_intern_static_string => Problème de dépendances. Solution : installer libglib2.0_0 Version: 2.12.3-1mdv2007.0 Installation sur MDV 2006 des rpm fournis sur le site http://www.ekiga.org/?rub=5 ---------------------------------------------------------------------------------- Télécharger les 6 rpm pour Mandriva : ekiga-2.0.2-1.1.20060mdk.i586.rpm libopal2-2.2.2-0.1.20060mdk.i586.rpm libpwlib1-1.10.1-0.1.20060mdk.i586.rpm libpwlib1-plugins-1.10.1-0.1.20060mdk.i586.rpm libpwlib1-plugins-avc-1.10.1-0.1.20060mdk.i586.rpm libpwlib1-plugins-dc-1.10.1-0.1.20060mdk.i586.rpm Puis # rpm -ivh --nodeps libpwlib1-1.10.1-0.1.20060mdk.i586.rpm # urpmi libpwlib1-plugins-1.10.1-0.1.20060mdk.i586.rpm # urpmi libpwlib1-plugins-avc-1.10.1-0.1.20060mdk.i586.rpm # urpmi libpwlib1-plugins-dc-1.10.1-0.1.20060mdk.i586.rpm # urpmi libopal2-2.2.2-0.1.20060mdk.i586.rpm # urpmi ekiga-2.0.2-1.1.20060mdk.i586.rpm Tests en boucle --------------- voir 500@ekiga.net Problèmes --------- "Impossible to open the selected audio device" Webcam ====== Logiciels à essayer : --------------------- gqcam xawtv motv ffmpeg camorama camstream cheese luvcview uvccapture Webcam avec Pilote uvc (Quickcam Pro 9000), logiciels °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° http://www.quickcamteam.net/software/linux/v4l2-software/ Bug Quickcam Pro 9000 : cf. http://www.quickcamteam.net/documentation/faq/how-many-versions-of-the-quickcam-pro-9000-are-there luvcview -------- Installation : # urpmi luvcview uvccapture ---------- Installation : Télécharger sur http://staticwave.ca/source/uvccapture/ $ tar -jxvf uvccapture-xxx.tar.bz2 $ cd uvccapture $ make $ sudo make install $ which uvccapture /usr/local/bin/uvccapture Prendre une image 1600x1200 avec comme nom par défaut snap.jpg : $ uvccapture -x1600 -y1200 Prendre une image avec comme nom image.jpg (pas d'espace entre o et le nom) : $ uvccapture -image.jpg fswebcam -------- Télécharger sur http://www.firestorm.cx/fswebcam/ $ sudo urpmi fswebcam-20070108-1.x86_64.rpm Capturer une image : $ fswebcam --save image.jpg $ fswebcam -r 960x720 --save image.jpg Installation du pilote gspca (MDV 2008.1) °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Cf. http://www.aptget.net/index.php?option=com_content&task=view&id=132&Itemid=251 # uname -r Indique la version du noyau # urpmi gspca choisir le module correspondant au noyau installé # modprobe gspca charge le module en mémoire # lsmod|grep gspca vérifie qu'il est bien chargé (sinon lsmod ne retourne rien) gspca 694992 0 compat_ioctl32 13184 1 gspca videodev 31104 1 gspca usbcore 145712 7 gspca,snd_usb_audio,snd_usb_lib,uhci_hcd,ohci_hcd,ehci_hcd # modinfo gspca | head -1 localise le module filename: /lib/modules/2.6.24.4-server-1mnb/dkms-binary/drivers/usb/media/gspca.ko.gz gqcam "/dev/video: No such file or directory" Surveillance par webcam ======================= motion ? Camescope, camera numérique, video ================================== http://www.lprod.org/wiki/doku.php/video Acquisition vidéo ----------------- dvgrab Montage ------- kino Création de dvd --------------- mandvd Conversion de formats vidéo ---------------------------- Handbrake http://handbrake.fr/downloads.php Arista http://programmer-art.org/projects/arista-transcoder http://www.korben.info/convertir-video-linux.html Enregistrement du bureau, capture d'écran ========================================= http://fr.wikipedia.org/wiki/Liste_de_logiciels_de_screencasting recordmydesktop --------------- http://recordmydesktop.sourceforge.net/about.php http://fr.lprod.org/wiki/doku.php?id=video:recordmydesktop Dictionnaires ============= Définition et prononciation des mots anglais : Merriam-Webster online (http://www.m-w.com/) Prononciation ------------- Récupère et joue le fichier son du site Merriam-Webster mvsay (http://www.floc.net/mwsay/) Télévision ========== http://www.linuxtv.org Miro °°°° www.getmiro.com Peertv °°°°°° http://www.peertv.eu/index.php?action=getDownloadsForOs&id=3 Doir fonctionner avec Free, Darty Ne fonctionne pas avec 9 Neuf.tv °°°°°°° Fonctionne avec VLC et les chaînes diffusées par neuf. Récupérer le fichier tvsurpc.m3u sur http://televisionsurpc.neuf.fr/ Cliquer sur ce fichier pour lancer VLC qui affichera la première chaîne de la liste. Pour enregistrer un flux (VLC 0.9.3): - Copier l'adresse du flux (émission) que l'on veut enregistrer (à partir du fichier tvsurpc.m3u par exemple) - Menu Media > Convertir/Sauvegarder > Réseau - Dans le champ "Adresse", coller l'adresse du flux copié précédemment (ou récupérer cette adresse dans Outils > Information sur le média) - Cliquer en bas de la fenêtre sur [Convertir /Sauvegarder] - Dans le fenêtre "Flux de sortie" qui s'ouvre, cocher éventuellement sur "Jouer en local" (pour avoir l'affichage en même temps que l'enregistrement) - Cocher "Fichier" et taper un nom pour le fichier de sortie ; utiliser l'extension mpeg ou mpg (qui correspond au profil choisi ci-dessous, sinon le type de fichier peut ne pas être reconnu par le lecteur) - Cliquer sur la liste déroulante en face de "Profil" et choisir MPEG-2 (en effet, pour l'enregistrement des chaînes TV seul le profil "MPEG-2" semble fonctionner correctement : à vérifier). - Cliquer en bas de la fenêtre sur [Save] - Pour arrêter l'enregistrement, clic droit sur le film dans la fenêtre VLC principale et cliquer sur "Stop". Pour automatiser au moyen d'un script, voir l'utilisation de VLC en ligne de commande : http://www.unixgarden.com/index.php/audio-video/convertir-une-video-avec-vlc http://wiki.videolan.org/Documentation:Streaming_HowTo/Advanced_Streaming_Using_the_Command_Line Zattoo °°°°°° http://zattoo.com/fr Télécharger le rpm pour linux (http://zattoo.com/fr/download/linux?download=1&version=Linux-i386-rpm) Voir les instructions d'installation en fin de page. Sur MDV 2008 x86-64 un certain nombre de librairies ne sont pas trouvées : elles sont en fait dans /usr/lib64. Essais avec liens sur les librairies 64 bits ne fonctionnent pas : # ln -s /usr/lib64/libgnomeui-2.so.0.2201.0 /usr/lib/libgnomeui-2.so.0 $ zattoo_player zattoo_player: error while loading shared libraries: libgnomeui-2.so.0: wrong ELF class: ELFCLASS64 Les librairie 32 bits fonctionnent : # urpmi libgnomeui2_0 # urpmi libgtkglext-1.0_0 # urpmi libcurl4 # ln -s /usr/lib/libcurl.so.4.0.1 /usr/lib/libcurl.so.3 Clés USB TNT °°°°°°°°°°°° http://www.linuxtv.org/wiki/index.php/DVB-T_USB_Devices Petites applications intéressantes ================================== Dictionnaires °°°°°°°°°°°°° Stardict Kdict Installation de stardict ------------------------ # urpmi stardict Liste des dictionnaires : $ urpmq --fuzzy stardict Français-anglais : # urpmi stardict-freedict-fra-eng Anglais-français : # urpmi stardict-freedict-eng-fra Autres dictionnaires à chercher sur le web (Merriam-Webster, Littré, etc.) : http://stardict.sourceforge.net/Dictionaries.php OCR === http://www.lea-linux.org/cached/index/Logithèque:OCR.html A tester : Clara OCR GOCR Kooka Multimedia, son, video ====================== .mid ---- TiMidity++ Real ---- urpmi mplayerplugin real-codecs .au --- cat bird.au > /dev/audio .mov (Quicktime) ---------------- Installer mplayer RealPlayer ---------- Installer Helix player cf. http://soft.zoneo.net/Linux/ecouter_la_bbc.php Enregistrement de flux audio ou video ------------------------------------- Sous firefox : Video download helper Flux rtsp --------- Exemple : $ mplayer rtsp://streaming.od.tv-radio.com/france_inter/SERVICE/SERVICE20091230.rm Ecouter en enregistrant : $ mplayer rtsp://streaming.od.tv-radio.com/france_inter/SERVICE/SERVICE20091230.rm; mplayer stream.dump Convertir en wav : $ mplayer -ao pcm -nocache stream.dump Convertir en ogg-vorbis : $ sox audiodump.wav prochaine.ogg Enregistrer un flux mms ----------------------- $ mmsrip "mms://......wmv" Destination/nom.wmv Codecs ------ Cf. http://club.mandriva.com/xwiki/bin/view/KB/GettingHelp?language=fr#HLEVADEMECUMDUDEBUTANT http://forum.mandriva.com/viewtopic.php?t=59494 # urpmi faad2 ffmpeg ffmpeg2theora lame-mp3x libdvdcontrol9 libdvdcss2 libdvdnav4 libdvdplay0 libdvdread-utils libdvdread3 libfaad2_0 libffmpeg51 libmatroska0 libmpeg2dec0 libmpeg4ip0 liboggflac3 libquicktime-faac libquicktime-faad libquicktime-lame libquicktime-x264 libsmpeg0.4 libx264_50 mencoder mp32ogg mpeg2dec real-codecs toolame transcode win32-codecs x264 xanim-codecs xvid-divx-devel avifile-win32 mplayerplugin libquicktime-dv audacious-jack mjpegtools SDL_sound streamripper streamtuner dirac-utils helixplayer-real-codecs Découper un fichier wav ======================= wavbreaker Découpage, encodage, montage de videos, films ============================================= Avidemux -------- http://www.avidemux.org/admWiki/index.php?title=Main_Page MEncoder -------- Projectx -------- Doc : http://www.doom9.org/index.html?/DigiTV/projectx-fullguide.htm Décalage image/son ------------------ http://www.framasoft.net/article4756.html : "Le problème se pose si on veut retoucher, par exemple avec avidemux, un enregistrement" sur la TNT. "On se retrouve alors avec une vidéo où le son est décalé par rapport à la vidéo. Cela est dû aux images perdues lors de la diffusion de la vidéo" Solution, par exemple pour un fichier "foo.mpg" enregistré sur la TNT : $ projectx -demux foo.mpg Deux fichiers (image et son, foo.mv2 et foo.m2v) sont créés qu'il faut remultiplexer : $ mplex -f 3 -o out.mpg foo.mp2 foo.m2v (voir les options -f et -o avec mplex --help) Il suffit ensuite de charger le fichier résultant (out.mpg) dans avidemux qui permet - d'éliminer les parties inutiles (pubs en particulier) - de supprimer les marges noires : Menu > Video > Filters > Crop et enfin de compresser en choisissant par exemple : - Video : MPEG-4 ASP (Xvid4) - Audio : MP3 (LAME) Montage d'images fixes jpeg en film =================================== Voir exemples dans le man Voir aussi : http://www.mplayerhq.hu/DOCS/HTML/fr/menc-feat-enc-images.html $ mencoder "mf://*.jpg" -mf fps=2 -o output.avi -ovc lavc $ mencoder mf://*.jpg -mf w=1024:h=768:fps=5 -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o output.avi Lecture des CD/DVD ================== http://www.mplayerhq.hu/DOCS/HTML/fr/cd-dvd.html DVD, avi, DivX, xvid, encodage ============================== http://www.trustonme.net/didactels/204.html Encodage mpeg2 -------------- kmpg2 Enregistement d'écran ===================== Touche Impr ecran Screencast http://news.softpedia.com/news/Screencast-Guide-Capure-Your-Linux-Desktop-on-Video-42626.shtml Istanbul http://linux.softpedia.com/get/Utilities/Istanbul-12358.shtml Streaming (flux) : enregistrement ================================= Rechercher dans la page web source le lien sur le stream. Par exemple si c'est un fichier vidéo flv, rechercher "flv" Si cette adresse n'est pas trouvée (cas par exemple d'adressage indirect), lancer wireshark, capturer le flux (Capture/Options, interface : eth0 -ou autre-, Capture Filter : port 80), l'enregistrer et y chercher l'adresse du flux Pour enregistrer : - avec konqueror : lancer la video, puis Localisation > Save as - avec wget : ou bien : wget -O "http://" Capturer un flux RealVideo ou RealAudio (rtsp, .rm ou .ra) ---------------------------------------------------------- cf. http://thomer.com/howtos/capture_realstream.html $ mplayer -noframedrop -dumpfile out.rm -dumpstream rtsp://url/to/file.rm Trouver les URL de flux ======================= http://pyurlsnooper.sourceforge.net help users locate the urls of audio and video files so that they can be recorded. Aspirer un site web =================== httrack (urpmq -y httrack) wget Avec wget --------- Cf le man $ wget -rk -np http://le.point.d'aspiration -r récursif -k (ou --convert-links) Convertit les liens du document pour qu'il soit consultable en local -np (ou --no-parent) Ne pas remonter dans les répertoires parents flv === Lire avec : - vlc File > Open file - firefox /addresse/du/fichier.flv wxWidgets ========= - installer si ce n'est déjà fait les librairies GTK+ : # urpmi libgtk+2-devel Installation de wxBase ---------------------- - Télécharger à partir de http://www.wxwidgets.org/downloads/#latest_stable (cliquer sur Sourceforge -> http://sourceforge.net/project/showfiles.php?group_id=9863 $ tar -zxvf wxBase-2.8.9.tar.gz $ cd wxBase-2.8.9 $ ./configure erreur => config.status: error: cannot find input file: samples/Makefile.in Installation de wxX11 --------------------- idem : erreurs au make Installation de wxAll --------------------- $ tar -zxvf wxWidgets-2.8.9.tar.gz $ cd wxWidgets-2.8.9 $ ./configure $ make # make install Installation sans problème Statistiques et data mining =========================== R Stats101 (resampling) www.statistics101.net RapidMiner (data mining) www.rapidminer.com Rattle (data mining sous R) rattle.togaware.com Explorase (analyses sousR) metnet.vrac.iastate.edu/MetNet_exploRase.htm Statistiques : R ================= Mirroir local : http://cran.univ-lyon1.fr/ http://cran.r-project.org/index.html http://lib.stat.cmu.edu/R/CRAN/doc/FAQ/R-FAQ.html http://www.sciviews.org/_rgui/ "R & BioConductor Manual" : http://faculty.ucr.edu/~tgirke/Documents/R_BioCond/R_BioCondManual.html#R_functions MDV 2007.0 : Installer R-base (version 2.4.0-1 sous MDV 2007.0) ou installer R-bioconductor (installe R et les librairies nécessaires pour l'analyse statistique des données génomiques) MDV 2007.1 Le rpm R-base-2.4.1-2mdv2007.1.i586 est à jour : R version 2.4.1 (2006-12-18) NB : ce rpm n'installe que libgfortran : c'est suffisant pour R, mais pas pour bioconductor, voir plus loin. Problème : ---------- "no png support in this version of R" Solution : installer R à partir des sources Installation de la dernière version de R (actuellement R-2.5.1.tar.gz) --------------------------------------------------------------- http://cran.r-project.org/doc/manuals/R-admin.html Désinstaller la version mdv (qui désinstalle par la même occasion les programmes qui en dépendent, bioconductor, rkward ...) Télécharger la dernière version de R (sur http://cran.univ-lyon1.fr/ par exemple) $ tar -zxvf R-2.4.1.tar.gz Voir plus loin à "Installation de R et Bioconductor, en résumé" le résumé d'une installation de R correcte $ ./configure --enable-R-shlib 2>&1 | tee compil (--enable-R-shlib : nécessaire pour rkward, cf. son fichier INSTALL dans les sources de rkward nécessaire aussi si on veut installer Rserve, utilisé par CARMAweb) 2>&1 | tee compil pour mémoriser ce qui s'affiche - messages d'erreur compris - dans un fichier pour faciliter la recherche des messages "warning" et "error" qui apparaissent un peu partout) Messages d'erreur et warnings : "configure: error: Neither an F77 compiler nor f2c found" => installer gcc-fortran $ sudo urpmi gcc-gfortran Il ne semble pas utile d'installer en plus f2c. "configure: WARNING: you cannot build info or html versions of the R manuals" La doc indique "You will not be able to build the info files unless you have makeinfo".makeinfo fait partie de texinfo. => sudo urpmi texinfo "configure: error: --with-readline=yes (default) and headers/libs are not available" => # urpmi libreadline-devel (lib64readline5-devel) => si nécessaire : # ln /lib/libreadline.so.5.1 /lib/libreadline.so => si nécessaire : urpmi tclreadline (lib64tclreadline2.1.0 ) urpmi tclreadline-devel (lib64tclreadline2.1.0-devel) NB : pas de tclreadline-devel en 32 bits. "configure: WARNING: you cannot build DVI versions of all the help pages" "configure: WARNING: you cannot build PDF versions of all the help pages" => consulter le source de R à l'endroit de ce message, ce qui donne une idée de ce qu'il faut installer $ sudo urpmi tetex-latex (à vérifier : il faut peut être aussi installer : ghostscript-dvipdf tetex-dvips xpdf) $ make 2>&1 |tee makeR (2>&1 |tee makeR pour mémoriser dans un fichier) $ sudo make install Problèmes : Pas d'éditeur ligne intégré (alors que la version R-base mdk l'a). Cf. R FAQ "How can I get command line editing to work?" : "users of Linux binary distributions will need to install packages such as ... readline-devel. => installation de libreadline-devel pas de changement (même après recompilation de R) => make distclean puis recompilation : cette fois-ci l'éditeur fonctionne ! Répertoires intéressants R /usr/local/bin/ /usr/local/lib/R/ Désinstallation --------------- Voir ci-dessous "Désinstallation de la version de R compilée" R Gui ----- http://www.sciviews.org/_rgui/ http://datamining.togaware.com/survivor/Emacs_ESS.html ess : http://stat.ethz.ch/ESS/ kate : http://kate.kde.org/ Colorations syntaxiques (syntax highlightings) pour kate : http://www.kate-editor.org/downloads/syntax_highlighting coloration pour R avec kate V5 : http://www.kate-editor.org/syntax/2.5/r.xml Bioconductor ============ Documentations : ---------------- "R & BioConductor Manual" : http://faculty.ucr.edu/~tgirke/Documents/R_BioCond/R_BioCondManual.html#R_functions "How to install Bioconductor" : http://www.bioconductor.org/download Lancer R (en root), puis : > source("http://www.bioconductor.org/biocLite.R") > biocLite() Running biocinstall version 1.9.9 with R version 2.4.1 Your version of R requires version 1.9 of Bioconductor. Will install the following packages: [1] "affy" "affydata" "affyPLM" "annaffy" "annotate" [6] "Biobase" "Biostrings" "DynDoc" "gcrma" "genefilter" [11] "geneplotter" "hgu95av2" "limma" "marray" "matchprobes" [16] "multtest" "ROC" "vsn" "xtable" ou bien la version longue : > source("http://bioconductor.org/getBioC.R") > getBioC() Running biocinstall version 1.9.9 with R version 2.4.1 Your version of R requires version 1.9 of Bioconductor. Will install the following packages: [1] "affy" "affydata" "affyPLM" "annaffy" "annotate" [6] "Biobase" "Biostrings" "DynDoc" "edd" "gcrma" [11] "genefilter" "geneplotter" "globaltest" "hgu95av2" "limma" [16] "makecdfenv" "marray" "matchprobes" "multtest" "pamr" [21] "ROC" "siggenes" "sma" "statmod" "tkWidgets" [26] "vsn" "widgetTools" "xtable" Warning messages: 1: installation of package 'pamr' had non-zero exit status in: install.packages( pkgs = pkgs, repos = repos, dependencies = dependencies, 2: installation of package 'genefilter' had non-zero exit status in: install.pac kages(pkgs = pkgs, repos = repos, dependencies = dependencies, 3: installation of package 'tkWidgets' had non-zero exit status in: install.pack ages(pkgs = pkgs, repos = repos, dependencies = dependencies, 4: installation of package 'affyPLM' had non-zero exit status in: install.packag es(pkgs = pkgs, repos = repos, dependencies = dependencies, > source("/root/tmp/Rtmpm63fhu/downloaded_packages") Ces messages apparaissent si R est installé à partir de R-base-2.4.1-2mdv2007.1.i586 Pour résoudre les warnings 1,2 et 4 installer gcc-gfortran puis relancer l'installation de bioconductor Par contre, le warning n°3 (tkWidgets) ne disparaît qu'après recompilation de R. Warning message: installation of package 'tkWidgets' had non-zero exit status in: install.packages(pkgs = pkgs, repos = repos, dependencies = dependencies, => installation de wxGTK2.7 : même Warning message => vérifier que tcltk est installé et a été trouvé par R lors de la compilation : - dans R : > library(tcltk) ... Tcl/Tk support is not available on this system => recompiler R : $ make distclean $ ./configure --enable-R-shlib --with-readline --with-tcltk 2>&1 | tee configureR $ vi configureR chercher tcl et tk checking for tclConfig.sh... no checking for tkConfig.sh... no => installer libtcl8.4-devel et libtk8.4-devel qui contiennent tclConfig.sh et tkConfig.sh Recompiler checking for tclConfig.sh... no checking for tclConfig.sh in library (sub)directories... /usr/lib/tclConfig.sh checking for tkConfig.sh... no checking for tkConfig.sh in library (sub)directories... /usr/lib/tkConfig.sh Lancer R > library(tcltk) Loading Tcl/Tk interface ... done Ca marche Ou bien > library(tcltk) Loading Tcl/Tk interface ... Error in fun(...) : Can't find a usable tk.tcl in the following directories: /usr/lib/tcl8.4/tk8.4 /usr/lib/tk8.4 ./lib/tk8.4 ./lib64/tk8.4 ./library ./tk8.4.13/library Vérifier si tk.tcl est installé $ locate init.tcl /usr/lib/tcl8.4/init.tcl /usr/lib64/pentaxpj/BWidget-1.3.1/init.tcl $ locate tkConfig.sh /usr/lib/tkConfig.sh /usr/lib64/tkConfig.sh $ locate tclConfig.sh /usr/lib/tclConfig.sh /usr/lib64/tclConfig.sh sudo ln /usr/lib/tkConfig.sh /usr/lib/tcl8.4/tk8.4/tkConfig.sh Relancer l'installation de bioconductor -> plus aucune erreur ! La fin des messages de ./configure : ------------- R is now configured for x86_64-unknown-linux-gnu Source directory: . Installation directory: /usr/local C compiler: gcc -std=gnu99 -g -O2 Fortran 77 compiler: gfortran -g -O2 C++ compiler: g++ -g -O2 Fortran 90/95 compiler: f95 -g -O2 Interfaces supported: X11, tcltk External libraries: readline Additional capabilities: iconv, MBCS, NLS Options enabled: shared R library, shared BLAS, R profiling Recommended packages: yes -------------- Tester l'installation comme indiqué sur http://staff.pubhealth.ku.dk/~kaha/BioC2003/ à "Testing Bioconductor" > library(Biobase) Loading required package: tools ... > library(tkWidgets) Loading required package ... > vExplorer() ouvre la fenêtre "BioC Vignettes Explorer" > library(XML) Error in library(XML) : there is no package called 'XML' => télécharger le package XML sur http://cran.univ-lyon1.fr/ (par exemple) L'installer : # R CMD INSTALL /chemin/vers/le/fichier/téléchargé/XML_1.7-1.tar.gz (ou sous R : install.packages("XML")) Relancer R et tester à nouveau : > library(XML) plus d'erreur ! **************** Installation de R et Bioconductor, en résumé **************************** ------------------------------------------------------------------------------------------ Pour le moment (MDV 2007.1) le rpm de R-base ne permet pas une installation correcte de bioconductor. Il est nécessaire de le compiler. Installationde R : `````````````````` # urpmi gcc-gfortran # urpmi libtcl-devel # urpmi tclreadline # urpmi libreadline-devel # urpmi libncurses-devel # urpmi libtclreadline # urpmi libtclreadline-devel # urpmi texinfo # urpmi tk # urpmi libtk-devel # urpmi tetex-latex # urpmi libpng # urpmi libpng-devel # urpmi libjpeg # urpmi libjpeg-devel ou en plus court : sudo urpmi gcc-gfortran libtcl-devel tclreadline libncurses-devel libtclreadline libtclreadline-devel libreadline-devel texinfo tk libtk-devel tetex-latex libpng libpng-devel libjpeg libjpeg-devel $ tar -zxvf R-n°version.tar.gz $ ./configure --enable-R-shlib --with-readline --with-tcltk 2>&1 | tee configureR ------------------------------------ R is now configured for i686-pc-linux-gnu Source directory: . Installation directory: /usr/local C compiler: gcc -std=gnu99 -g -O2 Fortran 77 compiler: gfortran -g -O2 C++ compiler: g++ -g -O2 Fortran 90/95 compiler: gfortran -g -O2 Obj-C compiler: Interfaces supported: X11, tcltk External libraries: readline Additional capabilities: PNG, JPEG, iconv, MBCS, NLS Options enabled: shared R library, shared BLAS, R profiling Recommended packages: yes --------------------------------------- $ make 2>&1 |tee makeR $ sudo make install Installation de Bioconductor (en root) : Installation de Bioconductor : `````````````````````````````` $ sudo R > source("http://bioconductor.org/getBioC.R") > getBioC() Installer de nouveaux packages bioconductor ------------------------------------------- Chercher le package sur http://www.bioconductor.org/packages/release/BiocViews.html et plus précisemment sur http://www.bioconductor.org/packages/release/Microarray.html pour les microarrays Télécharger les sources L'installer en root par la commande : $ sudo R CMD INSTALL .tar.gz ou à partir de R : $ sudo R > install.packages(c("paquet1", "paquet2", "paquet3")) Désinstallation de la version de R compilée ------------------------------------------- Lancer éventuellement un : ls /usr/local/lib/R/library > librariesR.txt pour mémoriser les librairies installées, puis $ sudo make uninstall (NB : ne pas lancer "make clean", "make distclean" avant, sinon refaire un "./configure --enable-R-shlib --with-readline --with-tcltk" REMARQUE : Il semble bien que "make uninstall" ne désinstalle pas les librairies dans "/usr/local/lib/R/library" (ou "/usr/local/lib64/R/library"). En connséquence, pour une mise à jour de R il suffit de : - compiler et installer la nouvelle version de R comme indiqué ci-dessus - Puis en root : > update.packages(ask=FALSE) Mise à jour des paquets R > source("http://bioconductor.org/getBioC.R") > getBioC() Installe bioconductor > update.packages(repos=biocinstallRepos(), ask=FALSE) Mise à jour des paquets Bioconductor présents dans "/usr/local/lib/R/library" rkward (GUI pour R) =================== Problème : ---------- "The PHP backend could not be started. Check whether you have correctly configured the location of the PHP-binary (Settings->Configure Settings->PHP backend)" => installer php-cli Documentation ------------- http://rkward.sourceforge.net/wiki/index.php?title=Getting_Started_Using_RKWard Installation à partir des sources (rkward-0.4.7.tar.gz) ------------------------------------------------------- Nb : il faut au préalable avoir compilé R avec ./configure --enable-R-shlib (Cf. fichier INSTALL dans les sources de rkward) $ tar -zxvf rkward-0.4.7.tar.gz $ ./configure $ make # make install Rattle ====== http://datamining.togaware.com/survivor/index.html http://www.maths.anu.edu.au/~johnm/courses/dm/math3346/2006/pdf/rattle.pdf # R > install.packages ("rattle") > install.packages ("RGtk2") ... checking pkg-config is at least version 0.9.0... yes checking for GTK... configure: error: GTK version 2.8.0 required ERROR: configuration failed for package 'RGtk2' => Solution : # urpmi libgtk+2-devel (voir aussi glade ci-dessous si au début de la compilation de RGtk2 on a un message concernant Glade non trouvé) $ R > library(rattle) > rattle() Error in rattle() : could not find function "gladeXMLNew" => Solution : # urpmi libglade2.0_0-devel et relancer l'installation de RGtk2 : > install.packages ("RGtk2") Autres packages conseillés dans rattle.pdf (cf. ci-dessus) : # R > install.packages (c("bitops","cba","combinat","ellipse","fBasics","fpc","gbm","gregmisc","kernlab","maptree","randomForest","RODBC","ROCR","rpart","XML")) also installing the dependencies ‘RUnit’, ‘zoo’, ‘fEcofin’, ‘fUtilities’, ‘robustbase’, ‘fCalendar’, ‘fSeries’, ‘fImport’, ‘gdata’, ‘gmodels’, ‘gplots’, ‘gtools Problème d'installation de RODBC : configure: error: "ODBC headers sql.h and sqlext.h not found" => voir la solution dans le README du paquet à "ODBC under Windows" Cairo ----- Pour que rattle utilise cairo, installer cairoDevice et (probablement) Cairo : > install.packages("Cairo") > install.packages("cairoDevice") Lancement --------- $ R > library(rattle) # rattle en ligne de commande > rattle() # interface graphique exploRase ========= http://metnet.vrac.iastate.edu/MetNet_exploRase.htm Nécessite l'installation de ggobi et rgobi ggobi ----- cf. http://www.ggobi.org/downloads/ $ tar -jxvf ggobi-2.1.7.tar.bz2 $ ./configure --with-all-plugins 2>&1 | tee configuregobi $ make 2>&1 | tee makegobi $ sudo make install $ make ggobirc $ sudo mkdir -p /etc/xdg/ggobi $ sudo cp ggobirc /etc/xdg/ggobi/ggobirc rggobi ------ # R > install.packages("rggobi") .... checking for GGOBI... configure: error: Package requirements (ggobi) were not met: No package 'ggobi' found Il semble que les librairies ggobi ne soient pas trouvées. => Solution - ajouter /usr/local/lib dans /etc/ld.so.conf (on y trouve libggobi.so) # ldconfig toujours la même erreur - mettre un lien dans /usr/lib sur les fichiers de description de ggobi qui se trouvent dans /usr/local/lib/pkgconfig : # ln -s /usr/local/lib/pkgconfig/ggobi.pc /usr/lib/pkgconfig/ggobi.pc # ln -s /usr/local/lib/pkgconfig/libR.pc /usr/lib/pkgconfig/libR.pc plus d'erreur exploRase : installation ------------------------ http://www.bioconductor.org/packages/2.1/bioc/html/explorase.html # R > source("http://bioconductor.org/biocLite.R") > biocLite("explorase") Lancement : $ R > library(explorase) > explorase() Suivre l'avancement de certains programmes bioconductor ======================================================= Certaines fonctions peuvent durer plusieurs heures sans qu'aucun message s'affiche à l'écran. Pour suivre l'état d'avancement des téléchargements effectués par la fonction ABPkgBuilder() du package AnnBuilder, plusieurs solutions : lsof ---- # lsof -i | grep ftp iptraf ------ # iptraf ou, pour avoir le programme en anglais : # LANG=C iptraf IP traffic monitor > eth0 Dans la fenêtre bleu du haut choisir avec les flèches (haut/bas) la connexion à suivre : le nombre de paquets et le débit s'affichent dans le fenêtre du bas. Suivre l'augmentation de taille des dossiers téléchargés -------------------------------------------------------- Le problème est souvent de savoir où sont téléchargés ces fichiers. Par défaut ABPkgBuilder stocke les fichiers téléchargés dans un sous répertoire de ~/tmp dont le nom change à chaque lancement de R (RtmpsF08CK par exemple). Sous R son nom est retourné par la fonction tempdir(). Malheureusement si l'on n'a pas noté la valeur de tempdir, il faut attendre la fin de ABPkgBuilder pour connaître sa valeur. Si les répertoires commençant par R sont peu nombreux, on peut le repérer par un ls ~/tmp/R* Sinon, repérer dans tmp les répertoires les plus gros (les fichiers téléchargés par ABPkgBuilder font plusierus centaines de Mo) : $ du ~/tmp --max-depth=1 |sort -rn Les répertoires les plus gros sont en tête. ip_conntrack ------------ # cat /proc/net/ip_conntrack filtrer avec un grep sur les adresses ip à suivre, éliminer les addresses sans intérêt au moyen de grep -v Répertoire /tmp ================ Pour qu'il soit vidé à chaque redémarrage : mcc > Boot > Set up how the system boots > Advanced cocher Clean /tmp at each boot PDF === http://www.coagul.org/spip.php?article443 - Extraire le texte d'un fichier PDF : sous Acrobat, File > Save as text - Opérations diverses sur les pdf : pdftk - Mode d'emploi de pdftk : http://faak.freeservers.com/manuelfr-pdftk.htm - pdftotext Pour convertir tous le fichiers pdf d'un répertoire : $ for f in `ls *.pdf`; do pdftotext $f ; done Visualiser ---------- kpdf evince Convertir --------- OOo PDF import extension Editer un PDF ------------- - kword (si pas installé : urpmi koffice) - PDFedit (http://sourceforge.net/projects/pdfedit) : à voir http://pdfedit.petricek.net/index_e.html) Installation de PDFedit ----------------------- $ tar -jxvf pdfedit-0.4.1.tar.bz2 # urpmi boost boostdevel $ ./configure $ make # make install /bin/sh: line 0: cd: /src/moc: No such file or directory Sembmle lié à qt. Pourtant : $ echo $QTDIR /usr/lib/qt3/ Il manque qt-devel (cf. http://wiki.zenwalk.org/index.php?title=Qt3_and_Qt4). A voir. Extraire les images d'un PDF : ------------------------------ - pdfimages source.pdf destination - pdfimages -j document.pdf image => image-001.jpg image-002.jpg etc. ou bien : - utiliser kword Extraire le texte d'un pdf -------------------------- $ ps2ascii FichierSource.pdf FichierDestination.txt $ pdftotext FichierSource.pdf FichierDestination.txt Extraire le texte d'un ensemble de fichiers se trouvant dans le répertoire courant : $ for i in *.pdf; do echo $i; ps2ascii $i $i.txt; done (les fichiers obtenus ont l'extension .pdf.txt. Pour changer l'extension en .txt : for x in `ls *.txt | sed s/.pdf.txt//`; do mv $x.pdf.txt $x.txt; done ) Rechercher l'occurence d'une chaine de caractères dans les fichiers texte obtenus : $ grep -l -i chaine *.txt (l pour n'afficher que le nom des fichiers contenant la chaine) Fichiers postscripts (.ps) ========================== Pour visualiser directement : ghostscript fichier.ps Pour transformer en pdf : ps2pdf fichier.ps Dessins vectoriels et formats ============================= SVG = Scalable Vector Graphics (format libre) Logiciels : OpenOffice : en natif SVG non supporté Karbon14 InkScape Xara Xtreme Voir aussi : http://www.openclipart.org/wiki/index.php/SVG_Tools Browsers : Viewer and Browser Plugins (cf. http://www.openclipart.org/wiki/index.php/SVG_Tools) - Firefox : suport natif du SVG - Konqueror: support SVG via le plugin KSVG => urpmi kdegraphics-ksvg InkScape -------- Bibliothèque de cliparts : http://www.openclipart.org/downloads/index.php Xara Xtreme ----------- http://www.xaraxtreme.org/download/ L'installation à partir de la version Autopackage Archive est simplissime : Rendre exécutable le fichier téléchargé Cliquer dessus pour l'exécuter et suivre les instructions qui s'affichent : Autopackage est téléchargé et installé automatiquement puis xara est aussi installé automatiquement. Lancement de Xara en ligne de commande : xaralx Bibliographie ============= Non testé, à voir : BibTex www.bibtex.org http://gte.univ-littoral.fr/members/dbitouze/pub/conferences-latex-ulco/diapositives-conference/ jabref http://jabref.sf.net tellico http://periapsis.org/tellico/ pybliographer http://pybliographer.org/ bibus http://bibus-biblio.sourceforge.net/ bibutils http://www.scripps.edu/~cdputnam/software/bibutils/ (conversion de formats, endnote en particulier Voir aussi les liens donnés sur cette page BiblioExpress http://www.biblioscape.com/biblioexpress.htm refbase http://refbase.sourceforge.net/ refdb http://refdb.sourceforge.net/ zotero http://www.zotero.org/ Bibliographie sous OOo www.framasoft.net/IMG/pdf/BibliographieTuto.pdf Installation de bibus ///////////////////// Documentations : http://bibus-biblio.sourceforge.net/bibus_doc/html/en/usingBibus.html http://bibus-biblio.sourceforge.net/bibus_doc/html/en/usingOOo.html # urpmi bibus # urpmi mysql (si ce n'est pas déjà fait. Voir le paramétrage plus haut) # urpmi python-mysql $ bibus Menu > Help et suivre les explications de configuration. La localisation du socket (/var/run/mysqld/mysqld.sock) est à changer : taper $ mysqladmin -u root -p version pour connaître celle utilisée (/var/lib/mysql/mysql.sock) Création de la base bibliographique ----------------------------------- A partir du menu Help : Help > First Connection Wizard DB engine, cocher MySQL MySQL daatbase setup Boutons "Database", New Database, choisir le "Database type" (la versin de mySQL est retournée par la commande mysqladmin -u root -p version) A la main : la base est dans bibus/db_models/mysql.sql pour MySQL <= > 4.0 et mysql41.sql pour MySQL >= 4.1 Installation de zotero ---------------------- http://www.zotero.org/ Pour les fonctionalités de zotero, voir les animations "http://www.zotero.org/videos/tour/zotero_tour.htm" "http://www.zotero.org/documentation/quick_start_guide" Télécharger/installer le add-on zotero à partir de http://www.zotero.org/ Récupérer sur rpm.pbone.net ou rpmfind.net le rpm openoffice.org-pyuno pour Mandriva et l'installer. Télécharger l'extension Zotero.oxt à partir de http://www.zotero.org/documentation/openoffice_integration et l'installer dans OpenOffice (Tools > Extension Manager) DNS dynamiques ============== cf.: www.dyndns.com/ www.no-ip.com/ Dyndns ====== ddclient -------- Pour la mise à jour des IP sur un service DynDNS. Installation ------------ # urpmi ddclient A lire : /usr/share/doc/ddclient-3.6.6/README Fichier de configuration : /etc/ddclient/ddclient.conf service ddclient status | start | restart Pour un modem adsl Olitec CPL400 (et d'autres sans doute) : contenu de /etc/ddclient/ddclient.conf : #------------------------------------------------------------- daemon=600 # test effectué toutes les 600 secondes (10 minutes) syslog=yes # log des messages de mise à jour mail= pid=/var/run/ddclient.pid # mémorise l'ID du processus dans ce fichier use=fw # Récupère l'adresse WAN du modem sur le modem lui-même fw=/doc/wan.htm # sur cette page http du modem fw-login= fw-password= server=members.dyndns.org # Adresse de la page web du service dyndns protocol=dyndns2 login= password= machine.dyndns.org # Nécessaire pour que l'adresse IP lue sur le modem # soit associée à l'adresse "machine.dyndns.org" #------------------------------------------------------------- Pour déboguer : # ddclient -daemon=0 -debug -verbose -noquiet Pour lancer le démon # service ddclient start | restart Nb : la mise à jour du DNS de dyndns n'est pas instantannée (de la minute à plusisuers dizaines de minutes, cf. http://www.dyndns.com/support/services/dyndns/faq.html#q19). Pour connaître l'adresse wan de son routeur ------------------------------------------- ceci sans passer par l'utilitaire de gestion du routeur. => se connecter sur n'importe quelle page web qui retourne l'adresse IP du client, par exemple : http://www.cnil.fr/index.php?id=123 http://checkip.dyndns.org http://checkip.dyndns.org:8245/ Pour mettre à jour manuellement son adresse sur DynDns ------------------------------------------------------ http://www.dyndns.com/ Entrer le UserName et le Password Au milieu de la page "My Services" (https://www.dyndns.com/account/services/), section "Hostnames", cliquer sur son hostname (lien en bleu) ce qui ouvre la page https://www.dyndns.com/account/services/hosts/ Cliquer sur "Use auto detected IP address" et valider la modification ("Save Cahnges") Emulations, virtualisation ... ============================== wine (winetricks) wine HQ http://www.winehq.org/ vmware quemu virtualbox VirtualBox ========== http://www.virtualbox.org/wiki/Documentation http://wiki.mandriva.com/ Installation de virtualbox -------------------------- # urpmi virtualbox Lancement --------- $ VirtualBox Utilisation de virtualbox par plusieurs utilisateur : ----------------------------------------------------- Créer un groupe vbox et y mettre les utilisateurs potentiels de virtualbox Première configuration : installation de XP ------------------------------------------- Nb : tous les fichiers de configuration sont dans ~/.VirtualBox Pour que dans le wizard qui suit, le disque virtuel ne soit pas automatiquement créé dans ~/.VirtualBox/VDI, changer l'emplacement en utilisant le menu : Fichier > Préférences > Fichier VDI. Il sera créé automatiquement au bon endroit. On peut le changer plus loin, mais c'est plus compliqué. Par exemple, si on a créé une partition /XP, on peut indiquer l'emplacement : /XP/VirtualBox/VDI Icône "Nouveau" Nom de la machine virtuelle : WindowsXP (ou autre, sans grande importance ; ce nom sera attribué à la machine et au disque virtuels) Système : Windows XP Mémoire : garder la valeur par défaut attention : elle peut être insuffisante pour des programmes gourmands en RAM (Photoshop etc.) ce qui peut rendre la machine virtuelle très lente Disque dur virtuel : - image dynamique : peut-être plus intéressant si on veut faire des sauvegardes de l'image (taille plus petite) - image à taille fixe : sans doute système plus rapide - Nom du fichier image : par défaut le nom attribué à la machine virtuelle (WindowsXP) Le disque virtuel est créé avec les droits de celui qui a lancé VirtualBox. Modifier les droits sur le fichier et les répertoires créés de façon à ce qu'ils soient accessibles par le groupe vbox, par exemple : drwxrwx--- root vbox XP/ drwxrwx--- root vbox VirtualBox/ drwxrwx--- root vbox VDI/ -rw-rw---- root vbox WindowsXP.vdi # chown -R root:vbox /XP # chmod -R u+rwx,g+rwx,o-rwx /XP # chmod u+rw-x,g+rw-x,o-rwx /XP/VirtualBox/VDI/WindowsXP.vdi Installation proprement dite de XP ---------------------------------- Dans l'écran VirtualBox : menu Machine > Préférences > CD/DVD-ROM, cocher "Installer un lecteur CD/DVD-ROM" et sélectionner "Lecteur CD/DVD hôte" Mettre le CD XP dans le lecteur Cliquer sur l'icône "Lancer" Installer XP cemme habituellement Configutation du réseau ----------------------- Ecran VirtualBox Machine > Préférences -> Réseau -> NAT Additions client ---------------- Attention : s'installe après que Windows XP soit installé (c'est un ensemble de drivers pour XP). Dans l'écran Windows XP, cliquer sur l'icône "Lancer" Dans une session administrateur, menu de l'écran WindowsXP : Périphériques > Installer les additions client : répondre aux questions pour que le fichier iso correspondant soit téléchargé et les drivers installés. Parfois l'installation des drivers ne démarre pas automatiquement : dans ce cas aller à la racine du disque où est montée l'image iso et double-cliquer sur VBoxGuestAdditions.exe. Redémarrer W$. Passer du mode fenêtre que mode plein écran et vice-versa --------------------------------------------------------- CTRL F Installations suivantes pour chaque utilisateur ----------------------------------------------- Pour chaque utilisateur : $ VirtualBox configurer comme ci-dessus : dans le wizard, il suffit d'indiquer qu'on veut utiliser le disque virtuel déjà créé. Changement de la taille mémoire allouée à XP -------------------------------------------- Fenêtre VirtualBox Menu Machine > Préférences > Général > Taille mémoire vive de base Problèmes divers °°°°°°°°°°°°°°°° Echec au lancement ////////////////// VirtualBox kernel driver not installed. The vboxdrv kernel module was either not loaded or /dev/vboxdrv was not created for some reason. Re-setup the kernel module by executing '/etc/init.d/vboxdrv setup' as root. VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED). Code de résultat: 0x80004005 Composant: Console Interface: IConsole {1dea5c4b-0753-4193-b909-22330f64ec45} => # /etc/init.d/virtualbox start ou encore # service virtualbox start En cas de changement de noyau ///////////////////////////// Charger si nécessaire les sources du noyau (uname -r pour connaître la version) # urpmi kernel-source # urpme dkms-virtualbox # urpmi dkms-virtualbox L'installation de dkms-virtualbox déclenche la mise à jour du pilote vboxdrv et le relance automatiquement. Peut aussi se faire sans désintallation (essayer) ? # /usr/sbin/dkms --rpm_safe_upgrade add -m virtualbox -v 1.6.0-4mdv2008.0 # /usr/sbin/dkms --rpm_safe_upgrade build -m virtualbox -v 1.6.0-4mdv2008.0 Spawning session... 0% tourne en boucle /////////////////////////////////////// ps aux | grep -i virt et tuer tous les processus VirtualBox qui tournent WindowsXP avorté //////////////// La fenètre Windows s'ouvre pour se refermer quasiment tout de suite avec le message "WindowsXP avorté" Cause ? Semble provenir de l'installation dans Préférences de l'un des périphériques, en l'occurence périphérique disquette ! Solution : désactiver l'un après l'autre chaque périphérique et redémarrer l'OS virtuel Sinon : urpme virtualbox urpmi virtualbox et reconfigurer comme avant (ou plus rapide : $ rm -rf ~/.VirtualBox/ et reconfigurer) Echec au lancement de la machine virtuelle WindowsXP //////////////////////////////////////////////////// Unknown error creating VM (VERR_ACCESS_DENIED). VBox status code: -38 (VERR_ACCESS_DENIED). Code de résultat: 0x80004005 Composant: Console Interface: IConsole {1dea5c4b-0753-4193-b909-22330f64ec45} Solution ? Echec au lancement de la machine virtuelle WindowsXP //////////////////////////////////////////////////// Cannot open host device '/dev/hda' for readonly access. Check the permissions of that device ('/bin/ls -l /dev/hda'): Most probably you need to be member of the device group. Make sure that you logout/login after changing the group settings of the current user. VBox status code: -38 (VERR_ACCESS_DENIED). $ ll /dev/hda brw-rw---- 1 root cdwriter 3, 0 2008-08-12 17:38 /dev/hdall # vi /etc/group et rajouter l'utilisateur qui lance VirtualBox au groupe cdwriter Autre solution plus drastique au cas où la première solution ne marcherait pas : $ rm -rf ~/.VirtualBox et reconfigurer Echec au lancement de la machine virtuelle WindowsXP //////////////////////////////////////////////////// The VirtualBox kernel driver is not accessible to the current user. Make sure that the user has write permissions for /dev/vboxdrv by adding them to the vboxusers groups. You will need to logout for the change to take effect.. $ ll /dev/vboxdrv crw-rw---- 1 root root 10, 61 2008-03-06 16:46 /dev/vboxdrv# chmod # chown root:vbox /dev/vboxdrv (vbox : groupe des utilisateurs de virtualbox) # ll /dev/vboxdrv crw-rw---- 1 root vbox 10, 61 2008-03-06 16:46 Echec au lancement de la machine virtuelle WindowsXP //////////////////////////////////////////////////// Unknown error creating VM (VERR_ACCESS_DENIED) Peut se produire quand on lance VirtualBox à partir d'une machine distante (X -query ...) Solution : désactiver les périphériques CD/DVD, disquette ... (menu Machine/Préférences) Erreur d'accès au sous système USB ////////////////////////////////// This machine does not have any snapshots Accès aux répertoires partagés ------------------------------ Pour une aide rapide, voir dans l'écran Virtualbox les explications qui s'affichent dans : Machine > Préférences > Répertoires partagés => Dans XP : net use x:\\vboxsvr\ VirtualBox et utilisateur XP non administrateur /////////////////////////////////////////////// vboxsvr n'est utilisable que par un utilisateur avec droits d'administration ! Pour un utilisateur à droits limités, utiliser samba : Sous linux ---------- - installer samba si ce n'est déjà fait # urpmi samba - le démarrer si nécesaire # samba status # samba start - Mettre le home de l'utilsateur (ou un autre répertoire) en partage : éditer /etc/samba/smb.conf et ajouter : --------------------------------------------------------- # Un répertoire privé, utilisable uniquement par Fred. Nb : Fred doit avoir les doits d'écriture sur le répertoire [fred_home] comment = Home de Fred path = /home/fred valid users = fred public = no writable = yes printable = no ---------------------------------------------------------- - Créer le mot de passe pour fred # smbpasswd -a fred Sous Windows ------------ Monter la partition \\\fred_home Erreur d'accès au sous système USB ////////////////////////////////// This machine does not have any snapshots. Code de résultat: 0x80004005 Composant: Machine Interface: IMachine {31f7169f-14da-4c55-8cb6-a3665186e35e} Code retourné: 0x80004001 Touches mortes (¨, ^, etc.) /////////////////////////// cf : www.virtualbox.org/ticket/599#comment:117 Menu > Tools > System Tools > Control Center > Keyboard Layout (ou mieux, ouvrir cette fenêtre avec la commande kcmshell keyboard_layout) Onglet Layout, cocher "Enable keyboard layouts", sélectionner "France" dans la partie "Available Layouts" et l'ajouter (touche "Add) Sélectionner "France" dans la partie "Active Layout" ; Dérouler "Layout variant" et choisir "latin9", puis cocher "Include latin layout". ou en français : $ kcmshell keyboard_layout Cocher "Activer les dispositions de clavier" Dans "Dispositions disponibles" sélectionner "France", l'ajouter dans la partie "Dispositions actives" avec la touche "Ajouter >>" Dans la partie 'Disposition actives, sélectionner "France" puis dérouler "Variante de la disposition" et choisir "latin9" (ça marche peut-être avec un autre choix ?) et enfin cocher "Inclure la disposition latine. Attention à bien mettre le clavier français en premier. Si le clavier anglais est en premier, à chaque login le clavier par défaut sera anglais (on peut le changer momentannément in cliquant sur le drapeau dans la barre de tâche). Ne fonctionnerait pas pour Vista. ======================== Logiciels scientifiques ======================== Emboss ====== http://emboss.sourceforge.net/ emboss manual : http://faculty.ucr.edu/~tgirke/Documents/EMBOSS/EMBOSS_MANUAL.html # urpmi emboss Interfaces graphiques (GUI) : EMBOSS Explorer ---------------- A récupérer sur http://embossgui.sourceforge.net/ Décompresser le fichier tar.gz. $ tar -zxvf emboss-explorer-2.2.0.tar.gz L'installation est bien expliquée dans le fichier README Démarrage de l'interface web : http://localhost/emboss Problèmes éventuels : - l'installateur indique des modules manquants : ils sont en rpm (cf. mcc) (par exemple # urpmi perl-Parse-RecDescent) - Apache n'est pas installé (Un problème s'est produit lors du chargement de http://localhost/emboss : Impossible de se connecter à l'hôte) : # urpmi apache-mpm-prefork # service httpd start - Les CGI ne sont pas exécutés : # urpmi apache-mod_perl # service httpd restart - Object not found! Error 404 Semble se produire lorsque l'installation de emboss a été faire sur un PC alors que Apache et apache-mod_perl n'étaient pas installés. Solution : relancer ./install. Mise à jour MDV 2007.0 -> MDV 2007.1 (Spring) ============================================= Si on ne veut pas faire une réinstallation complète : $ sudo urpmi.removemedia -a easyurpmi.zarb.org => sélectionner les serveurs # urpmi --auto-update --auto-select --auto --noverify-rpm Ne marche pas à tous les coups Personnalisation de Mandriva 2007 après uen réinstallation complète =================================================================== Un certain nombre de configurations par défaut sont assez désagréables : les modifier après installation : Konqueror browser Web : démarrer avec une page blanche : -------------------------------------------------------- Location : about:blank Save View Profile "Web Browsing" Icônes par défaut (Crystal-SVG) illisibles ----------------------------- System > Configuration > KDE > Appearance & Themes > Icons > Theme > Kde-Classic Taille des icônes sur le bureau ------------------------------- System > Configuration > KDE > Appearance & Themes > Icons > Advanced > Size 32 RPM --- easyurpmi.zarb.org/ slocate/updatedb absents ! -------------------------- urpmi mlocate Bouton du menu démarrage inutilement grand ------------------------------------------ Editer /var/lib/mandriva/kde-profiles/free/share/config/kickerrc Changer : KMenuIcon=mdv_kmenu en : KMenuIcon=kmenu Dictionnaires français ---------------------- # urpmi aspell-fr # urpmi kde-i18n-fr (redémarrer KDE) Encodages, conversions utf8 iso-8859 ==================================== Voir aussi sur http://mdvmondelinux.s3ii.info/: Internet et tables de caractères Quand Apache, php ou Mysql renâclent. Conversion des contenus de fichiers : iconv ------------------------------------------- Exemple : de (from) utf8 à (to) Iso-8859-1 : $ iconv -f UTF-8 -t ISO-8859-1 fichier où fichier contient le texte à convertir -f encodage source (from) -t encodage destination (to) fichier contient le texte à convertir iconv --help pour la doc iconv --list pour la liste des encodages supportés Conversion des noms de répertoires et des noms de fichiers : convmv (à installer : urpmi convmv) -------------------------------------------------------------------- convmv --help convmv --list liste des encodages disponibles convmv -f latin1 -t utf-8 -r ================ Logiciels divers ================ Astronomie ========== celestia stellarium Visualisation 3D ================ paraview -------- Installation : télécharger la version linux (paraview-x.y.z-Linux-x86.tar.gz.tgz) sur http://www.paraview.org/New/download.html Décompresser (tar -zxvf) Rien à compiler, en root déplacer juste le répertoire obtenu dans (par exemple) /opt Gestion de comptes ================== Grisbi frrançais, respecte les règles de compte Française. Gnucash KMyMoney ... Apic, acpi, pat =============== acpi (Advanced Configuration and Power Interface) ---- wiki acpi Désactiver : acpi = off apic (Advanced Programmable Interrupt Controller) ---- wiki apic Désactiver : noapic pat (Page Attribute Table) --- http://lwn.net/Articles/278994/ Désactiver : nopat ================================ BUGS et messages d'erreur divers ================================ Pas de son sous Firefox avec les video flv ========================================== Installer libflashplayer, voir plus haut UTF-8 / iso-8859-15 =================== UTF-8 par défaut dans MDV2007.0 crée énormément de problèmes et ne semble pas apporter de "plus". Pour revenir à iso-8859-15, cf, http://article.gmane.org/gmane.linux.mandrake.newbie.french/90922/match=jipe+iso+8859+mandriva+2007 # cp /etc/sysconfig/i18n /etc/sysconfig/i18n.UTF-8 (pour le cas où on veut revenir en arrière) Puis éditer /etc/sysconfig/i18n et supprimer le .UTF8 de la fin de chaque ligne. => cette solution ne semble pas marcher : à revoir. kwrite sous MDK10 ----------------- Quand les utilisateurs veulent imprimer sous kwrite ils n'ont pas d'imprimante. Solution : modifier le fichier de configuration de kwrite (~.kde/kwriterc) des utilisateurs : remplacer le paragraphe [KPrinter Settings] de l'utilisateur par celui de root. KDE : "Could not find mime type application/octet-stream" --------------------------------------------------------- Solution : supprimer le fichier octet-stream.desktop qui se trouve dans le répertoire ~/.kde/share/mimelnk/application KDE : No write access to $HOME directory KDE is unable to start ---------------------------- Passer en root et essayer : # chown nom_utilisateur:nom_utilisateur /home/nom_utilisateur Kwrite sous MDV 2005LE ---------------------- Les caractères noirs sur fond de lignes noires sont invisibles !!! Solution : Settings / Configure Editor en bas : Default Schema for Kwrite : choisir "kwrite - Printing" Kmail ----- Plante avec un message "The application Kmail crashed and caused signal 11 (SIGSEGV)" etc. Remède : supprimer le fichier de configuration de l'utilisateur : $HOME/.kde/share/config/kmailrc Refaire la config de Kmail (menu "Settings") Kmail (kdepim-kmail-3.3.2-45mdk) après installation de MDV 2005 LE ------------------------------------------------------------------ "KMail could not create folder '$HOME/.Mail';" alors que $HOME = /home/utilisateur et que les droits sur ce répertoire sont corrects. Solution : installer la version "Cooker" de kmail. Kmail après installation de la version 3.4.2 -------------------------------------------- Problème MIME : "Impossibe de trouver le type MIME" $ kmail & kio (KSycoca): WARNING: Outdated database found (KSycoca): WARNING: Found version 75, expecting version 79 or higher. kio (KSycoca): ERROR: No database available! Solution : redémarrer KDE. Composer Kmail, correction orthographique ----------------------------------------- Le choix du dictionnaire se fait en principe au niveau de KDE : K/System/Configuration/KDE/Components/Spellchecker (ou kcontrol, KDE Components/Spellchecker Dans Kmail le choix du correcteur orthographique n'apparaît pas dans le menu principal, mais dans le menu d'édition des messages (Message/New Message) => menu Settings/Spellchecker. NB : ne pas oublier de charger le support de langue (française) : urpmi aspell-fr et pour KDE : urpmi kde-i18n-fr (et redémarrer KDE) Puis dans K/System/Configuration/KDE/Components/Spellchecker choisir le "client" (aspell), le dictionnaire (French) et l'encodage (ISO 8859-1 ou ISO 8859-15) Dans Kmail, on a beau choisir un dictionnaire français au niveau de (fenêtre Nouveau Message) "Settings/Spellchecker" c'est souvent le dico anglais qui reste actif. Solution : vérifier la ligne "Dictionnary" (entre "Identity" et "To")qui est sans doute à "Aspell Default" : dérouler et sélectionner un des dicos français. Si la ligne Dictionnary est absente, la faire afficher au moyen du menu View > Dictionary. => pour fixer un dictionnaire par défaut : Configuration > Configurer Kmail > Identités (en choisir une) > Options avancées > Dictionnaire kmail : des messages semblent vides ----------------------------------- A essayer : 1 - Redémarrer KDE (Alt Ctrl Backspace) 2 - ou bien supprimer les index Barre de tâche KDE ================== Supprimer un applet ------------------- Clic droit sur la poignée de l'applet, supprimer Si elle n'est plus visible : ---------------------------- Lancer kcontol ([Alt][F2] kcontrol) Menu : Desktop > Panels > Hiding, Sélectionner "Only hide when a panel-hiding button is clicked" pour la faire réapparaître. Ensuite on peut revenir à "Hide automatically" Barre de tâche Gnome ==================== Si elle n'est plus visible : # urpmi gnome-panel /usr/lib/libstdc++.so.6: version `CXXABI_1.3.1' not found ========================================================= Installer (après avoir èventuellement dèsinstallè) gcc-4.0.1-5 gcc-c++-4.0.1-5 $ vi vi: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory ======================================================================================== Une solution : # locate libperl.so /usr/lib/perl5/5.8.7/i386-linux/CORE/libperl.so # cat /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/X11R6/lib /usr/lib/qt3/lib ==> libperl.so n'est pas dans un répertoire référencé : éditer /etc/ld.so.conf et rajouter : /usr/lib/perl5/5.8.7/i386-linux/CORE Puis mettre à jour les paths : # ldconfig Bug /etc/hosts ============== Sur MDV 2005 (et d'autres versions sans doute) le fichier /etc/hosts est incorrect, ce qui fait que certains programmes (tcpdump par exemple) ne fonctionnent pas correctement $ cat /etc/hosts 127.0.0.1 nom_de_la_machine.domaine.fr nom_de_la_machine localhost Corriger en : 127.0.0.1 localhost.localdomain localhost N°_IPmachine nom_de_la_machine.domaine.fr nom_de_la_machine Debian Sarge : aptitude ======================= Message "Warning: could not lock the cache file" Aptitude n'a pas été fermé correctement, les fichiers de vérouillage n'ont pas été effacés. Solution (http://wiki.linuxquestions.org/wiki/Aptitude) Sous root : rm /var/cache/apt/archives/lock rm /var/lib/aptitude/lock rm /var/lib/dpkg/lock rm /var/lib/apt/lists/lock Adaptateur Marvell Yukon, driver sk98lin, carte mère ASUS P4P800-E deluxe ========================================================================= MDV 2006.0 - avec cd de boot boot.iso et démarrage automatique : impossible l'adaptateur ne répond pas En choisissant [F2], démarrage avec Alt1 (noyau 2.6.12-12mdk-1586-up-1GB), OK jusqu'au message "The modulese for this kernel (2.6.12 ...) can't be found on this mirror, please update your boot disk" ! DEBIAN SARGE avec cd de boot debian-31r0a-i386-netinst.iso impossible aussi bien avec noyau 2.4 que 2.6 : après installation du système de base et redémarrage, connexion réseau impossible FEDORA Ca marche, mais après installation, pas de réseaeu ! Samba ====== 9769: session request to *SMBSERVER failed (Called name present, but insufficient resources) -------------------------------------------------------------------------------------------- Pas assez de ressources sur le PC sous Windows. Solution: rebooter windows. Grub ==== Error 15: File not found Exemple : /boot/grub/menu.lst contenant : title Debian GNU/Linux, kernel 2.6.8-2-386 (on /dev/hdb1) root (hd1,0) kernel /boot/vmlinuz-2.6.8-2-386 root=/dev/hdb1 ro initrd /boot/initrd.img-2.6.8-2-386 savedefault boot 1° cas : il y a une erreur dans les noms de fichiers ---------------------------------------------------- Lancer grub et utiliser la touche tab (autocomplétion) pour vérifier l'emplacement et le nom des fichiers : grub> root (hd Possible disks are: hd0 hd1 grub> find /boot/grub/stage1 (hd0,0) (hd1,2) grub> kernel (hd0,0)/boot/ Possible files are: grub kernel.h vmlinuz System.map-2.6.12-12mdksmp config-2. 6.12-12mdksmp vmlinuz-2.6.12-12mdksmp message-graphic kernel.h-2.6.12 initrd-2. 6.12-12mdksmp.img kernel.h-2.6.8.1-12mdkBOOT initrd.img fr-latin1.klt System.ma p config kernel.h-2.6.12-12mdksmp grub> initrd (hd0,0)/boot/ Possible files are: grub kernel.h vmlinuz System.map-2.6.12-12mdksmp config-2. 6.12-12mdksmp vmlinuz-2.6.12-12mdksmp message-graphic kernel.h-2.6.12 initrd-2. 6.12-12mdksmp.img kernel.h-2.6.8.1-12mdkBOOT initrd.img fr-latin1.klt System.ma p config kernel.h-2.6.12-12mdksmp Corriger les éventuelles erreurs dans /boot/grub/menu.lst 2° cas : grub est une version récente (0.97 par exemple) ------------------------------------- "savedefault" est encore utilisé dans Debian Sarge et dérivés (Ubuntu ...) mais semble ne plus être supporté dans les versions récentes de grub. Il semble que savedefault permettait de mémoriser le dernier choix fait dans le menu.lst grub. Supprimer savedefault et le message "File not found" doit disparaître. freenx, version pour AMD64 ========================== Sur une Mandriva/x86-64 avec le serveur freenx installé : freenx-0.4.4-1mdk (noarch) lib64nxX11_0-1.5.0-4mdk (Architecture: x86_64) nxagent-1.5.0-4mdk (Architecture: x86_64) nxproxy-1.5.0-4mdk (Architecture: x86_64) impossible de se loger avec le client nx de NoMachine : la connexion échoue avec parfois un essage d'erreur sur le client : "invalid MIT-MAGIC-COOKIE-1" Il semble qu'il y ait au moins un bug au niveau de nxagent : # nxagent nxagent: symbol lookup error: /usr/lib64/libXcompext.so.1: undefined symbol: _NXFlushSize" alors que : # strings /usr/lib64/libXcompext.so.1 | grep NXFl _NXFlushSize montre que _NXFlushSize est bien présent. Solution en attendant que le bug soit corrigé : - supprimer tous les fichiers ci-dessus - installer la version 32 bits de freenx. Après connexion réussie sur le serveur (la mire NX s'affiche) la connexion stoppe brutalement sans message d'erreur ---------------------------------------------------------------- Aucun message d'erreur dans /var/log/messages du client ou du serveur. Sur le client, dans le répertoire ~/.nx/S-...-1000-8EF994068E7572DCCF5155573054C66D rien dans le fichier errors mais en fin de fichier session : Info: End of NX transport requested by remote. Info: Shutting down the NX transport. => cause : ~/.Xauthority se retrouve parfois avec les droits root !! $ ll ~/.Xauthority -rw------- 1 root root => Solution : # chown : ~/.Xauthority fish ==== "An error occurred while loading fish://:" Se produit sur certaines machines et pas d'autres !! Probablement un bug KDE (bug 91107) lié à un problème de droits. Contournement provisoire possible : kdesu konqueror fish://user@host Xauth ----- Warning: No xauth data; using fake authentication data for X11 forwarding. Cf. http://www.rocketcalc.com/bread.php?key=22 smbfs: mount_data version 1919251317 is not supported ----------------------------------------------------- Sous MDV 2007, mount -t smbfs ... génère une erreur : mount: wrong fs type ... dmesg | tail affiche smbfs: mount_data version 1919251317 is not supported => mount.smbfs n'existe plus. Utiliser mount.cifs à la place : # mount -t cifs ... nedit et UTF-8 ============== nedit: the current locale is utf8 (en_GB.UTF-8) nedit: changed locale to non-utf8 (en_GB) X Error of failed request: BadMatch (invalid parameter attributes) etc. Pour que nedit veuille bien démarrer (cf. http://www.webservertalk.com/printthread.php?s=0cc0d0d5730b9b47fb8d2ab449425c34&threadid=1796258) $ XLIB_SKIP_ARGB_VISUALS=1 $ export XLIB_SKIP_ARGB_VISUALS $ nedit ou 3 autres possibilités (http://www.nedit.org/pipermail/develop/2006-August/012199.html) nedit -xrm '*visualID: default' XLIB_SKIP_ARGB_VISUALS=1 nedit compile nedit from the latest CVS sources Ou encore plus simple : revenir en iso-8859-15 : voir plus haut. X11 connection rejected because of wrong authentication ======================================================= Message d'erreur qui apparaît lorsqu'on est connecté par ssh en root sur une machine distante et qu'on essaye de lancer une application graphique, => changer dans /etc/ssh/ssh_config file Forward X11 no en Forward X11 yes Could not start interprocess communication No write access to /home//.ICEauthority There was an error setting up inter-process communication for KDE. The message returned by the sysem was: Authentication Rejected, reason: None of the authentication protocols specified are supported and host-based authentication failed Please check that the "dcopserver" program is running =================================================================================================================================== Pour une raison inconnue le propriétaire de ~/.ICEauthority a été changé en root:root Solution : le réattribuer à son propiétaire : $ sudo chown : /home//.ICEauthority Problèmes d'installation MDV 2007.0, MDV 200.1 liés au chipset NVIDIA ===================================================================== Concerne en particulier les CM Asus A8N-SLI deluxe, M2N4-SLI, celles qui équipent les Pundit, etc. Pas de problème en utilisant les versions "Mandriva One" : elles semblent contenir les drivers NVIDIA propriétaires Par contre impossibilité d'installer à partir des CD d'installation classiques. Solution à partir : - du DVD mandriva-linux-2007-spring-free-dvd-x86_64.iso - du CD boot.iso (à chercher dans mandrivalinux/official/2007.1/x86_64/install/images, installation via le réseau). - ... Nb : dans le cas de boot.iso, l'adresse du répertoire contenant les sources de MDV 2007.1 est erroné : corriger 2006.0 en 2007.1 1 - pour pouvoir booter, il faut rajouter "acpi=off" dans le ligne de commande de boot 2 - pour que le driver de disques SATA fonctionne il faut aussi rajouter "irqpoll" dans cette même ligne de commande. D'après la page de messages (alt ctrl F4) il s'agit d'un conflit au niveau d'IRQ5 : la solution irqpoll est indiquée dans cette page. 3 - à la fin de l'installation dans le paramétrage de l'amorçage, cliquer sur "Avancé" et désactiver l'APIC. NB : pour modifier la ligne de commande, pas de problème dans le cas de boot.iso. Dans le cas du DVD d'installation c'est moins évident : - se positionner sur "Install Mandriva Linux 2007 Spring on your system" - Appuyer sur F3 : Other Options - Se déplacer dans la ligne de commande avec la touche <- jusqu'au point d'insertion des paramètres à rajouter. Les symptômes : 1 (acpi) : écran noir après lancement de l'installation 2 (irqpoll) : après chargement du pilote NVIDIA, message "Une erreur est survenue : aucun périphérique valide n'a été trouvé pour créer une nouvelle partition" 3 (désactivation de APIC) : impossible de redémarrer après l'installation. Driver video pour carte NVIDIA GeForce FX ----------------------------------------- Voir plus loin pour MDV 2008 Installer les pilotes propriétaires (beurk) Aller sur le site NVIDIA (http://www.nvidia.com/object/unix.html) Télécharger le dernier driver ad hoc, par exemple NVIDIA-Linux-x86_64-100.14.11-pkg2.run Passer en mode texte (pas de X qui tourne) pour pouvoir l'exécuter : # telinit 3 # sh NVIDIA-Linux-x86_64-100.14.11-pkg2.run L'affichage des messages est atroce : ils se foutent vraiment du monde chez nvidia ! Repasser en graphique : # telinit 5 Sélectionner au moyen de mcc le nouveau driver : # mcc => Harware > Set up the graphical server > Graphic card Garder la carte sélectionnée Il est demandé si on veut utiliser le driver propriétaire : répondre oui Redémarrer X Video pour pour carte NVIDIA GeForce FX (MDV 2008, marche peut-être aussi pour 2007 ?) -------------------------------------------------------------------------------------- # urpmi x11-driver-video-nvidia-current (NVIDIA proprietary X.org driver and libraries for new cards)​ ce qui charge le driver propriétaire, actuellement 100.14.19-1mdv2008.0 Puis : # XFdrake Cliquer sur Carte graphique [ NVIDIA GeForce FX ] ; un message demande si on veut utiliser le pilote propriétaire : accepter. Le chargement et la mise à jour des modifs du noyau se fait automatiquement. Redémarrer le PC pour que le nouveau driver soit pris en compte. X ne démarre plus en cas de cas de changement de noyau : Installer les sources du nouveau noyau A tester : - soit lancer XFdrake - ou bien il suffit sans doute de désinstaller/réinstaller dkms-nvidia A voir : le problème peut peut-être être résolu avec irqpoll : à tester. Instabilité du pilote propriétaire NVIDIA (nvidia-current-100.14.19-1mdv2008.0) sur CM ASUS M2N4-SLI (l'écran graphique se fige de temps en temps) ------------------------------------------------------------------------------- Mettre à jour le bios Bug avec version 0902. Plus de problème avec la dernière version du bios : Version: ASUS M2N4-SLI ACPI BIOS Revision 1202 Après installation de mdv 2008.0, écran noir au redémarrage ========================================================== Provient sans doute d'un bios avec ACPI (Advanced Configuration and Power Interface) défectueux. Solutions : - si possible mettre à jour le bios (acpi foireux sur le bios d'origine de beaucoup de machines) - sinon : acpi=off dans /boot/grub/menu.lst (sur la ligne kernel ...) - essayer aussi irqpoll Pour modifier les options au démarrage (2008.1 en particulier) : F2 et rajouter les options une à une pour tester leur effet Après installation de mdv 2008.0, pas de clavier ================================================ Provient sans doute de l'APIC (Advanced Programmable Interrupt Controller) absent ou défectueux dans le bios) Solutions : - si possible mettre à jour le bios - sinon : noapic dans /boot/grub/menu.lst (sur la ligne kernel ...) Bug shorewall/iptables ? ======================== Messages d'erreur : ---------------------------------------------------------------- Processing /etc/shorewall/start ... FATAL: Module ip_set not found. ipset v2.2.9a: Error from kernel: Protocol not available iptables v1.3.7: Problem when communicating with ipset, errno=92. FATAL: Module ip_set not found. ipset v2.2.9a: Error from kernel: Protocol not available iptables v1.3.7: Problem when communicating with ipset, errno=92. iptables: No chain/target/match by that name iptables: No chain/target/match by that name ---------------------------------------------------------------- Cause ? Solutions --------- 1 -Solution "bourrin" : Sauvegarder /etc/shorewall/interfaces, rules, zones et policy cp /etc/shorewall/interfaces /etc/shorewall/interfaces.bak cp /etc/shorewall/rules /etc/shorewall/rules.bak cp /etc/shorewall/zones /etc/shorewall/zones.bak cp /etc/shorewall/policy /etc/shorewall/policy.bak Puis : urpme iptables (enlève iptables et shorewall) urpmi shorewall (installe iptables et shorewall) Remettre les fichiers de configuration sauvegardés cp -f /etc/shorewall/interfaces.bak /etc/shorewall/interfaces cp -f /etc/shorewall/rules.bak /etc/shorewall/rules cp -f /etc/shorewall/zones.bak /etc/shorewall/zones cp -f /etc/shorewall/policy.bak /etc/shorewall/policy Relancer shorewall (shorewall start) ... et plus d'erreur !!! 2 - Mettre à jour le noyau Le message apparaît en effet avec le noyau livré avec MDV 2008.0 (2.6.22.9-desktop586-1mdv) X -query, kdm et 2008.0 ----------------------- Actuellement si on essaie de se connecter sur une machine distante avec X -query le kdm distant plante. Utiliser à la place gdm. Sur la machine distante : # urpmi gdm Puis configurer gdm comme indiqué plus haut dans "Configurer GDM à partir de 2008.0" : [xdmcp] Enable=true Diskdrake : nouvelle partition créée non montée ! ------------------------------------------------- Une nouvelle partition est crée au moyen de diskdrake. Diskdrake ajoute l'entrée correspondante dans /etc/fstab, par exemple : /dev/sdb3 /Sauvegardes reiserfs notail 1 2 mais la partition n'a pas été montée ! La commande df ne la fait pas apparaître Si on essaie de copier quelque chose dans /Sauvegardes la partition senble ne faire que 1 Go à 3 Go : on a rapidement le message "Disk full". Solution : monter la partition à la main : # mount /dev/hdb3 R : fontes absentes (edit, plot, etc.) ----------------------------- plot : "X11 font at size 7 could not be loaded" edit : "unable to create fontset -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*" Quelques pistes : cf. http://linuxgazette.net/132/misc/lg/fonts_puzzle_and_puzzling_gmail_page_upon_login_from_firefox.html - voir quels répertoires sont déclarés dans /etc/X11/xorg.conf, Section "Files" - ou bien les faire afficher par la commande : $ xset q|grep -i font - rechercher les fontes : $ grep -ir "adobe-helvetica" /usr/share/fonts avec xlsfonts (à installer : urpmi xlsfonts) : $ xlsfonts -fn '*adobe-helvetica*' xlsfonts: pattern "*adobe-helvetica*" unmatched ou avec : $ fc-match '*adobe-helvetica*' DejaVuSans.ttf: "DejaVu Sans" "Book" et pour voir où les fontes DejaVuSans sont localisées : $ locate -i dejavusans /usr/share/fonts/TTF/dejavu/DejaVuSans-Bold.ttf ... Vérifier dans /etc/X11/fs/config (fichier de configuration du serveur de fontes xfs) que le chemin /usr/share/fonts/TTF est déclaré. Vérifier que le serveur de fontes fonctionne ($ ps aux |grep xfs) $ cat /usr/share/fonts/TTF/dejavu/fonts.dir Les fichiers fonts.dir sont vides : utiliser mkfontdir pour les remplir : # mkfontdir NomDuRepertoire Regénérer la base de données de fontes : # xset fp rehash => Solution : # urpmi x11-font-adobe-75dpi x11-font-adobe-100dpi et redémarrer X. En fait la plupart des applications modernes utilisent FreeType (http://www.freetype.org/) xlsfonts est un outil pour l'ancien système de fontes ce qui fait qu'il ne trouve pas les fontes adobe-helvetica. Idem avec R xauth ----- /usr/bin/xauth: error in locking authority file Solution : xauth -b quit xine was unable to initialize any audio drivers ----------------------------------------------- et aussi kalarm : ne joue pas les fichiers son ----------------------------------------------- Solution : se rajouter dans le groupe audio kfloppy : Internal error: device not correctly defined ------------------------------------------------------- Sans doute un problème de droits : passer en root. NX : fonte de caractère illisible au niveau de la configuration (nxclient) ou du panneau de connexion --------------------------------------------------------------------------------- Solution : # urpmi x11-font-adobe-75dpi x11-font-adobe-100dpi Problèmes de son (pas de son) ----------------------------- http://forum.ubuntu-fr.org/viewtopic.php?id=2969 The application unknown (nspluginviewer) crashed and caused signal 11 (SIGSEGV) ------------------------------------------------------------------------------- Problèmes avec HAL (Hardware Abstraction Layer) *********************************************** Mandriva 2008.1, lorsqu'on est connecté à un PC distant par X -query ... et qu'on essaye de monter un périphérique (clé USB, etc) : ------------------------------------------------------------------------- A security policy in place prevents this sender from sending this message to this recipient, see message bus configuration file (rejected message had interface "org.freedesktop.Hal.Device.Volume" member "Mount" error name "(unset)" destination "org.freedesktop.Hal") ---------------------------------------------------------------------- Cf. http://www.jefferyfernandez.id.au/2007/07/26/a-security-policy-in-place-prevents-mounting-of-volumes/ Créer le groupe "plugdev" et y mettre les utilisateurs autorisés. Ajouter à la fin du fichier “/etc/dbus-1/system.d/hal.conf” : Redémarrer le démon hal : # service haldaemon restart Cette modification ne suffit pas, cf. le message suivant lorsqu'on essaye de monter le périphérique : org.freedesktop.hal.storage.mount-removable no <-- (action, result) ------------------------------------------------------------------- Solution, cf. http://foo-projects.org/pipermail/lunar/2008-August/008081.html. Ajouter dans le fichier "/etc/PolicyKit/PolicyKit.conf", entre : et les lignes : Inutile de rédémarrer le démon hal. NB : bizarre : ces modifications résolvent aussi le problème de mot de passe root non reconnu par exemple lorsqu'on lance mcc par Alt F2 !! Problème de disque ================== Le PC redémarre normalement, mais s'arrête sur le message : "Checking root filesystem fsck.ext2: Is a directory while trying to open / /: The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and if it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock e2fsck -b 8193 " Solution : Booter avec un CD live (SysRescueCD par exemple). Vérifier les partitions avec : # e2fsck /dev/sda1 (si /dev/sda1 est la partition en cause) Si la réponse est "Clean" "ssayer encore avec : # e2fsck -f /dev/sda1 S'il n'y a toujours pas d'erreur le blocage ci-dessus peut provenir d'un fichier fstab vide, ou illisible ou incorrect ! Il peut être nécessaire de vérifier/corriger les UUID (Universal Unique IDentifier) attribués aux partitions. Pour les afficher (cf http://www.jpdemory.com/blog/49) : # ls -l /dev/disk/by-uuid/ # ls -l /dev/disk/by-uuid/ | grep sda1 ntfs-3g et montage de partitions par l'icône "Support de sauvegardes" ===================================================================== Dans le cas d'utilisation de périphériques amovibles utilisés sous Windows il peut arriver que des partitions n'aient pas été démontées proprement (déconnexion ou arrêt brutal de Windows). Dans ce cas le montage par l'interface graphique (icône "Support de sauvegarde") ne se fait pas et aucun message d'erreur n'est affiché. Pour débloquer la situation : - essayer de monter la partition en ligne de commande : # mount -t ntfs-3g -o users,rw,uid= /dev/sd /home/utilisateur/point/de/montage Un message indiquera que la partition n'a pas été démontée proprement : "$LogFile indicates unclean shutdown (0, 0)" et la solution : " If you don't have Windows then you can use the 'force' option for your own responsibility. For example type on the command line: mount -t ntfs-3g .... -o force " - donc monter la partition "à la main" : # mount -t ntfs-3g -o users,rw,uid= /dev/sd /home/utilisateur/point/de/montage -o force On peut maintenant utiliser la partition montée, ou bien la démonter avec : # umount /dev/sd puis la remonter via l'interface graphique du "Support de sauvegarde" qui fonctionne à nouveau. ================== KDE4 ================== Kmail ===== Configurer Kmail pour ne plus avoir les lignes bleu-blanches alternées ---------------------------------------------------------------------- Configure your desktop (icône tournevis/clé à molette) > General > Appearence > Colors > Scheme => relpacer "Current" par "Zion" ou "Norway" ou tout azutre schéma satisfaisant. ================== Freebox ================== Accès à la page de configuration -------------------------------- http://192.168.1.254 Accès FTP --------- ftp://192.168.1.254 login : freebox mdp : freebox (ou autre si modifié sur la page de configuration) Modifier la configuration FTP (mettre, changer le mot de passe, etc.) sur la page de configuration : Sous-menu : NAS > FTP Accès samba ----------- Sous konqueror : smb://freebox/ ou encore \\freebox Ou en ligne de commande (monter par exemple dans ~/mnt/disk4) : $ smbmount //freebox/Disque\ dur ~/mnt/disk4 NB : entrer un mot de passe vide, ou n'importe quoi Pour démonter : $ smbumount ~/mnt/disk4 Modifier la configuration (mettre, changer le mot de passe, etc.) : Sous-menu : NAS > Partages Windows Redirection de ports -------------------- Sous-menu : Reseau local > Redirection de ports Télévision sur pc avec vlc -------------------------- vlc http://www.tux-planet.fr/public/videos/freebox-tv.m3u (voir http://www.tux-planet.fr/freebox-avoir-la-tv-sur-son-pc-avec-vlc/ la redirection de ports semble inutile) Assistance ---------- https://assistance.free.fr/login/login.php?link=assistancemail Installation de NX, Sept 2011 ============================== Télécharger la dernière version sur ://www.nomachine.com/download-package.php?Prod_Id=3538 Installer nxclient ------------------ $ sudo rpm -i nxclient-3.5.0-6.i386.rpm Si "error: Failed dependencies: libstdc++-libc6.2-2.so.3 is needed by nxclient-3.5.0-6.i386", chercher la librairie manquante sur le net et l'installer : $ sudo rpm -i libstdc++2.10-2.96-0.83mdk.i586.rpm $ sudo rpm -i nxclient-3.5.0-6.i386.rpm Showing file: /usr/NX/share/documents/client/cups-info CUPS Printing Backend The NX Client set-up procedure detected that your "IPP CUPS" printing backend doesn't allow printing from the NX session. In order to have printing support in your NX system, you need to set proper permissions on the IPP backend. Please execute: chmod 755 /usr/lib/cups/backend/ipp => Changer les droits comme indiqué : $ sudo chmod 755 /usr/lib/cups/backend/ipp Installer nxnode ---------------- $ sudo rpm -i nxnode-3.5.0-6.i386.rpm NX> 700 Starting: install node operation at: Sat Sep 24 10:10:22 2011. NX> 700 Autodetected system 'mandrake'. NX> 700 Install log is '/usr/NX/var/log/install'. NX> 700 Creating configuration in /usr/NX/etc/node.cfg. NX> 700 Inspecting local CUPS environment. NX> 700 Generating CUPS entries in: /usr/NX/etc/node.cfg. NX> 700 Installation of version: 3.5.0-6 completed. NX> 700 Bye. Installer nxserver ------------------ $ sudo rpm -i nxserver-3.5.0-8.i386.rpm NX> 700 Installing: server at: Sat Sep 24 10:12:29 2011. NX> 700 Autodetected system: mandrake. NX> 700 Install log is: /usr/NX/var/log/install. NX> 700 Creating configuration file: /usr/NX/etc/server.cfg. NX> 723 Cannot start NX statistics: NX> 709 NX statistics are disabled for this server. NX> 700 Version '3.5.0-8' installation completed. NX> 700 Showing file: /usr/NX/share/documents/server/install-notices Server keys The initial login between client and server happens through a DSA key pair, i.e. a couple of specially generated cryptographic keys, called the private key and the public key, which allow you to establish a secure connection, by means of SSL encryption, between NX client and NX server. The public part of the key-pair is provided during the installation of the server, while the private part of the key-pair is distributed together with the NX Client. This ensures that each NX client is able to authenticate to the server and to start the procedure for autho- rizing the user and negotiating the session. If you want to create a virtual private network (VPN) instead, you need to generate a new DSA key-pair and distribute the private part of the key-pair to those NX clients you want authenticated to the NX server. More information on how to generate and distribute a new DSA key-pair is available at: http://www.nomachine.com/ar/view.php?ar_id=AR01C00126 Creating Users NX is configured to allow access from any system user, as long as valid credentials are given to the user for the SSH login. NX pro- vides an alternative authorization method, allowing system admin- istrators to determine which users are given access to the NX fun- ctionalities. This works by implementing a separation between the system password and the NX password, so that, for example, it is possible to forbid remote access to the system by any other means except via NX and use the NX tools to implement effective accounting of the system resources used by the user, or to share NX passwords in an external database. To activate the NX user and password DBs, you will have to edit the NX server configuration file by hand or use the NX Server Manager Web tool available for download on the NoMachine Web site at: http://www.nomachine.com/download-manager.php Session Shadowing and Desktop Sharing The session shadowing functionality allows you to share NX sessions running on the node. The desktop sharing functionality instead, gives access to the native display of the X server as if you were in front of the monitor. By default you can access sessions in interactive mode and upon authorization of the session owner. You can modify this beha- viour by tuning the server configuration according to your needs, for example by allowing access to sessions in view-only mode, or connecting to either a suspended session or the local display via the Desktop Manager login window. Load Balancing NX Advanced Server provides support for multi-node capabilities and load balancing. In its current implementation, NX server can only manage accounts on the host machine, so to grant access to the node running remotely, you will need to create the user account directly on the remote node host by issuing the NX node commands as root user. You will also need to add the NX Server public DSA Key to the node to allow this server to connect to the node running on the remote host. Documentation For further information on how to manage the configuration of your NX system, please refer to the System Administrator's Guide available on the NoMachine Web site at: http://www.nomachine.com/documentation/admin-guide.php The NoMachine Team. NX> 700 Bye. Installation de NX, version x86_64 ---------------------------------- Idem version i386 Lors de l'installation de xnode à corriger si nécessaire : installing nxnode-3.5.0-6.x86_64.rpm Preparing... ###################################################################################### 1/1: nxnode ###################################################################################### NX> 700 Starting: install node operation at: Tue Oct 04 14:58:58 2011. NX> 700 Autodetected system 'mandrake'. NX> 700 Install log is '/usr/NX/var/log/install'. NX> 700 Creating configuration in /usr/NX/etc/node.cfg. NX> 700 Inspecting local CUPS environment. NX> 700 Generating CUPS entries in: /usr/NX/etc/node.cfg. NX> 700 WARNING: Cannot find file: printers.conf. NX> 700 WARNING: Please verify your CUPS configuration. NX> 700 Installation of NX node was completed with warnings.. NX> 700 Please review the install log '/usr/NX/var/log/install'. NX> 700 for further details.. NX> 700 Showing file: /usr/NX/share/documents/node/cups-info CUPS Printing Backend The NX Node setup procedure could not detect your "CUPS" installation: either CUPS is not installed on your system or it was installed in a non-standard path. CUPS is needed in order to enable printing support in your NX system. Please note that you can enable printing support for your NX system at any time; to do this make sure that you have CUPS installed then run: /usr/NX/scripts/setup/nxnode --nxprintsetup to specify the location of the CUPS root path. NX> 700 Bye. Utilisation ----------- Menu > Internet > NX Client for Linux Bien entendu NXserver doit tourner sur le PC distant sur lequel on veut se connecter. En cas de message "The NX service is not available or the NX access was disabled on host trucmuch.fr", voir les derniers logs sur le serveur trucmuch.fr : # tail -f /var/log/messages Si : "User nx ... not allowed because not listed in AllowUsers éditer /etc/ssh/sshd_config, rajouter nx dans la liste des AllowUsers et redémarrer sshd # service sshd restart ============ KDE4 (4.4.3) ============ khelpcenter Centre d'aide KDE Tableau de bord de KDE (Kicker, lanceur d'applications KDE, en anglais : Panel) =============================================================================== Position et largeur ------------------ Clic droit sur la barre gestionnaire de tâches > Options pour tableau de bord > Configuration du tableau de bord Curseur sur "Bord de l'écran" (screen Edge) pour choisir sa position : en gardant le curseur sur "Bord de l'écran, déplacer le tableau de bord vers le coté voulu. Curseur sur "Largeur" pour modifier sa largeur Cacher ------ Clic droit sur la barre gestionnaire de tâches > Options pour : Tableau de bord > Configuration du tableau de bord > Plus de paramètres > Visibilité > Cacher automatiquement Déplacer/arranger des icônes dans le tableau de bord ------------------------------------------- Clic droit sur la barre gestionnaire de tâches > Panel Options > PanelSettings Placer le curseur sur l'icône (une croix apparaît) et la déplacer Configurer le bureau ==================== Couleur de fond Clic droit sur le bureau , Configurer : Vue de dossier > Affichage Icônes du bureau ================ Clic droit sur le bureau > Configurer espace de travail > Affichage > Icônes >Taille : déplacer le curseur vers "Grande" ou "Petite" Ou en anglais : Clic droit sur le bureau > Folder View Activity Settings Alt+D Alt+S > Display > Icons konqueror : créer une icône pour lancer konqueror en mode gestionnaire de fichiers ---------------------------------------------------------------------------------- Clic droit sur le bureau, Créer un nouveau > Nouveau lien vers une application Général : choisir l'icône et le nom (e.g.konqueror) Application : Commande : kfmclient openProfile filemanagement ou encore Command: konqueror --profile filemanagement OK Pour changer l'icône par défaut : Clic droit sur l'icône, Propriétés > Général et maintenant on peut choisir une autre icône. Taille des icônes ----------------- Menu Configuration > Configurer Konqueror > Modes d'affichage > Détails > Taille des icônes , régler la taille à l'aide des curseurs Mettre une application dans le tableau de bord ---------------------------------------------- Est dans le mode d'emploi, mais ne semble pas fonctionner : Sélectionner l'application sur le bureau, dans konqueror, dolphin, etc la glisser dans la ZONE CONTENANT LES APPLICATIONS À LANCER (zone gauche du tableau de bord s'il est positionné en bas del'écran) Fontionne mieux : Sélectionner l'application dans le menu principal (icône étoile la plus à gauche dans le tableau de bord) : la tirer jusque dans le tableau de bord. Pavé numérique ============== Si pas installé : # urpmi numlock => le pavé numérique est activé au boot Pour que le pavé numérique soit activé au démarrage d'une session : Icône "Configurer votre bureau" (clé à molette et tournevis)> Administration de l'ordinateur > Clavier et souris > Clavier > Activé Touchpad ======== Pour activer/désactiver le touchpad : Icone "Configurer votre bureau" (clé à molette et tournevis)> Administration de l'ordinateur > Clavier et souris > Touchpad > Activé | Désactivé | Désactiver le pavé tactile pendant la frappe Son === Pas de son ---------- Pour voir si le volume n'est pas par hasard à 0 : $ aumix -q Si c'est le cas : tableau de bord > Icône haut-parleur > décocher "Muet" Effets 3D (kwin) ================ Icône "Configurer votre bureau" (clé à molette et tournevis)> Bureau > Effets de bureau > Général > cocher les effets de bureau. Ou, plus facile : clic droit sur la barre de titre d'une fenêtre > Comportement des fenêtres ... > Effets de bureau > Général > cocher les effets de bureau. Raccourcis intéressants ======================= [Alt] clic gauche Pour délacer la fenêtre sous le curseur [Alt] clic droit Pour modifier la taille de la fenêtre sous le curseur [ctrl][alt][esc] lance xkill Avec kwin démarré (cf.ci-dessus) [Alt][Maj][F12] basculer entre 2D et 3D [ctrl][F8] Affiche une grille avec tous les bureaux [ctrl][F9] Affiche toutes les fenêtres d'un bureau [ctrl][F10] Affiche les fenêtres de tous les bureaux [ctrl][F11] Cube [ctrl][F12] Afficher les périphériques connectés ==================================== Installer le plasmoïde "Notification de nouveuax périphériques" : Clic droit sur la barre gestionnaire de tâches > Options pour tableau de bord > Ou clic droit sur le bureau > Ajouter des plasmoïdes > Catégorie "Informations système" > Notification de nouveuax périphériques Barre de menus ============== Afficher/cacher la barre de menu dans la plupart des programmes KDE (gwenview par exemple) [ctrl][M] Gwenview ======== De nombreux réglages absents de la version installée avec KDE4.(réglage du diaporama par exemple) Pour les rajouter : sudo urpmi kipi-plugins Ils sont maintenant disponibles sous le menu "Modules externes" Diaporama --------- Après avoir installé "kipi-plugins" menu Modules externes > Outils > Diaporama avancé Pour le fondu enchaîné, cocher "Utiliser dans le diaporama les transitiiions OpenGL" Faire défiler les images avec la molette de la souris ----------------------------------------------------- Menu Configuration > Configurer Gwenview > Image > Comportement de la molette de la souris Cocher "Naviguer" Ajustement automatique de la taille de l'image à la taille de la fenètre ------------------------------------------------------------------------ Menu Configuration > Configurer Gwenview > Image, cocher "Agrandir les petites images" NB : cliquer sur la souris, bouton du milieu si nécessaire ! Arborescence ------------ F11 pour faire apparaître la barre de menus à gauche Puis cliquer sur "Dossiers" en bas à gauche Plasmoïdes ========== si on veut déplacer un plasmoide du bureau vers le tableau de bord, il faut que ce dernier soit visible (supprimer "Caché automatiquement", cf. ci-dessus). Boites à miniatures =================== Configurer la boîte à miniatures -------------------------------- Clic droit dans la zone de Boîte à miniatures > Configurer : boîte à miniatures On peut choisir "Toujours visible" ou Masquer automatiquement, etc. Mettre un plasmoïde dans la boite à miniatures ---------------------------------------------- Konqueror ========= Changer l'affichage par défaut ------------------------------ Menu View > View Mode > Details Menu Settings > Save View Profile As ... Pour recharger un profil : Menu Settings > Load View Profile ... Afficher les infos Permissions, Owner, Group ------------------------------------ Menu > View > Additional Information et cocher ce qui doit être affiché ou Alt + V Alt + A Alt + P Alt + O Alt + G Attention, ces manips ne changent que l'affichage du répertoire dans lequel on se trouve. Pour que les modifications portent sur tous les répertoires : View > Adjust View Properties (ou Alt + V Alt +D), et cocher en bas de la fenêtre All folders ainsi que : Use as default for new folders Connexion à appareil photo, décharger des photos ================================================ Sous konqueror ou dolphin : camera:/ pour les APN supportant le protocole PTP /media pour les APN USB Correcteur orthographique ========================= > Regional & Language > Spell Checker