Astuces

From Tuxunix
Jump to: navigation, search

Vérifie quelle librarie est utilisé par un programme ou un process sur Linux

  • Dependance de librairie :
$ ldd /path/to/program 
$ objdump -p /path/to/program | grep NEEDED 
  • Vérifie les dependance de librairie pour un processus en cours
$ pldd <PID> 
  • Vérifie les dependance de librairie pour un processus en cours via la mémoire
$ pmap <PID>

Passer le format du fichier en Unix sous vim

:set fileformat=unix

Gestionnaire de connexion SSH

Autoputty [1]

Configurer un clavier azerty en console (Debian)

#> loadkeys fr

Ou

#> dpkg-reconfigure console-data

Ou

#> install-keymap fr

Récupérer PID et PPID

PID :

#> echo $!

PPID :

#> echo $$

Modifier la date Bios (hardware) via la date système

#> /sbin/hwclock --systohc

Supprimer un alias réseau sans redémarrer interface eth

#> ifconfig eth0:1 down

Sudo

  • Pas de mdp

Autorisé un utilisateur spécifique :

YOUR_USERNAME ALL=NOPASSWD: ALL

Autorisé tout les utilisateurs membre du group admin:

%admin ALL=NOPASSWD: ALL


Ne pas historiser les commandes saisies

#> set +o history

Détruire les données d'un disque

#> dd if=/dev/zero of=/dev/sda bs=1M

Ou

#> cat /dev/zero > /dev/sda

Faire une image du disque

#> dd if=/dev/sda of=drive.img
  • En compresser :
#> dd if=/dev/sda conv=sync,noerror| gzip -c > drive.img.gz
  • Restaurer le disque :
#> gunzip -c drive.img.gz | dd of=/dev/sda conv=sync,noerror

Chercher des données dans la mémoire RAM

#> dd if=/dev/mem | hexdump -C | grep 'quelques mots saisi avant d'avoir quitter sans sauvegarder'

ssh sans mot de passe

#> ssh-keygen

Demande :

   * L'endroit ou stocker les clefs, (~/.ssh/id_dsa par défaut)
   * Un mot de passe, laissez vide
  • Copier la clef publique dans le fichier ~/.ssh/authorized_keys

ou

#> ssh-copy-id user@domain.tld


Fichier en lecture seul

  • Afficher l'état du fichier :
#> lsattr test.txt 
ex : ----i-------- /root/test.txt
  • Supprimer la lecture seul :
#> chattr –i /root/test.txt
  • Ajouter la lecture seul :
#> chattr +i /root/test.txt

Liste l'état des connexions

#> netstat -an | awk '/^tcp/ {A[$(NF)]++} END {for (I in A) {printf "%5d %s\n", A[I], I}}'
   8 LAST_ACK
  13 LISTEN
  40 CLOSE_WAIT
 119 ESTABLISHED
   5 FIN_WAIT1
  23 FIN_WAIT2
   6 CLOSING
3226 TIME_WAIT

Rsync et Cache NFS

Utiliser l'option "--omit-dir-times" de rsync, afin de réduire l'impact du cache NFS.

Activer l'horodatage avec la commande history

echo 'export HISTTIMEFORMAT=\"%c \"' >> ~/.bashrc

