Aide-mémoire
(Fourre-tout) Linux:
Syntaxes:
# ll `which ifconfig`
-rwxr-xr-x
1
root
root
55388 Oct 13 2003
/sbin/ifconfig (Le "Back Tick" ` exécute d'abord
la commande avant l'instruction de gauche)
# ll
1>resultat.txt 2>erreur.txt (Les I/O standards
sont:
IN:0 (par défaut le clavier) OUT:1 (par
défaut l'écran) ERR:2 (par
défaut
l'écran))
# ll r*
&& echo 'J ai trouvé des fichiers commencant
par r' (Les signes &&
exécutent s'il n'y a pas d'erreurs et || s'il y en a)
# ll r* || echo 'J ai pas
trouvé des fichiers commencant par r'
# find / -name truc\* (Le backslash \ permet de mettre un caractère spécial après.)
# MYVAR="Coucou";echo $MYVAR (Syntaxe pour les variables)
# cat passwd | grep ^n | tee intermediaire | wc -l (Affiche le nombre de ligne
(instruction wc) qui contiennent un résultat contenant la lettre
"n" (instruction grep) dans le fichier password et crée un
fichier "intermediaire" (instruction tee) avec le résultat des
lignes trouvées)
Lance un programme (xeyes) EN TACHE DE FOND:
# xeyes&
Expressions régulières:
^[A-z] Qui commence par une lettre
[0-9]$ Qui fini par un chiffre
coucou$ Qui fini par la chaîne "coucou"
\<Mot\> Recherche le mot entier "mot"
[abc] Recherche a, b ou c
[^abc] Recherche tout sauf a, b ou c
fichier. Le point désique un seul caractère, donc fichier1 ou fichier2 mais pas fichier10
[0-9]{1,5} Recherche les nombres de 1 à 5 digits
[A]{2} Recherche AA
file|File Recherche file et File
(f|F)ile Recherche file et File
Structure des répertoires:
/etc/skel Répertoire des futurs users (un peu comme default users)
/boot Répertoire de boot
/dev Devices. Tout le matériel
/etc Config. Equivalent à c:\windows\system32
/home Mes documents :-)
/lib Librairies
/media Point de montage des CD, clés et disquettes
/root Home de root
/bin Programmes important
/sbin Programmes systèmes
/srv Datas diverses
/tmp Tout ce qui peut s'effacer sans domages
/usr
Unix Specific Resources. Trucs spéciaux
/var
Contient ce que le system écrit en cours
d'utilisation
/proc Process
/mnt Point de montages
/etc/resolv.conf => DNS
/etc/HOSTNAME => Hostname
/etc/sysconfig/network/routes => Table de routage
/etc/sysconfig/hardware/hwcfg-vpid-8086-24d5-103c-12bc => Config Carte réseau
File
System:
S'il y a une erreur
disque, notamment après la commande find
Booter sur le CD en Rescue
=> Login Root
(sans password) => reiserfsck
-rebuild-tree /dev/hda2
Pour partager un répertoire:
inclure la ligne dans /etc/exports
/home/répertoire_partagé *(rw,all_squash,sync)
puis faire un exportfs -a (vérifier avec exportfs tout court)
Pour accéder à un répertoire distant:
S'assurer que tourne:
mountd
/etc/init.d/nfs start (peut lancer les services ci-dessous...)
portmap
/etc/init.d/portmap start
nfsd
/usr/sbin/rpc.mountd
Créer un répertoire (ex: /home/nicolas)
puis editer le fichier /etc/fstab
172.30.98.113:/home/all_user /home/nicolas nfs noauto 0 0
puis faire un mount -a (vérifier par mount)
Changer l'heure:
# date -s 09:05:00
Sauvegardes par images:
# dd if=/dev/hda of=/home/secteur_boot.dd
# dd if=/home/secteur_boot.dd of=/dev/hda
# dd if=/dev/hda of=/dev/hde
Partitions:
(Par disque, 4 partitions primaires max. L'une d'elle peut être étendue et contenir des partitions logique)
# fdisk -l (Liste des partitions)
# fdisk /dev/hda (Crée une partition, w pour écrire à la fin, p pour afficher)
# partprobe (Relis dynamiquement la table de partition)
Formatage:
# mkfs -t reiserfs /dev/hda3
ou
# mkreiserfs /dev/hda3
Montage:
# mount (Affiche ce qui est monté)
Méthode 1:
# vi /etc/fstab
(Label ou UUID) (Point de
montage) (FileSystem) (Options - noauto, default, ...) (Dump -
Backupable) (Check - 0:non 1:root directory 2:all FS)
/dev/hda3
/newdisk
reiserfs default
1
2
# mkdir newdisk
# mount -a
Méthode 2:
# mount /dev/hda3 /newdisk
ou
# mount -o noexec /dev/hda3 /newdisk
# mount -o remount,ro,noexec /dev/hda3 /newdisk (remount si options différentes sur existant)
# mount -t nfs machine:/Repertoire /mnt
dans fstab:
192.168.1.31:/products/sles10
/export/sles10 nfs
defaults,rsize=8192,wsize=8192,soft 0 0
# showmount -e machine (Regarde les répertoires partagés d'une machine)
Taille des disques:
# df -h
Checks:
# fsck /dev/hda2 (Check sur partition DEMONTEE (au pire booter sur Rescue disk)) e2fsck pour EXT2 et EXT3, reiserfsck pour REISER
# reiserfsck --rebuild-tree /dev/hda2 ("--rebuild-tree" est l'option la plus efficace et la plus longue)
Volumes Logiques:
# pvcreate /dev/hda9 (Transformation d'une vraie partition en préparation pour LVM)
# pvscan (visualisation)
# vgcreate nomdupool /dev/hda9 (Là, on crée la couche virtuelle sur laquelle viendra les volumes logiques)
# pvscan (visualisation)
# lvcreate -L 100M -n data nomdupool (Création - enfin - du volume logique)
# lvscan (visualisation)
# lvextend --- (Redimentionnement +)
# lvreduce (Redimentionnement -)
Quotas:
/etc/fstab => defaults,usrquota,grpquota 1 1 (ajouter ,usrquota,grpquota pour rendre le volume quotifiable)
Remonter les disques pour prendre en compte
# insserv boot.quota start (Démarre les quotas au boot)
# /sbin/quotaon filesystem
# /sbin/quotaoff filesystem
# edquota -u geeko (edition du quota pour geeko)
# quotaon -av
# edquota -t (Détermine la période de grâce entre la limite soft et hard)
# edquota -p user1 geeko (copie du user1 en user "geeko")
# quotacheck -mavug
# /etc/init.d/boot.quota start (Initiation des Quotas)
# repquota -aug (Affiche le dépassement soft des quotas)
Quelques commandes standard:
Crontab:
minute heure jour_mois mois jour_semaine(7=dimanche)
Exemple:
3 * * * * root /bin/echo coucou => Toutes les heures .03
-*/3 * * * * root /bin/echo coucou => Toutes les 3 minutes
3,7,14 * * * * root /bin/echo coucou => Toutes les 3, 7, 14 minutes de chaque heures
3-24 * * * * root /bin/echo coucou => Toutes les 3 à 24 de chaque heure
3 * 1 4 * root /bin/echo coucou => Le premier avril toute les heures .03
Mettre le fichier contenant la ligne dans /etc/cron.d
Arrêt de la machine:
# shutdown -h now => Manière correcte
# init 0 => Manière bûcheronne
# halt => Manière bûcheronne
Reboot de la machine:
# shutdown -r now => Manière correcte
# reboot => Manière bûcheronne
Changement des droits d'un fichier ou d'une arborescence:
# chmod xxx -R fichier
Ou xxx est le chiffre de 0 à 7 (4=r 2=w 1=x)
# chmod u+r -R fichier
# chmod a-wx fichier (u=user g=group o=other a=all et + - = r w ou x)
# chown user:mongroupe fichier
Affiche en live les derniers logs system:
# tail -f /var/log/messages
Recherche:
# find / -name chaine (Recherche la chaîne partout)
# find /rep1 /rep2 /rep3 -name truc\* -exec ls -al {} \; (La commande exec après le find est un outil puissant)
# find / -size 10M
ou
# find / -size +10M -exec ls -al {} \; (cherche tous les fichiers de + de 10M)
# which crontab (Comme find, mais n'affiche que le résultat pris par le système)
# find / -noleaf -type f -name fichieràchercher (-noleaf "corrige" le bug)
# find /srv/www/htdocs -name "*.htm" -exec mv {} {}l \; (remplace tous les htm par les html)
Synchronisation avec un serveur de temps:
# ntpdate swisstime.ethz.ch
# ntpdate ntp.metas.ch
# ntpdate 172.30.76.150 (exemple)
# ntpdate swisstime.ethz.ch
# chkconfig xntpd 35 (L'ajoute au démarrage)
# vi /etc/ntp.conf
# chkconfig -l ntp (Pour voir si au démarrage il est enclenché)
# ntpq -p (Affiche l'état des synchro)
Active ou désactive la connexion eth0:
# ifconfig eth0 down
ou up.
Ajoute une adresse ip sur la même carte:
# ifconfig eth0:1 192.168.42.1
Force l'état de la carte réseau en full duplex:
# mii-tool -F 100baseTx-FD eth0
# ethtool -s eth0 speed 100 duplex full
Version de Linux:
# uname -a
ou
# cat /proc/version
ou
# cat /etc/SuSE-release
Liste les modules:
# lsmod
Teste un module:
# modprobe
Gestion des modules:
# modprobe module (Ajoute proprement un module, avec les dépendances, mieux que insmod)
# modprobe -r module (Supprime proprement un module, avec les dépendances, mieux que rmmod)
Affiche dhcp:
# cat /etc/resolv.conf
Création d'un lien:
# ln FichierExistant NouveauLien (Créé un Hard-Link, les deux liens sont identiques et pointent sur le même contenu)
# ln -s FichierExistant NouveauLien (Créé un Link standard (softlink) et le nouveau lien n'est qu'un raccourci sur le fichier existant)
Alias:
# alias essais='date>coucou.txt;cat coucou.txt'
# unalias essais
Taille d'un répertoire:
# du -h /home/geeko
Top ten des plus gros répertoires:
# du -k / | sort -n | tail
Liste les fichiers ouverts:
# lsof -s -u geeko
Liste de qui tient les fichiers:
# fuser -v -u /home/geeko
Affiche un touli calendrier:
# cal
Sécurité:
# echo Pas de Login aujourd hui connard>/etc/nologin (Le fichier /etc/nologin empêche tout autre que root de se loguer)
# vi /etc/pam.d/login (Gère les authorisations de login)
# vi /etc/sudoers
ou
# visudo (gère les permissions de sudo)
...puis mettre un commentaire dans les 2 lignes suivantes: (les 2
dernières, pour ne pas utiliser le password root dans sudo)
# In the default (unconfigured) configuration, sudo asks for the root password.
# This allows use of an ordinary user account for administration of a freshly
# installed system. When configuring sudo, delete the two
# following lines:
# Defaults targetpw # ask for the password of the target user i.e. root
# ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!
puis y insérer les lignes selon le schéma:
user/group host = commande1,commande2,...
exemple:
geeko ALL = /sbin/shutdown
nsa ALL=(ALL) ALL
nsa ALL=!/sbin/shutdown # ligne précédente autorise tout, mais j'interdis le shutdown
Paramètres des newusers:
# cat /etc/default/useradd
Locker et rêgler le lockage des profils:
# faillog [options] :-)
Paramêtres du [ctrl]-[Alt]-[Del]
# grep ctrlaltdel /etc/inittab
ACL:
# getfacl /etc/hosts (Voir les droits ACL d'un élément)
# setfacl -m u:user:rx /etc/hosts (Ajoute des droits ACL sur hosts)
# setfacl -m m::r /etc/hosts (Modifie le mask pour mettre le
fichier en lecture pour tous. Le mask est une synthèse de droits
appliqués pour tous)
# setfacl -d -m u:user:rw . (Créé les droits par defaults dans le répertoire courant - PRINCIPE DE L'HERITAGE)
# setfacl -x u:user fichier (Supprime l'ACL pour un user et fichier)
# setfacl -b element (Supprime tout l'ACL et redevient POSIX)
Voir adresse IP:
# ip address show (Mieux qu'ifconfig)
Ip-ip-ip... Houra!
# ifdown eth0
# ifup eth0
# ip route show
# ip route add 192.168.1.0/24 via 10.0.0.100
# ip route add default via 10.0.0.254
# ip route delete 192.168.1.0/24 dev eth0
# ip address add 172.30.112.25/24 brd + dev eth0
# ip link set eth0 up
# ip route add default via 172.30.112.1
Traitement des Jobs:
# jobs (Liste des applications ouvertes)
[4]
Running
xeyes &
[5]- Running xeyes &
[6]+ Running xeyes &
# fg 5 (prends la main sur job 5)
- Ctrl Z -
# jobs
[4]
Running
xeyes &
[5]+ Stopped xeyes
[6]- Running xeyes &
Process:
# ps -ef (PID=Process ID et PPID=Process ID du Parent)
# pstree (très joli)
# top (par CPU, interactif)
# watch pstree
# nice -n +10 xeyes& (Priorité de 10 sur xeyes) Les priorites vont de -20 (le plus rapide) à +19 (le plus lent)
# renice -5 5954 (value PID) (change les priorités du PID)
# kill -15 PID (Gentil)
# kill -9 PID (Méchant)
# kill -SIGUP PID (Relis tes fichiers de config et reload sans t'arrêter)
# killall xeyes (peut mettre le nom du process)
Retrouver les messages au boot:
# dmesg
Info Système:
# cd /proc => cat fichier (exemple cat meminfo)
# hwinfo ¦ less (Montre l'ensemble hardware)
# lspci (-vv) (Montre tout les périfériques pci (normaux))
# lsscsi (Montre les SCSI, SATA ou clé USB)
Affiche les ports ouverts et leur process associés:
# netstat -pantuv
Syslog:
# vi /etc/syslog-ng/syslog-ng.conf.in
# SuSEconfig --module syslog-ng (Valider la modif)
Qui est logué?:
# w
Donne le dernier login de chaque user:
# lastlog ( <!> Attaque si un compte system donne un log )
Rotation des logs:
# logrotate /etc/logrotate.conf (Lance la rotation de log des logs spécifiés dans les fichiers du répertoire /etc/logrotate.d)
Exemple:
# cat /etc/logrotate.d/local4
/var/log/fichierlog1 /var/log/fichierlog2 /var/log/fichierlog3
{
compress
dateext
maxage 365 => Nombre max de jours
rotate 5 => Nombre de rotations
size +4096k => Taille max en k
postrotate => Début du script
date >>/var/log/local4.info
endscript => Fin du script
}
# cat /var/lib/logrotate.status
Mieux que clear, rend un terminal propre:
# reset
GRUB:
# grub
> root=(hd0,1)
> setup (hd0)
> quit
(Réparer le MBR. Préalablement, prendre le DVD -> Install -> [Other] -> "Boot installed system")
Runlevel:
init 0 => Arrêt
init 1 => Que root. Peinard pour dépanner
init 3 => Normal mais sans graphique
init 5 => Normal avec graphique
init 6 => Reboot
# runlevel (Affiche le runlevel dans lequel je suis)
dans /etc/inittab...
# The default runlevel is defined here
id:5:initdefault:
(donc prend le init 5 par défaut)
# chkconfig ntp (ntp démarre-t-il dans le runlevel actuel?)
# chkconfig -l ntp (ntp démarre-t-il dans quels runlevels?)
# chkconfig ntp 35 (MET ntp dans le runlevel 3 et 5)
# chkconfig -l | grep 5:on (Affiche tous les services enclenchés dans le runlevel 5)
Dans GRUB (Menu au début) mettre bêtement un chiffre dans la zone texte pour choisir son runlevel
Packages RPM:
# rpm -ivh /opt/software/visualbasic.rpm (Installe un package à la con)
# rpm -e /opt/software/visualbasic.rpm (Desinstalle un package à la con)
# rpm -Uvh --force /opt/software/visualbasic.rpm (Upgrade de force (optionnel) un package à la con)
# rpm -qpi http://www.nicolassalamin.com/softwarealacon/ms_vi.rpm (Affiche les infos sur ce package)
# rpm -qpl /opt/softwarealacon/ms_vi.rpm (Affiche les fichiers à l'interieur de ce package)
# rpm -qa | grep ms_vi (Liste tous les packages installés et grep celui voulu)
# rpm -qf fichier.truc (Donne le package à qui appartient ce fichier)
Compression avec TAR:
# tar -zcvf fichier.tar.gz repertoire (Crée un tar compressé par l'option z)
# tar -zxvf fichier-tar-gz (Décompresse)
# tar -ztvf fichier-tar-gz (Regarde le contenu)
Copie d'un CD-Rom ou DVD en local:
# dd if=/dev/hdc of=/tmp/cd_rom.iso
# mount -o loop /tmp/course_cd.iso /mnt/ (L'expression loop permet de faire croire au système que le fichier iso est un lecteur)
SSH:
# vi /etc/ssh/sshd_config (config du SERVEUR SSH)
# vi /etc/ssh/ssh_config (config du client SSH)
# ssh -X machine (Session SSH toute conne, mais avec X activé, le graphisme fonctionne. Permet d'enclencher p.ex. yast2 au lieu de yast)
Clé SSH:
Générer la clef:
# ssh-keygen -t rsa -C "Commentaire" -f ./nom_du_fichier_clef
ou
# ssh -keygen -t dsa (passphrase=password à chaque fois. Si rien alors ne demande rien)
ou
# ssh-keygen -b 1024 -G rsa -f /tmp/key-file
(# l /root/.ssh) la clé dsa est un poil plus forte que la rsa, mais c'est pratiquement pareil
Copier la clé publique sur l'autre serveur.
# scp id_dsa.pub user@192.168.1.24:/home/user/nom_du_fichier_clef.pub
# ssh serveur_cible
> cat nom_du_fichier_clef.pub >> .ssh/authorized_keys
> exit
(si .ssh/authorized_keys n'existe pas: chmod 700 .ssh et chmod 600 authorized_keys)
Copie finale du fichier sans restrictions (spécifier le nom de la clé privée, celle sans le ".pub"):
# scp -i /root/.ssh/nom_du_fichier_clef nomuser@xxx.xxx.xxx.xxx:/chemin_source/fichiersource.txt /chemin_cible/fichiercible.csv
Agent SSH:
# ssh-agent bash
# ssh-add .ssh/nomdemaclé (Ajout de la clé privée dans le wrapper)
Copie par SCP:
# scp user@192.168.1.23:/etc/hosts /tmp/
VNC:
Autoriser vnc avec Yast sur la machine cible
http://adressedelamachine:5801
CUPS:
Gestion des imprimantes. Tout est dans /etc/cups/cupsd.conf
Existe un module YAST
# rccups restart
# Lpadmin -p queue -u allow :user1,user2
# Lpadmin -p queue -u allow :user1,user2 (Restrictions pour les imprimantes.)
Restriction pour le Web:
<Location /admin>
AuthType BasicDigest
AuthClass Group
AuthGroupName sys
order Deny,Allow
Deny from All
Allow from 127.0.0.1
</Location>
# Lppasswd -a root -g sys (Pour donner les mots de passes. Stockés dans /etc/cups/cupsd.comf - Pas forcément les vrais users Linux)
Xen:
Installation:
Besoin de - xen (superviseur)
- xen-tools (outils)
- kernel-xen (kernel modifié)
- xen-doc (facultatif)
il ajoute un menu dans GRUB (/boot/grub/menu.lst)
Puis désactiver le firewall:
# insserv -r SuSEfirewall2_setup
# insserv -r SuSEfirewall2_init
Rebooter et choisir dans GRUB le menu (en dernier souvent) généré par Xen
Création d'une machine se fait dans Yast2:
Démarrer:
# xm create -c -f /etc/xen/vm/vm1
Utiliser:
# xm list (voir l'ID)
# xm console 3 (3 p.ex.)
Désactiver:
# xm destroy 3 (3 p.ex.)
Apache:
Installation:
Besoin de - apache2 (basic)
- apache2-prefork (add pack)
puis...
# insserv apache2 (démarre au boot de la machine)
# rcapache2 start (start Apache)
Configuration:
/etc/apache2/httpd.conf
/etc/apache2/vhosts.d/ (Pour host virtuel)
Site:
/srv/www/htdocs (Contenu html)
Directives (Standard):
<Directory "/srv/www/htdocs">
Option None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Directives (limitation IP):
<Directory "/srv/www/htdocs">
Order
deny,allow
(d'abord j'exclue et en suite j'autorise)
Deny from
all
(J'exclue tout le monde...)
Allow from 10.0.0.0/24 (...sauf eux.)
</Directory>
Limitation d'accès:
# htpasswd2 -c /etc/apache2/htpasswd toto (Création du user toto)
# htpasswd2 /etc/apache2/htpasswd toto2 (Création du user toto2 si déjà un user)
# htpasswd2 -D /etc/apache2/htpasswd toto (Suppression du user toto)
Dans le httpd.conf...
<Directory "/srv/www/monsite">
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/htpasswd
Require user toto
</Directory>
Authentification:
créer les users avec htpasswd, voir plus haut
<Directory "/srv/www/monsite">
AuthType Basic
AuthName "Accounting Intranet"
AuthUserFile /etc/apache2/htpasswd
Require user toto1
Require user toto2
Require user toto3
</Directory>
check...
# apache2ctl configtest
et redémarrer:
# rcapache2 reload
SSL:
https --> Port 443
Config:
/etc/apache2/ssl-global.conf (dans SLES, sinon tout est dans httpd.conf)
/etc/apache2/vhosts.d/vhost-ssl.template --> Exemple de config, possibilité de copier à la place du ssl-global.conf
création:
# cat /dev/random > /tmp/random
# openssl genrsa -des3 -out /tmp/accounting.key -rand /tmp/random 1024
# openssl req -new -x509 -key /tmp/accounting.key -out /tmp/accounting.crt
# cp /tmp/accounting.key /etc/apache2/ssl.key/
# cp /tmp/accounting.crt /etc/apache2/ssl.crt/
# rm /tmp/accounting*
# chmod 400 /etc/apache2/ssl.key/accounting.key
# chmod 400 /etc/apache2/ssl.crt/accounting.crt
# vi /etc/apache2/ssl-global.conf
<VirtualHost accounting.da.com:443> (changer 80 par 443)
ServerName accounting.da.com:443 (ajouter :443)
Ajouter...
<VirtualHost accounting.da.com:443>
ServerAdmin webmaster@dummy-host.example.com
ServerName accounting.da.com:443
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/accounting.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/accounting.key
# vi /etc/sysconfig/apache2
APACHE_SERVER_FLAGS="SSL"
APACHE_START_TIMEOUT="10"
# apache2ctl configtest
# rcapache2 restart
# insserv -r apache2
PHP:
Installer Package:
- apache2-mod_php5
- php5
(redémarrer apache: rcapache2 restart)
créer un PHP dans /srv/www/htdocs/php_exemple.php
<?PHP
phpinfo();
?>
accessible: http://localhost/php_exemple.php
Tomcat:
Installer Tomcat_
- tomcat5-admin-webapps
- tomcat5
Copier template Tomcat:
/usr/share/tomcat5/conf # cp server-minimal.xml server.xml
Copier un WAR (Web ARchive, java inside) dans /usr/share/tomcat5/webapps
et restarter Tomcat:
# rctomcat5 restart
Manager Tomcat:
# vi /usr/share/tomcat5/conf/tomcat-users.xml
Ajouter:
<role rolename="manager"/>
<role rolename="admin"/>
<user username="polux password="novell" roles="manager,admin"/>
# rctomcat5 restart
RINETD (Redirecteur de port)
installer le package "rinetd"
# vi /etc/rinetd.conf
192.168.1.23 80 192.168.1.23 8080
allow 192.168.1.*
logfile /var/log/rintetd.log
logcommon
# rcapache2 stop
# rcrinetd start
SAMBA:
/etc/samba/smb.conf (Tout est là-dedans)
exemple:
(Share pour user Geeko)
# cd /etc/samba/
# cp smb.conf smb.sauve_en_cas_de_gros_pépin
# vi smb.conf
[global]
workgroup=Accounting
netbios name=Fileserver_da3
security=user
[geeko-dir]
comment=Geeko Directory
path=/srv/samba/geeko
valid users=geeko
read only=no
ou
[partage-dir]
comment = marketing Directory
path=/tmp/marketing
valid users=PSmith
read only=no
(Créer /tmp/marketing,
créer user linux PSmith, voir droits répertoire et tester
avec "smbclient -U PSmith //localhost/marketing-dir")
# cat smb.conf
# mkdir /srv/samba
# mkdir /srv/samba/geeko
# touch /srv/samba/geeko/my_file
# chown geeko /srv/samba/geeko
# chown geeko /srv/samba/geeko/my_file
# smbpasswd -a geeko
# testparm
# rcsmb start
# rcnmb start
(Access the Share pour User Geeko)
# smbclient -U geeko //localhost/geeko-dir
>help
>ls
>get my_file
> [Ctrl]-D
(Monter un Share)
# mount -t cifs -o username=geeko,password=novell //localhost/geeko-dir /mnt
# ls /mnt
# umount /mnt
XINETD:
Super-deamon, qui peut chapeauter tous les autres deamons
(ftp, cups, swat, finger, ssh, ...) et qui permet un gestion d'accès
unique pour tout un serveur.
Il existe un module YAST pour Xinetd (dans Network Services)
sinon les modules tenus par xinetd sont dans /etc/xinetd.d (changer la ligne "disable" en yes ou no)
# hwclock --show (montre l'heure hardware (BIOS))
# hwclock --hctosys (Pousse l'heure hardware to system)
# hwclock --systohc (Pousse l'heure system to hardware - Met à jour le Bios)
# cat /proc/driver/rtc (donne l'heure réel et, entre autre, le statut de la pile)
# netdate ptbtime1.ptb.de (Met ponctuellement le système à jour, pas très utilisé)
# rcntp start (Beaucoup mieux, met le deamon NTP)
# vi /etc/ntp.conf (Détermine la source)
# ntpdate ptbtime2.ptb.de (Comme netdate, mais utilise ntp, Hachement mieux. utiliser par la suite "hwclock --systohc")
# chkconfig -l ntp (Pour voir si au démarrage il est enclenché)
# ntpq -p (Affiche l'état des synchro)
Un Module Yast fait ça très bien...
Compiler:
Yast2 -> installer pattern "CC Compiler and Tools"
# cd /opt (Mettre le fichier tarball dans opt)
# tar -zxvf xpenguins-2.2.tar.gz
# cd xpenguins-2.2/
# cat INSTALL
# ./configure --help
# ./configure (passage obligé, créé le makefile)
Si message d'erreur: Yast, installer packages ...-devel (Cocher la case
"RPM "Provide" pour voir quels packages contient le mot de l'erreur et
chercher le devel à partir du mot clé)
# make (Compile. Un fichier Makefile est nécessaire)
# make check
# make install
# top
load average: 1=full. (display dans cette minute, 5 minutes avant et 15 minutes avant)
Load Average est beaucoup, mais alors beaucoup plus significatif que l'utilisation CPU
taper "h" pour l'aide de TOP
Mémoire:
# free (etat de la mémoire)
# vmstat (ou "vmstat 1" pour lire toute les secondes)
# swapoff -a (Désactive la swap)
# swapon -a (Active la swap)
# iostat (status des disques)
# iostat -x 1 /dev/hda (await:
temps d'attente pour qu'une requete soit acceptée et swctime:
Temps moyen pour qu'une requete soit exécutée du moment
qu'elle a été acceptée. Tout est en ms)
# ksysguard (panel de surveillance)
# vi /etc/inittab => ligne "id:5:initdefault" remplacer 5 par 3 pour enlever la couche graphique
# hdparm -t /dev/hda (Affiche les performances disques)
# mount -o remount,atime /dev/hda2 (supprime
l'acces time sur les fichiers. Augmente les perfs. possibilité
d'ajouter noatime dans /etc/fstab) (ou notail qui supprime la
suballocation, donc le fait que ReiserFS "bouche les trous sur le FS)
# mail root </tmp/coucou.txt (Envoye un message à root)
# /etc/init.d/boot.udev stop (Arrêt du détecteur HotPlug)
# udevmonitor --env (Monitoring)
# ll /etc/udev/rules.d (Liste
des rêgles de montage. A l'intérieur le nom d'un script
qui s'exécute lors de l'apparition du Hardware)
# vi /etc/modprobe.d/blacklist (Enlever le module du montage automatique, p.ex. une clé usb. Trouver d'abord le nom exact de ce module)
blacklist usb_storage
Aide:
# man commande
Aide standard
# whatis commande
Description et section d'aide
# man -k password
Recherche toute les commandes au sujet de
# info commande
Sorte de super-aide. Ne foncionne pas dans les versions antérieures
Utiliser [Tab] pour l'hypertexte et [L] pour revenir en arrière
Sur le web, chercher "howto" ou "sxs"
Divers:
acpi=Gestion d'énergie
Si bootloader est défectueux => DVD SuSE -> Install -> [Other] -> "Boot installed system"
Mask:
/24 = 255.255.255.0
/16 = 255.255.0.0
ext2: Pas journalisé (en cas de crash, moins sur) => Rapide
ReiserFS: Journalisé => Top mais un poil plus lent
POSIX:
drwxr-xr-x 2 root root
ACL:
Comme M$ - Gestion avancée des droits FS
drwxr-xr-x+ 2 root root --> le + en fin montre les droits ACL
résumés dans la place du groupe. Les 3 premiers et
derniers xxx ne changent pas
Exemple de shell:
#!/bin/bash
BOUCLE=2
while [ $BOUCLE -gt 1 ]
do
echo
echo Bienvenue dans le Super Programme de la Mort !!!
echo ===================================
echo 1 - Répertoire courant
echo 2 - date actuelle
echo 3 - gag du jour
echo 4 - Fin - ou touche q
read REPONSE
echo
echo
case $REPONSE in
1) pwd;;
2) date;;
3) echo Après 9 mois d'enquêtes, j'ai découvert en inox;;
4) BOUCLE=0;;
*)
esac
if [ $REPONSE = "q" -o $REPONSE = "Q" ]
then BOUCLE=0
fi
echo
echo
echo
done
Autre script:
AFDATE=`date +'%d'`.`date +'%m'`.20`date +'%y'`
AFHEURE=`date +'%H'`.`date +'%M'`.`date +'%S'`
echo Mise à jour le $AFDATE à $AFHEURE>publications.txt
cat /.../fichierlog.log|sort -r|grep -i "chaine"|grep -i $AFDATE>>publications.txt
ftp -vni nomserveur</root/cmdftp
Fichier cmdftp:
user nomuser password
put publications.txt
close
quit
Autre script:
#!/bin/bash
echo "Je renomme tous les fichiers en minuscules"
for FILE in `find . -type f -maxdepth 1`
do
NEWFILE=`echo $FILE | tr [A-Z] [a-z]`
if test $FILE != $NEWFILE
then
echo mv $FILE $NEWFILE
fi
done
Autre script:
#!/bin/bash
clear
echo
echo ----------------------
echo ¦ Salut les copains! ¦
echo ----------------------
echo
echo
echo
NOMBRE=`cat /var/spool/mail/geeko | grep '#' |wc -l`
echo -------------------------
echo ¦ Nombre de requetes: $NOMBRE ¦
echo ----------------------------------------------------------------------------------
cat /var/spool/mail/geeko | grep '#'
echo ----------------------------------------------------------------------------------
echo
echo
TODAY=`date +%m/%d/%Y`
echo "Nous sommes le $TODAY"
echo Vous avez entré $# arguments
if test $# -eq 1
then
echo votre seul argument est $1
else
echo Tous vos arguments sont $*
fi
echo
echo
echo ----------------------
echo ¦ Le Quiz de l\'hiver ¦
echo ¦ Entrez un chiffre: ¦
echo ----------------------
read CHIFFRE
echo
TABLEAU[1]='¦'
TABLEAU[2]='/'
TABLEAU[3]='-'
TABLEAU[4]='\'
TABLEAU[5]='¦'
TABLEAU[6]='/'
TABLEAU[7]='-'
TABLEAU[8]='\'
TABLEAU[9]='¦'
TABLEAU[10]='/'
TABLEAU[11]='-'
TABLEAU[12]='\'
TABLEAU[13]='¦'
TABLEAU[14]='/'
TABLEAU[15]='-'
TABLEAU[16]='\'
for ((i=1;i<=16;i++))
do
printf '\b\b'
printf ${TABLEAU[$i]}
sleep 0.1
done
printf '\b\b'
echo Reponse:
CHIFFRE2=$(($CHIFFRE+1))
echo $CHIFFRE2 - J ai gagné!!!
if test $CHIFFRE -eq 10
then
echo Ce chiffre est 10.
fi
echo
echo
ENTREE='Coucou'
until test $ENTREE = "quit"
do
printf 'da3:~ # '
read ENTREE
if test $ENTREE = "quit"
then
echo FIN DU SCRIPT!
else
echo Linux Error
fi
done
Fichiers
de démarrage:
/etc/.profile
/home/user/.profile
/home/user/.bashrc
/etc/init.d/boot
/etc/init.d/boot.local => Le script dans lequel on peut ajouter des choses!!!