Pense bête
De BlaxWiki
Révision datée du 20 juillet 2009 à 15:23 par 217.174.199.129 (discussion) (Page créée avec « <pre> ////////////////////////////////////////////////////////////////////////////////////////////////////// NB : ceci est mon "pense-bête" _personnel_ : j'y mets mes not... »)
//////////////////////////////////////////////////////////////////////////////////////////////////////
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 <commande externe>
help <commande interne>
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
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 <nom-du-service> status | start | stop | restart
ou bien (équivalent)
# /etc/rc.d/init.d/<script_du_service> 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
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 <PID.fenêtre> "réattache" la fenêtre <PID.fenêtre>
$ screen -dr <PID.fenêtre> "détache" puis "réattache" lafenêtre <PID.fenêtre> (utile pour passer dans une autre session)
$ screen -x <PID.fenêtre> 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 : <ctrl><v><tab>, 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)
Afficher les processus qui tournent
-----------------------------------
ps aux
<Ctrl><Esc> 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 <fichier>
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 <login> /etc/passwd
$ finger <login>
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
<CTRL><ALT><DEL>
A partir de X Window, d'abord
<CTRL><ALT><BACKSPACE>
pour quitter X Windows, puis
<CTRL><ALT><DEL>
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.<périphérique>
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"
=====================
<q> quitter
<p> previous node
<n> next node
Menus :
se déplacer à l'aide des flèches sur une entrée de menu indiquée par ::
<entrée> sélectionne l'entrée de menu
<u> 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 :
for f in `ls`; do mv $f $f|sed s/toto/titi/; done
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
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
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
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)
--------------------------------------
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
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.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]#
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 <nom du processu> 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
Tuer une session X plantée (KDE, Gnome ou autre, ça arrive !!!) : <Ctrl><Alt><Backspace>
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 <ctrl><v> 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 <fichier
Dans la boucle, stdin est redirigé vers le fichier, ce qui fait qu'une commande "read clavier" dans la boucle n'a aucun effet. Pour y remédier :
(cf. redirections http://www.tldp.org/LDP/abs/html/x12886.html)
# duplique stdin dans le "file descriptor" 6
exec 6<&0
while read line
do
echo -n "Taper sur une touche"
# lit sur le fd 6
read -s -n 1 touche <&6 # -s pas d'écho, -n 1 un seul caractère à taper
echo
echo
echo "Contenu de la ligne : " $line
echo "Touche : " $touche
echo
done <essai
# remet stdin comme avant la boucle et ferme le fd 6
exec 0<&6 6<&-
"File descriptors"
------------------
Nombre de fd disponibles :
$ ulimit -n
1024
Fd ouverts :
ls /dev/fd
Boucles
-------
Exemples
for I in 1 2 3 ; do echo $I; done
ou bien :
for ((I=1;I<=3;I++)); do echo $I; done
1
2
3
Avec un fichier "films" contenant par exemple :
Le train sifflera trois fois
Merlin l'Enchanteur
$ j=0 ; for i in `cat films` ; do echo $i ; ((j++)) ; done ; echo Il y a $j mots
Le
train
sifflera
trois
fois
Merlin
l'Enchanteur
Il y a 7 mots
Pour rompre le déroulement d'une boucle for, while ou until :
* continue [n]
revient au début de la boucle
n = niveau de boucle
n = 1 revient début de la boucle
n = 2 revient au début de la boucle précédente
etc.
* break [n]
o sort d'une ou n boucles
o n = niveau de boucle comme ci-dessus
* exit n
o fin du script avec un code de sortie (n)
``, '' et ""
------------
`` => 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 : <Ctrl><R> 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 <nom_PC> 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 épertoires ont été créés :
/opt/openoffice.org
/opt/openoffice.org3
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 (<user>)
---------------------------------------------------------------------------------------
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/<user>/rpm
%_tmppath /home/<user>/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/<user>/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 <ctrl><D> ou <ctrl><C> 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 <<EOF quand il n'y a pas de caractères spéciaux dans le message (', " par exemple):
ssh utilisateur@pc_distant wall Bonjour du pc local
et "Bonjour du pc local" s'affiche sur les consoles de l'utilisateur sur pc_distant
Compilation / installation de programmes
========================================
Savoir / vérifier (conserver une trace de) ce qui est installé
--------------------------------------------------------------
Avant l'installation :
# find /* > 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 : <Ctrl> 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 <PID> ; echo 'Processus <PID> terminé'
La commande echo s'exécute ('Processus <PID> terminé' s'affiche) quand le processus de PID <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 :
<ctrl><z> 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 <Ctrl><z>
[1]+ Stopped xclock
$ jobs
[1]+ Stopped xclock
$ bg
[1]+ xclock &
$ jobs
[1]+ Running xclock &
$ fg
xclock
<= taper <Ctrl><z>
[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
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 <Test> <Settings...> 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
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 <partition>
n pour interdire toute réparation
<partition> 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 <OK>
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
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
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
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 à 10024
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 <COMMAND> off, ce qui évite que <COMMAND> soit relancé au démarrage
mcc -> System -> Services permet de faire la même chose.
- soit trouver la commande
ps aux |grep <COMMAND>
et tuer le processu correspondant kill -9 <PID>
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
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
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 : <Ctrl><V> puis <tab>
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 fore" sur le port 22
----------------------------------------------------------
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 <n° IP du PC> 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 <n° IP de la passerelle>
Malheureusement il n'est pas possible d'enregistrer un fichier /etc/resolv.conf pour indiquer un serveur DNS (nameserver <n°IP du DNS>)
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://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/
User's guide : http://www.ethereal.com/docs/eug_html_chunked/
filtres : http://home.insight.rr.com/procana/
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 <mail server> 25 se connecte sur le serveur de mail <mail server>
Netcat (nc)
===========
www.jfranken.de/homepages/johannes/vortraege/netcat_inhalt.en.html
Pour communiquer entre 2 machines.
voir aussi cryptcat
Se connecter
------------
netcat <nom/adresse de machine> <nom du service>
netcat <nom/adresse de machine> <numéro de port>
En mode serveur (en attente d'une connexion sur un port spécifié)
-----------------------------------------------------------------
netcat -l -p<port> (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 <serveur> 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 <serveur> 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<serveur:port> -p<port d'attente> pour une prolongation simple.
nc -L<serveur:port> -p<port d'attente> -x pour tracer la conversation.
nc -L<serveur:port> -p<port d'attente> -o <fichier> 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 <enc> <file> <dir>
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 Mandirva est obsolete !
Installation à partir des sources (version 6.1 ou 6.1a)
-------------------------------------------------------
- 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 cryptpki (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.
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 <utilisateur>:<groupe> /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=<n° ou login utilisateur> 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 versin truecrypt 6 a une interface graphique)
-----------------------------
# urpmi java
# urpmi pexpect
# groupadd truecrypt
# usermod -G truecrypt root
# usermod -G truecrypt <login utilisateur>
# 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 :
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> <EOT>
job 1 at 2003-09-04 12:15
NB : EOT obtenu en tapant <ctrl><d>
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 <PID> pour tuer le processus n° PID
h help
Sous KDE : <ctrl><esc>
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 110 Pour tester par exemple un serveur POP (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.
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 <commande distante>
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 /<répertoire>/<nom_fichier> qui a été indiqué :
<nom_fichier> contient la clé privée
<nom_fichier>.pub contient la clé publique
La clé publique contient à la fin <login>@<machine>
ssh-keygen sans passphrase permet de se connecter à un serveur ssh sans taper de mot e 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 (<Ctrl><z>, puis bg
Le serveur web du firewall est accessible par :
https://localhost:4091
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
=============================================================
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 (à vérifier)
--------------------------------
Dans /etc/inittab, changer :
id:3:initdefault:
en
id:5:initdefault:
(sur Mandrake 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)
<Alt Ctrl Fn>
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 :
<Ctrl Alt F7> pour la première console graphique
<Ctrl Alt F8> pour la 2°, etc. (F7 à F11 utilisables)
<Ctrl Alt F12> 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
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://<IP ou nom du serveur VNC>:5800
(utiliser firefox. Avec konqueror l'applet VNC ne se charge pas : problème java non activé sous konqueror? 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/<NomDuServeur>.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 <Configure>
Cocher "Remember my password"
Cliquer sur <Key>
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 <utilisateur>
La commande :
# /usr/NX/bin/nxserver --usercheck <utilisateur>
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/<un numéro>
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. (<Alt><Ctrl><Backspace> 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 <NomClient> 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 <pid syslogd>
+++++++
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=<login ou n° utilisateur> /dev/sdax /mnt/disk
# mount -o users,rw,gid=<nom ou n° groupe> /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 <utilisateur>
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 <Save>
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 <searchbar>
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 <<EOF
device (fd0) /dev/fd0
root (fd0)
setup (fd0)
quit
EOF
Cette disquette permettra de démarrer pratiquement n'importe quel système
d'exploitation (Linux ou autre) qui se trouve sur le(s) disque(s) de l'ordinateur.
II - Installer grub sur le MBR d'un disque
NB : quand on installe grub sur le disque dur au moyen du rpm mandriva, ce qui est nécesaire au fonctionnement de grub se trouve dans /lib/grub/i386-mandriva/ ; on peut copier à la main les fichiers "*stage*" dans /boot/grub, ou bien utiliser grub-install qui fera cela automatiquement.
Attention : éviter d'écraser le MBR Windows. S'il a été écrasé, voir plus loin
Pour éviter cela, sauvegarder le MBR avec dd par exemple sur une disquette :
dd if=device of=/dev/fd0/mbr.win bs=512 count=1
remplacer device par le device du disque de boot (par exemple hda, sdb ...)
1 - Lancer grub :
# grub
2 - Vérifier que le "root device" (c'est à dire les fichiers grub) se trouve bien là où l'on pense : en effet la dénomination des disques est différente sous linux
et sous grub:
grub> 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 <c> 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 <Esc> puis <e> 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) :
<Alt Ctrl F2>
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/
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.
Récupération de messages sauvegardés, suite à une réinstallation de Linux
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Kmail 1.8.1
Créer les répertoires désirés sous "inbox" (répertoire essai par exemple)
Sur le serveur de mail copier les mails sauvegardés dans les répertoires correspondants (~/Maildir/.essai/cur
dans cet exemple).
Kmail affiche maintenant les mails copiés dans les répertoires ad-hoc (inbox/essai dans cet exemple) sans aucune protestation
Il semble que dans cette version de kmail les index soient maintenant rangés
dans /home/user/.kde/share/apps/kmail/imap.
Sauvegarde des messages
-----------------------
KMail 1.9.6, KDE 3.5.6 :
Les messages locaux sont dans ~/.kde/share/apps/kmail/mail.
A conserver et copier dans la nouvelle installation.
Messages conservés sur le serveur, voir plus loin "Sauvegarde des messages enregistrés sur le serveur Postfix"
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
Calendrier
==========
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.
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 <Anonymous ~ftp> 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
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
RequireValidShell off
<Limit WRITE>
DenyAll
</Limit>
# Les modifs à ajouter sont ici :
#--------------------------------
<Directory pub/upload/>
<Limit READ STOR CWD>
AllowAll
</Limit>
<Limit RMD DELE MKD>
DenyAll
</Limit>
</Directory>
#--------------------------------
</Anonymous>
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
<Directory /chemin/réel/vers/répertoire_à _autoriser>
Options Indexes FollowSymLinks
<IfModule mod_access.c>
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.3.27 mabecane.fr
</IfModule>
</Directory>
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
<VirtualHost 192.168.1.70>
ServerName mon_joli_site.fr
ServerAlias mon_joli_site
#ServerPath /domain
DocumentRoot /répertoire/de/départ
</VirtualHost>
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
<VirtualHost 192.168.0.25>
ServerName MonJoliSite.mondomaine.a_moi
DocumentRoot /var/www/html/sites/MonJoliSite
</VirtualHost>
################# MonAutreSite
NameVirtualHost 192.168.0.25
<VirtualHost 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
</VirtualHost>
dans /etc/httpd/conf/commonhttpd.conf :
---------------------------------------
rajouter :
<Directory /var/www/html/sites/MonJoliSite>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
<IfModule mod_access.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
<Directory /var/www/html/sites/MonAutreSite>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
<IfModule mod_access.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
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'huere 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
==================
<Alt Crtl Backspace>
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 : ?
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 <AdresseIP> netmask 255.255.255.0 broadcast <IPdeBroadcast, e.g. xxx.xxx.xxx.255> 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 <AdresseIPduGateway>
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=<nom des domaines par défaut>
- Pour une adresse allouée par dhcp
...................................
DEVICE=eth0
BOOTPROTO=dhcp
NETMASK=255.255.255.0
ONBOOT=yes
METRIC=10
DOMAIN=<nom des domaines par défaut>
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 <IP du 1° DNS>
nameserver <IP du 2° DNS>
....
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 <user>
Locking password for user <user>.
passwd: Success
Dévérouiller
------------
# passwd -u <user>
Unlocking password for user <user>.
passwd: Success.
Supprimer le mot de passe
-------------------------
# passwd -d <user>
Removing password for user <usser>.
passwd: Success
Créer/changer le mot de passe d'un utilisateur
----------------------------------------------
# passwd <user>
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
=====
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 <login_sur_le_pc>
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
- 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 <fichier> 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 : 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 (merci Jipe pour l'explication).
Autres solutions :
1- dd if=/dev/cdrom | cmp image.iso
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
---------------------
# 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.
<Next> 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 <NomDuService>
ou -S
cygrunsrv ----remove <NomDuService>
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 <NomDeLApplication> 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.
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 :
<?php phpinfo(); ?>
=>
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 :
<?php phpinfo(); ?>
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 </var/www/html/admin/phpMyAdmin/scripts/create_tables_mysql_4_1_2+.sql
- Lancer (relancer) phpMyAdmin
Ne semble pas fonctionner correctement : Ã voir.
Installation de la dernière version disponible sur le site http://www.phpmyadmin.net/
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
- Décompresser :
tar zxvf phpMyAdmin_x.x.x.tar.gz
- Mettre le dossier dans (sous) la racine du serveur web (/var/www/html), ou dans un répertoire accessible par apache (cf. Apache, alias)
- Configurer (fichier config.inc.php)
compléter:
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin-2.6.0-pl3/';
$cfg['PmaAbsoluteUri_DisableWarning'] = TRUE;
$cfg['Servers'][$i]['host'] = 'localhost';
Installation de phpMyAdmin-2.8.0.3 (Ã partir de cooker)
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Documentation : /var/www/phpMyAdmin/Documentation.html
Le fichier de configuration "config.inc.php" de phpMyAdmin n'existe pas. Il faut le créer à partir du modèle "config.default.php" fourni :
/var/www/phpMyAdmin/libraries/config.default.php -> /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 :
<Directory "/var/www/html/phpMyAdmin-2.6.0-pl3">
...
AuthType Basic
AuthName "phpMyAdmin"
AuthUserFile /etc/httpd/passwd/.htpasswd
Require user toto
</Directory>
Explication :
<Directory "/var/www/html/phpMyAdmin-2.6.0-pl3"> 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é
</Directory>
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
<Directory "/var/www/html/phpMyAdmin-2.6.0-pl3">
AuthType Digest
AuthName "Accès à phpMyAdmin"
AuthUserFile /etc/httpd/passwd/.htpasswd
AuthGroupFile /etc/httpd/passwd/groups
Require group Nom_du_groupe
</Directory>
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
<Directory /var/www/html/phpmyadmin>
Allow from All
</Directory>
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 /<LaPageWeb>/ 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
<Directory /installe/admin/phpPgAdmin>
Options Indexes FollowSymLinks
<IfModule mod_access.c>
Order deny,allow
Deny from all
Allow from localhost
</IfModule>
</Directory>
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/"
<Directory "/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
</Directory>
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 <Go>
Résultat : le message d'erreur "Error: Only privileged users can view information about host <nom de l'hôte>." 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 (<pc.domaine>)
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 <pc.domaine>/
/backup/pc/<pc.domaine>:
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@<serveur_de_backup>
(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@<client>
- 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@<client>:~/.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 <AdministrateurDeSauvegarde>@<client>:~/.ssh/authorized_keys
(NB : le répertoite .ssh doit exister sur le client, sinon message d'erreur :
scp: /home/<AdministrateurDeSauvegarde>/.ssh/authorized_keys: No such file or directory)
Pour ajouter :
[backuppc]$ cat .ssh/id_rsa.pub | ssh <AdministrateurDeSauvegarde>@<client> "cat >> .ssh/authorized_keys"
- Créer un fichier /etc/BackupPC/pc/<nom du client>.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 <NomClient>
-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 <NomClient>
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/"
<Directory "/usr/local/apache/htdocs/BackupPC/">
Options -Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
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 <nom.du.client>
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
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
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
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
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
===========================
Acquisition vidéo
-----------------
dvgrab
Montage
-------
kino
Création de dvd
---------------
mandvd
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 :
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
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
-------------------------------------
Interreta Televidilo : http://home.gna.org/televidilo/
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é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
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 cete 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 <Nom> "http://<adresse du flux>"
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 <chemin/package>.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
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=<BAL du destinataire des messages de mise à jour>
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=<IP du modem>/doc/wan.htm # sur cette page http du modem
fw-login=<login pour accéder au modem>
fw-password=<mot de passe>
server=members.dyndns.org # Adresse de la page web du service dyndns
protocol=dyndns2
login=<login pour cette page>
password=<mot de passe pour cette page>
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/<NomDuHostName>
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
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\<share>
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 \\<HôteLinux>\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 <repertoire>
================
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
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.
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 <user>:<user> ~/.Xauthority
fish
====
"An error occurred while loading fish://<host>:"
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/<user>/.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 <user>:<user> /home/<user>/.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.
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†:
<policy group="plugdev">
<allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
<allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>
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 :
<config version="0.1">
et
</config>
les lignes :
<match action="org.freedesktop.hal.storage.mount-removable">
<match user="nom de l'utilisateur">
<return result="yes"/>
</match>
</match>
<match action="org.freedesktop.hal.storage.mount-fixed">
<match user="nom de l'utilisateur">
<return result="yes"/>
</match>
</match>
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 <device>"
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) !