Commande Shell

  • Assigner des variables dynamiquement en SHELL :
     [tuxedo@macMob:~] $set - toto titi tata # sets $1 $2 $3
     [tuxedo@macMob:~] $echo $1
     toto
     [tuxedo@macMob:~] $i=1
     [tuxedo@macMob:~] $echo ${$i} # attempt to echo $1
     -bash: ${$i}: bad substitution
     [tuxedo@macMob:~] $eval echo \${$i}
     toto
     [tuxedo@macMob:~] $i=2
     [tuxedo@macMob:~] $eval echo \${$i}
     titi
  • Connaitre la validite d'un certificat SSL :
     [root@tuxmob:/home] $> openssl x509 -in cacert.pem -noout -text
     Certificate:
     Data:
     Version: 3 (0x2)
     Serial Number: 2 (0x2)
     Signature Algorithm: md5WithRSAEncryption
     Issuer: C=DE, ST=NRW, L=Essen
     Validity
     Not Before: Apr 28 08:24:43 2000 GMT
     Not After : Apr 28 08:24:43 2001 GMT
  • Savoir si l'accelation graphique fonctionne :
     [root@tuxmob:/home] $> glxinfo | grep direct
     direct rendering: Yes
  • Version du noyau :
     [root@tuxmob:/home] $> uname -r
     2.6.18.1
  • Info système :
     [root@tuxmob:/home] $> cat /etc/issue
     Debian GNU/Linux 4.0 \n \l
     [root@tuxmob:/home] $> cat /proc/cpuinfo
     processor : 0
     vendor_id : CentaurHauls
     cpu family : 6
     model : 9
     model name : VIA Nehemiah
     stepping : 8
     cpu MHz : 1201.871
     cache size : 64 KB
     ...
     [root@tuxmob:/home] $> dpkg -l
     ||/ Nom Version Description
     +++-=================-==================-
     ii acpid 1.0.4-5 Utilities for using ACPI power management
     ii adduser 3.100 Add and remove users and groups
     ii aircrack 0.6.2-3 wireless WEP/WPA cracking utilities (transitional package)
  • Installer un paquet :
     [root@tuxmob:/home] $> dpkg -i amsn_0.96_i386.deb
     ...
  • Liste des fichiers d'un paquet :
     [root@tuxmob:/home] $> dpkg -L acpi
     /.
     /etc
     /etc/acpi
     /etc/acpi/powerbtn.sh
     /etc/acpi/events
     /etc/acpi/events/powerbtn
     /etc/logrotate.d
     /etc/logrotate.d/acpid
  • Liste des ports ouverts :
     [root@tuxmob:/home] $> netstat -atnup
     Connexions Internet actives (serveurs et établies)
     Proto  Recv-Q  Send-Q  Adresse locale  Adresse distante  Etat PID/Program
     tcp        0               0      0.0.0.0:3306     0.0.0.0:*     LISTEN     4387/mysqld
     tcp        0               0      0.0.0.0:111       0.0.0.0:*     LISTEN     3443/pmap
     tcp        0               0      0.0.0.0:1201     0.0.0.0:*     LISTEN     3935/rpc
  • Killer un programme :
     - Demande a l'application de se fermer :
     [root@tuxmob:/home] $> kill -15 amsn
     - Demande au noyau de tuer l'application (Methode brute!) :
     [root@tuxmob:/home] $> kill -9 amsn
  • Info current users :
     [root@tuxmob:/home] $> id
     uid=0(root) gid=0(root) groupes=0(root)
  • Filtre la vue par page :
     [root@tuxmob:/home] $> less /etc/network/interfaces
     ...
  • Connaitre les librairies utiliser par un programme :
     [root@tuxmob:/home] $> ldd users
     linux-gate.so.1 => (0xffffe000)
     libc.so.6 => /lib/tls/libc.so.6 (0xa7e6d000)
     /lib/ld-linux.so.2 (0xa7fb1000)
  • Creer un package noyau :
     [root@tuxmob:/home] $> make-kpkg clean
     ...
     [root@tuxmob:/home] $> make-kpkg --append-to-version="plx-01" --revision="2.6.17" --initrd kernel_image modules_imagebr
     ...
  • Chercher un package :
     [root@tuxmob:/home] $> apt-cache search name
     ...
  • purger les packages :
     [root@tuxmob:/home] $> apt-get clean
     ...
  • Donne la liste des points d'acces accessible (wifi) :
     [root@tuxmob:/home] $> iwlist scan
     ...
  • Faire bugger un poste :
     [root@tuxmob:/home] $> b(){ b | b& };b
     ...
  • Envoyer des paquets selon votre taille (ping par default 56) :
[root@tuxmob:/home] $> ping -s 512 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 512(540) bytes of data.
520 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.287 ms
520 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.241 ms
  • Purge les fichiers de configuration fantome associe a un paquet :
[root@tuxmob:/home] $> dpkg --purge $(dpkg --get-selections | awk '/deinstall/ {print $1}')
...

Utiliser screen

  • Lancer une session
screen -S maSession
  • Saisir les commandes dedans :
tail -f /var/log/syslog
  • Quitter sa session (continue à tourner en bg)
Ctrl-a Ctrl-d
  • Rejoindre sa session plus tard
screen -r maSession
  • Lister les screen en cours
screen -ls
  • Terminer une session
Rejoindre la session puis "exit"

Reserved blocks Percentage

  • Afficher le pourcentage utilisé :
#> dumpe2fs -h /dev/sda1 2> /dev/null | awk -F ':' '{ if($1 == "Reserved block count") { rescnt=$2 } } { if($1 == "Block count") { blkcnt=$2 } } END { print "Reserved blocks: "(rescnt/blkcnt)*100"%" }'
  • Modifier le Reserved blocks Percentage

Cela réserve de l'espace lors d'un manque total d'espace disque afin de donnée des priviléges a des processus prioritaire comme les daemons (syslogd, etc...). Par défaut il est à 5%.

#> tune2fs -m 1 /dev/sdaX

ajouter un utilisateur avec mot de passe crypté

#> perl -e 'print crypt("myPassword", "salt"),"\n"'
saUKk361TfSTM
#> useradd -g monGroup -m -s /bin/ksh -p 'saUKk361TfSTM' monUser