Unix
· UNIX - ESClinux ·
Linux

Cette page est en remplacement de mon ancien "bloc-note" virtuel pour tout ce qui concerne les système unix. Comme mon fichier html devenait ingérable (je voulais tout avoir dans un seul fichier), je suis en train de faire le ménage dedans et en profite pour classer mes notes grâce à jreepad.
En attendant l'ancienne page se trouve ici et la source au format jreepad est dans ce fichier : unix_esclinux.jree

Réseau
Ip masquerade

faire un script dans ce style, et le lancer au démarrage de la machine, ou après la connexion :

#!/bin/bash
case $1 in
start)
echo Starting IP Masquerade
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
echo  "1">/proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j  MASQUERADE
;;
stop)
echo Stopping IP Masquerade - not yet implemented  -
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage : ipmask  {start|stop|restart}"
exit 1
esac
exit 0
Installer un proxy apache

modifier httpd.conf en retirant les commentaires (débutant par #) des lignes qui parlent de proxy

ex :

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

et ensuite inclure ces lignes :

<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.0.2
Allow from 192.168.0.3
#indiquer l'ip des ordinateurs qui se connecteront à ce proxy.
#Ensuite renseigner ces ordinateurs avec adresseserveur:port, par ex 192.168.0.1:80]
</Proxy>
</IfModule>
divers

iptables -L -v -n : voir les ports

sudo lsof -i -n -P : voir les ports ouverts

nmap -sS -O -PI -PT 192.168.0.0/24 : voir les machines sur le réseau + diverses info


(http://forum.macbidouille.com/index.php?showtopic=16698)

Pour connaitres les programmes derrière les ports ouverts

netstat -lntup en root.

Internet

rpcinfo -p : liste des ports

lsof -i : liste les fichiers n rapport avec une connexion internet

netstat -a : info sur les connexions

fuser

ifconfig : entre-autres permet de savoir sa propre adresse ip


iftop : liste les connexions

pppstatus : liste le traffic réseau


cat /proc/net/dev : activité réseau.

Installer LAMP (Linux, Apache, MySQL, Php)

(voir http://www.ac-creteil.fr/reseaux/systemes/linux/installation-lamp-debian.html)

Ou sinon utiliser xampp : http://www.apachefriends.org/fr/xampp.html

Configurer le réseau manuellement

ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up

route add default gateway 192.168.0.2

echo "nameserver 193.252.19.3" >> /etc/resolv.conf
# l'exemple donné est celui de Wanadoo
echo "nameserver 194.2.0.20" >> /etc/resolv.conf
# oleane (ainsi que 194.2.0.50)

Quelques ip courantes :

http://www.google.com = 216.239.41.104
http://mail.yahoo.fr = 216.109.127.30
http://www.free.fr = 213.228.0.42

Changer le protocole de négociation (half / full duplex)

(Linux)

mii-tool -F 100baseTx-FD eth0

les options possibles sont : 100baseTx-FD, 100baseTx-HD, 10baseT-FD, or 10baseT-HD

(BSD)

Editer le fichier /etc/rc.conf et inclure la ligne : ifconfig_rl0="100baseTX mediaopt full-duplex", puis relancer /etc/netstart (rl0 peut changer en fonction du modèle de la carte)

Autres commandes et infos

hostname nomdemachine : défini le nom de machine
smbpasswd -a utilisateur : ajouter une utilisateur

Samba

voici la partie qu'il faudra ajouter à fstab pour monter directement un partage distant, et en autoriser l'accès à tous les utilisateurs de la machine :

//cheminreseau /mnt/chemindemontage smbfs auto,users,umask=0777,username=votrelogin,password=votremotdepasse,rw, 0 0


Si le montage ne se fait pas correctement, taper : mount -a ou mount //serveur/repertoire

Pour un montage direct :

mount -t smbfs -o username=votrelogin,password=votremotdepasse //cheminreseau /mnt/chemindemontage


Du côté serveur (au sens large, c’est à dire ordinateur où on se connecte), soit cela tourne sous MSWindows et il n’y a qu’à définir les partages et les mots de passe à partir de là, soit il faut modifier sous linux ce fichier en ajoutant ce type d’entrée :


section /etc/samba/smb.conf :

[eric]
comment = Eric
path = /home/eric
browseable = yes
read only = no

puis :

/etc/init.d/samba restart


Ne pas oublier de définir un ou des utilisateurs Samba avec la commande :

smbpasswd -a login motdepasse



pour configurer un serveur public sans aucune restriction d'accès, il faut avoir un fichier smb.conf sur ce modèle :

[global]
workgroup = votre-groupe-de-travail
netbios name = nom-ordinateur
os level = 20
encrypt passwords = true
server string = Serveur public
security = share

[partage]
writeable = yes
public = yes
path = /partage
browseable = yes
read only = no
force user = root
force group = root

Nfs

Il peut sembler plus logique d'utiliser NFS si toutes les machines tournent sous linux : voir les fichiers /etc/exports, /etc/hosts.allow, /etc/hosts.deny (exportfs -ra après edition)

Connexion sécurisée

ssh utilisateur@serveur


pour une connexion distante sécurisée (équivalent de telnet)


scp


sftp://serveur dans konqueror

secpanel (http://www.pingx.net/secpanel/)


syntaxe rcp / scp :


scp fichier nom@url:chemin

Services http

Il permettent une gestion de la machine au travers d'un navigateur internet :


swat (http://localhost:901)
webmin (http://localhost:10000)
cups (http://localhost:631)

Ftp

avec pure-ftp

http://www.trustonme.net/didactels/?rub=57



En fait pour lancer le serveur, une commande comme :


pure-ftpd -A -H


peut suffire (je pense qu'il doit y avoir quelques sécurités là dessus, contrairement à la commande toute seule).


Par contre il faut juste configurer quel répertoire sera partagé, et pour cela je te conseille de lire cette page : http://www.trustonme.net/didactels/57.html


en gros c'est :




[code]

# mkdir /var/ftp


Vérifier que notre utilisateur/groupe ftp n'existe pas déjà:


# cat /etc/passwd|grep ftp

ftp:x:14:50:FTP User:/var/ftp:

# cat /etc/group|grep ftp

ftp:x:50:


Comme on peut le voir ici, l'utilisateur ftp existe déjà avec /var/ftp comme répertoire maison et il appartient au groupe ftp. Donc rien a faire en théorie, mais pour les besoins de l'exemple on va faire comme si on avait rien vu ;-)

Création de l'utilisateur ftp:

$ su

Password:

# groupadd -g 23 ftp

# useradd -d /var/ftp -g 23 -u 14 ftp -s /bin/false

[/code]


c'est pas bien difficile, et une fois que c'est fait, on est tranquille, il y a juste à lancer le serveur à distance.


Ici il y a une note pour avoir une adresse à jour avec dyndns :

http://guides.ovh.com/DynDns/contenu.html


regarde du côté du script Addns.pl

Le bureau
Périphériques
Sécurité
Logiciels
Firefox

Installer le plugin java dans mozilla / firefox


(adapter selon votre chemin du jre)

sudo ln -s /usr/share/jre1.5.0_01/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla-firefox/plugins/
( eventuellement ?
sudo ln -s /usr/share/jre1.5.0_01/lib/i386/libjavaplugin_jni.so /usr/lib/mozilla-firefox/plugins/ )

Mutt

créer un fichier .muttrc dans /home/utilisateur/

# Mail Folder
set folder = ~/Mail # Directory that contains all  mail files (mailboxes)
set spoolfile = +Inbox # Default spoolfile
set mbox = +Inbox # Where mail is appended to from  spoolfile
set mbox_type = mbox # Type of mail files
set postponed = +Unsent # Where to save postponed  mail
set copy = yes # Save copies of outgoing mail?
set record = +Sent # Where to save copies of outgoing  mail

#set pop_delete
set pop_host="pop.serveur.fr"
#set pop_port=110
set pop_pass=" mot de passe "
set pop_user=" utilisateur "
# unset pop_last


Récupérer le courrier avec « G ».

envoyer une pièce jointe directement :
mutt -s "Test mail" -a fichier.tar.gz nom@adresse.com < /tmp/mailmessage.txt


Le Bureau (session graphique)
Gestionnaires de fenêtres

Lancement automatique du gestionnaire de fenêtre préféré :

(Mes favoris sont kde avec kstep, windowmaker, fluxbox, xfce... site sur le sujet : http://xwinman.org/)

Editer ou créer dans le répertoire utilisateur le fichier .xinitrc
La dernière ligne doit indiquer le bon gestionnaire de fenêtre (ex : /usr/bin/wmaker& ou exec /usr/bin/wmaker )
(Pour utiliser un environnement de bureau en plus, indiquer par exemple :
afterstep &
exec gnome-session)

En ligne de commande taper : startx
eventuellement : lancer kdm à la place

xinit -e /chemindugestionnaire : permet de ne lancer que le gestionnaire et non pas l'environnement de bureau complet (KDE ou Gnome)

Lancement d'une seconde session graphique / ouverture d'une session vnc :

startx -- :1.0

autre solution :

X -query localhost -once :1

A tester : http://www.x-desktop.org/


(alt+ ctrl + backspace : termine la session x brutalement)


Utilisation de Xnest (session X dans X)

 Xnest -ac :1

export DISPLAY=localhost:1

wmaker

option :

export WINDOWMANAGER=/usr/bin/gnome-session

export WINDOWMANAGER=/usr/X11R6/bin/twm

startx -- :1


x :1 &
export DISPLAY=localhost:1
wmaker &

Autoriser un utilisateur distant à se connecter graphiquement sur X

Lancer une application graphique depuis un autre utilisateur

xauth merge /home/user/.Xauthority : évite le ‘ connection to ":0.0" refused by server ’

ssh -l root -X localhost : idem

en tant que root : xhost + (attention : retire toute sécurité)

ou :

éditer /etc/X11/Xwrapper.config


vérifier que cette valeur est présente :


allowed_users=anybody

Lancer une session graphique sur un poste distant

poste 1 :

Xnest -ac -geometry 1024xf768 :1 &

ssh login@ip -X -C

poste 2 : (loggé depuis le poste 1)

export DISPLAY=ip_poste1:1

wmaker



ssh login@ip -X -C


-C active la compression de données

-X le forward de l'environnement graphique x11

========


Utilisation de freenx

freenx est un protocole similaire dans ses résultats à vnc, mais avec une plus grande rapidité.

dans /etc/apt/sources.list

#freenx
deb http://archive.kalyxo.org/kalyxo/ staging  main
deb http://archive.kalyxo.org/kalyxo/ experimental main
  

en root :

nxsetup
nxserver --adduser username
nxserver --passwd username


ensuite copier le /home/.nx/.ssh/client.id_dsa.key du serveur sur le client : /usr/NX/share/

KDE

Dcop

while true ; do
dcop amarok player start
sleep 7 
dcop amarok player pause
sleep 5 
done

http://www.volny.cz/bwian/dcop.html

Equivalent linux général : Dbus : http://www.freedesktop.org/wiki/Software_2fDbusProjects

Gnome

Retirer le thème geramik

laid et encombrant, à l'image de son modèle keramik, il peut être avantageux de l'éradiquer

mv /etc/gtk/gtkrc /etc/gtk/gtkrc-old
mv /etc/gtk-2.0/gtkrc /etc/gtk-2.0/gtkrc-old
apt-get install gtk-engines-industrial
apt-get install gtk2-engines-industrial
apt-get install gtk-theme-switch
apt-get remove gtk2-engines-geramik*
apt-get remove gtk-engines-geramik*
apt-get install kdeartwork #thème plastik
apt-get install metacity-themes #thème alternatif

Configuration gtk

Par exemple pour modifier l'apparence de l'éditeur html bluefish :

http://micmacfr.homeunix.org/bluefish/doc/book.html

Créer un fichier .gtkrc-2.0 dans le répertoire /home/utilisateur :

style "bluefish"
{
 # For up and down arrows grouped together at right side
 GtkNotebook::has_secondary_forward_stepper = 1
 GtkNotebook::has_secondary_backward_stepper = 1
 
 # Editor background color 
 # (background of editor view)
 base[NORMAL]="#cccccc"
 
 # GUI normal background color
 # (most of the GUI)
 bg[NORMAL]="#dbe9e9"
 
 # GUI highlighted background color
 #(GUI when mouse over elements)
 bg[PRELIGHT]="#c6e9e9"
 
 # GUI unactive background color
 #(GUI disabled elements)
 bg[INSENSITIVE]="#9fb2b2"

 # GUI active background color
 #(GUI enabled elements)
 bg[ACTIVE]="#c7d4d4"
}
class "GtkWidget" style "bluefish"

Pour donner un aspect NeXTstep aux applications gtk :
http://www.linuks.mine.nu/workstation/

Extensions composites xorg
http://wiki.archlinux.org/index.php/Using_the_Composite_extension lynx -head http://site... : donne des info sur le serveur du site ajouter les paquets de http://debian.linux-systeme.com/ # /etc/apt/sources.list: deb http://debian.linux-systeme.com sid main deb-src http://debian.linux-systeme.com sid main il faut avoir dans /etc/X11/xorg.conf ces lignes (pour une nvidia par ex.) : %%(php) Section "Extensions" Option "Composite" "true" Option "RENDER" "Enable" EndSection Section "Device" #VideoRam 8192 # Insert Clocks lines here if appropriate Identifier "NVIDIA GeForce" Driver "nvidia" Option "AllowGLXWithComposite" "True" Option "RenderAccel" "True" EndSection%%
Console
Terminal coloré

PS1='\[\033[1;32m\][\t]\[\033[1;33m\][\u@\h]\[\033[0;36m\]\w\$\[\033[0m\] '

Autoriser un utilVariables dans le prompt:
\d pour ajouter la date (format anglais)
\t pour ajouter l'heure (HH:MM:SS)
\u pour ajouter le nom de l'utilisateur
\r pour un retour à la ligne
\w pour ajouter le chemin complet du répertoire courant
\W pour ajouter le répertoire courant
\h pour ajouter le nom de la machine


Couleur dans le prompt:
PS1='\[\033[couleurm]prompt_voulu\033[0m]'
Noir 0;30
Rouge 0;31
Vert 0;32
Brun 0;33
Bleu 0;34
Violet 0;35
Cyan 0;36
Gris Clair 0;37
Gris 1;30
Rose 1;31
Vert Clair 1;32
Brun Clair 1;33
Bleu Clair 1;34
Violet Clair 1;35
Cyan Clair 1;36
Blanc 1;37


http://understudy.net/custom.html


voir http://mercury.chem.pitt.edu/~sasha/LinuxFocus/English/May2004/article335.shtml
www.linuxexposed.com/Articles/General/Automating-the-Login-Script.html
http://www.rodolf.free.fr/linux.htm

Debian

Créer un paquet :

apt-get source programme
cd programme
dpkg-buildpackage -rfakeroot
ou utiliser checkinstall qui peut créer spécialement des paquets à partir des sources.

Son

Synthétiseurs virtuels
artsbuilder

Système
langue
choisir la langue du système : utiliser : set-language-env http://www.libordux.org/debian-docs/config.php
Imprimer

Imprimer à partir de firefox / thunderbird


utiliser le gestionnaire de kde : entrer dans les préférences avancés : kprinter --stdin

Conversion images vers pdf


convertir en tiff d'abord (les outils de conversion tiff sont mieux optimisé qu'ImageMagick)
for A in *.JPG ; do convert $A $A.tiff; done
tiffcp *.tiff fichier_sortie.tiff
tiff2pdf  fichier_sortie.tiff -o fichierfinal.pdf


modifier la résolution : convert -density 200 etc.
convertir en n&b :
for A in *.tif ; do convert $A -monochrome ../tiff3/$A ; done
FreeBSD

Les *BSD diffèrent un peu de Linux dans l'architecture et la gestion de certains fichiers de configuration, ainsi que dans quelques commandes. -> le texte

J'ai déjà indiqué à quelques endroits les différences de commandes entre linux et *bsd, voici encore quelques notes à ce sujet.

caractéristiques principales

Ceci ne caractérise que ce que j'ai vu pour le moment comme différence avec linux

  • Fichier /etc/rc.conf :
    Il gère les configurations du système, notamment au démarrage. Il rajoute des entrées au fichier /etc/default/rc.conf, qu'il convient de ne pas toucher. Les scripts sont dans /etc/rc.d et /usr/local/etc/rc.d
  • Fichier /etc/ttys :
    Gère le démarrage (/etc/inittab sous linux)
  • Arborescence :
    Les dossiers /bin /sbin /etc sont pour le coeur du système, alors que les programmes et fichiers de configuration ajoutés par la suite sont dans /usr/local/bin /usr/local/sbin et /usr/local/etc
  • Groupe Wheel :
    L'utilisateur doit faire partie de ce groupe pour avoir le droit de passer en root via su.
  • Mises à jour et installation de logiciels :

      /stand/sysinstall : centre de configuration (permet également d'installer des logiciels via internet)

      pkg_add -r logiciel : installe un paquet depuis internet

      whereis logiciel : trouve un logiciel à compiler
      cd /usr/ports/chemin/logiciel : aller dans le dossier du logiciel
      make
      make install : compiler et installer le logiciel. Ensuite faire make clean pour effacer les fichiers temporaires.
      make desinstall : pour désintaller un programme
      mae reinstall : pour réinstaller

    Il est possible de changer le site de téléchargement :
    PACKAGESITE="ftp://ftp5.fr.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/"; export PACKAGESITE 

    Sources : ftp://ftp.freebsd.com/pub/FreeBSD/distfiles/
    ftp://ftp2.freebsd.org/pub/FreeBSD/ports/packages/
    Mettre à jour les sources avec cvsup et celle du port avec portupgrade -r logiciel.
  • sysctl :
    permet de passer des paramètres au système, ou de les lires.
    ex : sysctl -a

Astuces diverses

Enlever la cloche console : kbdcontrol -b off ou dans rc.conf : allscreens_kbdflags="-b off"

chpass -s /usr/local/bin/bash utilisateur : change le shell par défaut (en bash) pour l'utilisateur 'utilisateur'.

/usr/compat/linux/proc : si paquet compatibilité linux installé, permet de retrouver le /proc pour avoir des infos système.

sysctl -a | grep -i memory : équivalent de free sous linux : donne l'état de la mémoire

Désactive complètement sendmail : indiquer dans /etc/rc.conf

sendmail_enable="NONE"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Liens FreeBSD

Des pages pour aider à la migration, ou l'interopérativité :
http://www.int-evry.fr/mci/user/procacci/Doc/freebsd-linux.html
http://www.faqs.org/docs/Linux-mini/Linux+FreeBSD.html
http://www.onlamp.com/pub/a/bsd/2005/01/13/FreeBSD_Basics.html
http://www.onlamp.com/pub/a/bsd/2004/11/11/FreeBSD_Basics.html
http://freebsd.tooblog.fr/?Ports
http://www.freebsd.org/doc/fr_FR.ISO8859-1/books/handbook/index.html
http://www.freebsdebutant.org
http://www.gnuworld-fr.org/gen.php3/section/Tips+Unix/83,0,1,0,0.html
http://imil.net/docs/sexy-FreeBSD.txt
http://xkred.com
http://www.diablotins.org/

MacOSX