Arès une formation administration Linux Niveau 1 très interessante, voila un petit aide mémoire des commandes que j’ai trouvé utiles:
——— OPERATIONS COURANTES ———————–
Recherche les fichiers qui contiennent truc ?
find / -exec grep truc
find / -iname « *truc* »
which cherche une commande
find cherche un fichier vraiment
locate cherche un fichier en mode indexé
Comment lister les processus ?
top
puis bxy pour trier une colonne
puis < ou > pour decaler de colonnes
Comment afficher les derniers fichiers (logs) modifiés ?
ls -ltr permet de trier par ordre de fichier modifié
Avoir le path dans le prompt
echo $PS1
PS1='[\u@\h \w]\n\$’
Comment convertir la documentation man en pdf ?
man -t rsync >rsync.ps
ps2pdf rsync.ps
evince rsync.pdf
Changer les couleurs par defaut des fichiers du ls
Taper env et voir etc/DIR_COLORS
Lorsqu’on lance une commande du répertoire qu’elle s’éxecute sans taper ./
PATH=$PATH:. (à modifer dans etc/profile pour le démarrage)
Placer un script au démarrage
Le placer dans etc/rc.local (qui correspond à rc)
Comment relancer un service (ex:apache) ?
services apache2 reload (permet de recharger la conf sans faire un restart)
Comment configurer les répertoires des sites
www-data doit etre le propriétaire du groupe de fichiers, et les fichiers doivent avoir la permission 644 si on peut les modifier, et 755 pour les autres.
Eviter de sortir d’un shell en repetant une ligne ex control D
set -o ignoreeof
Permet deviter d’écraser un fichier existant
set -o noclobber
Permet de lister toutes les options du terminal
set -o
Quel fichier stocke toutes les options au demarrage du terminal ?
~.bashrc
Quel fichier de config pour le boot (GRUB) ?
GRUB ~v1 config
/boot/grub/menu.lst
GRUB v2
/etc/default/grub
Quelques commandes VI
Copier une ligne: yy
copier 4 lignes: 4yy
Coller: p
Annuler: u
Quel editeur pour remplacer vi ?
nano ou gedit
Comment changer l’éditeur vi par defaut (v pour passer en éditeur)
export EDITOR=gedit
unset EDITOR
Comment savoir ce que fait une commande (ex: ll) ?
type ll
Comment recharger le .bashrc
. .basrc
Comment connaitre l’heure du dernier reboot ?
uptime
Comment connaitre la version de la distribution ?
lsb_release -a
Indique qu’il sagit d’une operation arithmetique
$((2+2))
Xming permet d’éditer des fichiers LINUX sous Windows
meld est un équivalent de winmerge
Les types de fichiers sont indiqués dans la 1er lettre apers un ls -l
– fichier avec contenu
d repertoire
l lien
s socket de type unix
p pipe
b peripherique bufferisé (disque)
c peripherique direct (terminal)
Il existe 6 modes de fonctionnement (runlevel), voici la liste:
0 Arret
1 Mode maintenance
2 Mode multi user (sans nfs network file system)
3 Mode complet
4 Libre
5 3 + Interface graphique
6 Reboot
Activer/Desactiver une service au demarrage
chkconfig httod on/off
update-rc.d apache2 enable/disable
Lister les services au demarrage
LANG=en chkconfig –list
Kill le nom du service (tous)
killall nomservice
Comment créer un alias
alias cd..= »cd .. »
——— RECUPERATION DU MOT DE PASSE ROOT ———————–
Comment récuperer un pass root
Redémarrer, éditer le grub, rajouter dans la ligne kernel 1
cela va passer en init 1
passwd permet de changer le password
pour remettre l’ancien, il faut aller le copier dans /etc/passwd
SystemRescueCD permet aussi de reinitialiser le password root avec un live CD
(il faut juste penser à mettre 16 à la question du clavier)
lsblk liste tous les péripheriques de stockage
mount /dev/sda1/mnt
chroot /mnt, puis passwd
ou si ca deconne SHELL=/bin/bash chroot /mnt, puis passwd
vi /mnt/etc/shadow permet de lister les passwords
——— GESTION DES UTILISATEURS ———————–
Lister les valeurs par defaut lors d’un ajout d’utilisateur
useradd -D
se refere au fichier /etc/default/useradd
Liste un certain nb de parametres pour la creation d’user
/etc/login.defs
CREATE_HOME yes permet de creer le repertoire de l’utilisateur automatiquement après ajout
/etc/group indique les groupes de chaque user
Config de sudo – permet de definir des droits a certains parametres a certains users
(, pour séparer les services)
/etc/sudoers (à ouvrir avec visudo)
Comment lire les droits ?
Utilisateur Group Other
7 7 7
RWX
421
chmod go=wx trucmuche accorde les droits sur group et other
+wx ajoute les droits
-wx les soustraits
Le groupe est le groupe du fichier. Lorsqu’on créer le fichier, il va chercher le groupe principale de l’utilisateur (commande id).
Un groupe ne peut pas contenir un autre groupe.
On verifie donc dans l’ordre:
Est ce le proprio ?
Est ce un membre du groupe ?
Est ce quelqu’un d’autres ?
Règle de base sur Un rep Apache :
Indique que le propriétaire est Apache
chown -R www-data: /var/www
Interdit les droits lecture aux autres qu’apache
chmod -R o= /var/wwww
Comment savoir quels dépendances sont utilisés ?
ldd fichier
si on veut installer ses propres binaires, on les mets ou ?
/user/local/bin
——— GESTION DES APPLICATIONS ———————–
dpkg -L nompackage pour avoir les infos des scripts contenus dedans.
Voici les équivalents RedHat / Debian:
yum install apt-get install
yum list apt-cache search
rpm -qi package dpkg -l package
Pour connaitre à quel package appartient un fichier
rpm -qf fichier dpkg -S
Les depots sont dans
/etc/yum.repos.d
/etc/apt/sources.list
refresh apt-get update
arch pour connaitre son architecture
——— GESTION DES DISQUES ———————–
Liste les disques
lsblk
/dev/sdXXX
/dev/md (raid logiciel)
/dev/sr0 (cdrom)
Partitionnement
fdisk -c -u /dev/sdb (ou autre disque)
Creation systeme de fichier
mkfs -t ext4 /dev/sdb1
Monter le systeme
mount /dev/sdb1 /mnt
Pour eviter de faire des mounts à chaque démarrage, on le fait dans le fichier /etc/fstab
/dev/sdb1 /usr/local/datas auto defaults 0 0
mais auparavant, il faut tester avec mount -a
Voir la place disponible
df -h
Connaitre la taille d’un répertoire
du -sh
Affichage des infos du Logical Volume (pour mutualiser des partitions)
sudo apt-get install lvm
pvs (liste les volumes physiques)
pvdisplay
lvs
Redimensionner un LVM à 2 Go
lvextend -L 2G datavg/sambalv
Dans l’ordre, on retrouve:
– les disques physiques
– les partitions (non necessaires) mais on fait des volume physiques (mieux)
– les groupes de volume qui contiennent le tout
– les logical volume qui indiques qu’on prend telle partie du groupe ou telle autre
Création dun volume physique
pvcreate /dev/sdc
Création d’un groupe de volume
vgcreate datavg /dev/sdc
Création dun volume logique (équivalent d’une partition qui peut se redimensionner)
lvcreate -n yovol -L 15G datavg
Redimensionner le volume logique
lvextend -L 2G datavg/sambalv
Redimensionner le filesystem dessus
resize2fs /dev/datavg/sambalv
ou mkfs -t ext4 /dev/DATAVOLUMEGROUP/DATALOGICALVOLUME
Extension du volume logique vers le groupe de volume datavgh
vgextend datavg /dev/sdc
Creer un raid logiciel Raid 1 de 2 disques (parametre n)
mdadm –create /dev/md0 –level=1 -n 2 /dev/sda /dev/sdb
Affiche les RAIDS dessus
cat /proc/mdstat
Lors de la creation de la partition fdisk dessus, ne pas oublier de rajouter le tag fd qui permet
de reconstruire le raid au redemarrage automatiquement
————————————————————————————-
Liste des répertoires directement sous la racine (ls -1 /)
bin binaires standard et pouvant être nécessaires lors de l’initialisation
boot* noyau et fichiers de grub => démarrage
dev fichiers d’interface avec le matériel (contenu dynamique)
etc fichiers de configuration
home* répertoires personnels (par défaut) des utilisateurs
lib librairies système
lib64 librairies système 64 bits
lost+found spécifique ext2/3/4
media+ points de montage des périphériques amovibles
mnt point de montage temporaire
opt* arborescence optionnelle
proc** système de fichiers virtuel
root maison de l’admin
sbin binaires système pouvant être nécessaires lors de l’initialisation
selinux**+ système de fichiers virtuel dédié SELinux
srv+ données des différents services serveurs
sys**+ système de fichiers virtuel dédié au matériel
tmp* répertoire pour fichiers de travail (temporaires)
usr* arborescence utilisateurs
var* répertoire au contenu évolutif (journaux,
spool d’impression,
file de messagerie, …)
+ : Spécifique Linux
FHS : Filesystem Hierarchy Standard
* : Peut être un point de montage
** : Système de fichiers virtuels
——— GESTION DES LOGS———————–
Emplacement du fichier de configuration:
/etc/rsyslog.conf
lorsqu’il y a un tiret genre -/var/toto.log ca désactive la synchronisation
lorsqu’il y a un pipe genre |/var/toto.log ca indique que ca part dans un tube (fichier temps reel)
on peut à la place du fichier mettre une ip, on fait @@ip:port, ca envoie les logs ailleurs (ca passe par le port 514)
Si le pirate supprime les logs, on garde une trace.
Dans /etc/services il y a la liste des ports par applications
Pour écouter sur le rsyslog distant, on active les 2 lignes Provides TTCP Syslog reception
si il y avait un seul @ dans l’envoi, on serait en UDP
rsyslog-mysql pour envoyer les logs dans une base de données mysql.
Auparavant, il faut ajouter le port dans le firewall:
iptables -I INPUT -p udp –dport 514 -j ACCEPT
Pour envoyer le syslog a une base
$ModLoad ommysql
*.* :ommysql:localhost:Syslog,syslog,azerty (less 2 derniers étant login et pass sur mysql)
ARCHIVAGE
tar cvf (creation)
tar tvf (visualisation)
tar xvf (extraction)
Faire un backup sur une machine distante
tar cvf yoyo.tar /etc
gzip yoyo.tar
scp yoyo.tar root@192.168.51.33:/var/tmp
le tiret est la sortie standard
Envoie une sauvegarde local sur un serveur distant
tar zcvf – /etc/* | ssh 192.168.51.33 « cat > /var/tmp/stage/yoyo.tar.gz »
Restaurer la sauvegarde distante en local
cd /
ssh root@192.168.51.33 cat /var/tmp/stage/yoyo.tar.gz |tar xzf –
Sauvegarder un site distant en local
ssh root@192.168.51.33 « tar zcvf – /etc/* » > tmp/yoyo.2.tar.gz
Restaurer une sauvegarde local sur un site distant
cat tmp/yoyo.2.tar.gz |ssh root@192.168.51.33 « tar zxf – -C/ »
le -c/ lui indique de se mettre a la racine
Pensez à faire un exclude dans le tar en excluant proc tmp sys selinux
———- GESTION DES SAUVEGARDES ————————–
Sauvegarde de plusieurs répertoires
#!/bin/bash DIR = "/etc /home /var" for i in $DIR do #remplacer les / dans les noms des reps par des - si le / est précédé par un caractere j=$(echo $i|sed "s:\(..*\)/:\1-:") tar czv /usr/archive/$j-$(date "+%Y%m%d").tar.gz $i done ou tar czv /usr/archive-$(date "+%Y%m%d) $DIR
Cmoment copier un fichier vers un shell distant ?
scp root@ip:/var/truc .
SYNCHRONISER 2 REPS PORT 22 (ssh)
rsync -av –delete /etc /tmp/stage
et pas rsync -av /etc/ /tmp/stage (car ici on prend juste le contenu de etc et pas aussi le rep parent)
Liste tous les fichiers qui ont la permission 4000 (4 pour les flags bizarres, sticky bit et execution en mode root)
tr remplace : par espace
find $(echo $PATH|tr « : » » « ) -perm -4000 2>/dev/null
ssh -X root@ip pour lancer une session distante
Rechercher des lignes qui ne se terminent pas par / (-le -v permet de fonctionner a l’envers)
df |grep -v « /$ »
Avoir le repertoire d’un autre PC
mount //192.168.1.1/partage /mnt -o username=administrateur
dansle fstab, on ajoute la ligne
//192.168.1.1/partage /mnt cifs username=administrateur,password=password 0 0
Monter un repertoire pour faire un chroot apres
mount -o bind /bin /mnt
———- GESTION DES TACHES PLANIFIEES ————————–
Crontab -e permet de valider la ligne CRON avant de l’ajouter dans le fichier
Par défaut , cron envoie le resultat de la commande par mail
vi /etc/aliases
dedans, on rajoute bruno: toto@toto.com pour indiquer l’adresse de mail de bruno (recepteur du cron)
il y a aussi anacrontab qui gere les cron systemes.
celui ci est moins precis, mais il est sur de passer dans l’intervale indiqué
etc/cron.daily/script.sh contient tous les scripts qui seront lancés dans la journée
Exemple d’un cron toutes les 2 minutes entre 16h15 et 16h45 du 4 juillet 2014
15-45/2
17,19,21,23,25,27,29,31,33,35,37,39,41,43,45 16 4 7 * [ `date ‘+\%Y’` -eq 2014 ] && date>/tmp/date.cron