Temps de lecture approximatif : 12 minutes
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
| GESTION DES ACCES AU SYSTEME, DES GROUPES ET DES UTILISATEURS |
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
Passer « root »:
****************
1. Sous Ubuntu:
sudo -s ou sudo su
2. Sous Debian:
su
Gestion groupes:
********************
aloes:~# groupadd kvmuser
1. Ajout de l’utilisateur dans le group:
# gpasswd -a hyperic hyperic ou aussi # usermod -G hyperic hyperic
Gestion utilisateurs:
***********************
aloes:~# useradd -g kvmuser -m kvmuser
-g : GID (group IDentification)
-u : UID (User IDentification)
-m : Créer le repertoire à /home/[nom de l’utilisateur]
1. Ajout d’un utilisateur et création de son « home »:
#useradd -m -d /home/hyperic hyperic
2. Ajout/modification d’un mot de passe:
#passwd [nom de l'utilisateur]
3. Connaitre l’ID:
aloes:~# id kvmuser id=1000(kvmuser) gid=114(kvmuser) groupes=114(kvmuser) aloes:~#
4. Ajout d’un utilisateur dans un ou plusieur groupe:
usermod -G groupe1,groupe2 -a utilisateur
5. Obtenir la liste des groupes et utilisateurs:
#getent group ou #getent group nom_du_group
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
| GESTIONS DES FICHIERS ET REPERTOIRES |
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
Copier vers un serveur distant: Commande SCP
****************************************************
1. Exemple 1: copier, à partir de notre machine, un fichier vers un serveur distant.
root@monsrv:/opt# scp snmpd_custom.conf remote_serveur:/etc/snmp/snmpd.conf
– snmpd_custom.conf = fichier de départ
– remote_server = adresse du serveur de destination
– /etc/snmp/snmpd.conf = chemin du fichier de destination
2. Exemple 2: récuperer un fichier distant pour le mettre sur notre machine.
root@monsrv:/opt# scp remote_serveur:/etc/snmp/snmpd.conf ./snmpd_custom.conf
Supprimer des fichiers ou dossiers avec des espaces dans les noms
************************************************************************
emma@estaque:~/myspace/my_scrapbook$ ls scrapbook (Copie de MonNomFamille Moi en conflit 2011-12-09).rdf scrapbook (Copie de MonNomFamille Moi en conflit 2012-04-03).rdf scrapbook (Copie de MonNomFamille Moi en conflit 2012-01-03).rdf scrapbook (Copie de MonNomFamille Moi en conflit 2012-04-10).rdf backup folders (Copie de MonNomFamille Moi en conflit 2012-03-13).txt folders.txt cache.rdf folders (Copie de MonNomFamille Moi en conflit 2012-03-14).txt multibook.txt ... ... emma@estaque:~/myspace/my_scrapbook$ rm -r folders\ \(Copie\ de\ MonNomFamille\ Moi\ en\ conflit\ 201* emma@estaque [Mon-Entreprise]:~/myspace/my_scrapbook$ ls backup collection.html combine.html folders.txt note.html cache.rdf combine.css data multibook.txt ... ...
Connaître le type de fichier
*******************************
emma@estaque [Mon-Entreprise]:~$ file Desktop/log_cron.txt Desktop/log_cron.txt: ASCII text emma@estaque [Mon-Entreprise]:~$ file Desktop/facture_ovh.pdf Desktop/facture_ovh.pdf: PDF document, version 1.5 emma@estaque [Mon-Entreprise]:~$ file Desktop/CaptureLDAP_1.png Desktop/CaptureLDAP_1.png: PNG image data, 1440 x 900, 8-bit/color RGB, non-interlaced
Retrouver un fichier par son nom
*************************************
moi@monserveur:~$ locate openvpn
var/lib/update-rc.d/openvpn
...
Modifier le mode de création d’un répertoire
**************************************************
Il faut changer l’umask:
vim /etc/login.defs
Pour permettre l’écriture et l’exécution au groupe,
mettre « UMASK 002 »
Permettre au groupe d’ecrire dans un dossier
**************************************************
chmod -R g+s /mon_dossier
Taille de dossier:
*******************
-h = affichage « humain » en Ko,Go,Mo .
Exemple:
root@noyer:/# du -hs * 26G backup 3.8M bin 6.9M boot 7.5G data 116K dev ...
root@noyer:/# du -hs /etc/* 16K /etc/acpi 4,0K /etc/adduser.conf 4,0K /etc/adjtime 4,0K /etc/aliases 12K /etc/aliases.db 8,0K /etc/alternatives 408K /etc/apache2 ...
Compression en tar.gz:
**************************
alcazar:/data/vz/private# tar -cvf rahan.tar.gz ./222
Décompression d’un .tar.gz:
*******************************
srvhome:/media/DATAS/BACKUP_SRVHOME/ARCHIVES# tar -xvzf srvhome.20100117.master.tar.gz usr/local/sbin/ usr/local/sbin/automysqlbackup-2-5.sh srvhome:/media/DATAS/BACKUP_SRVHOME/ARCHIVES#
Compresser/décompresser un .zip
**************************************
1. Compression .zip
# zip -r nom_du_fichier.zip repertoire_ou_fichier
2. Decompression .zip
# unzip nom_du_dossier -d nom_destination
Afficher le contenu d’un fichier sans les lignes commentées:
*****************************************************************
grep -v '^[\t ]*; '<nom fichier> ou egrep -a -v '^[[:space:]]*;' <nom fichier> | egrep -a '[[:print:]]'
Commande: « RSYNC »
************************
– Synchroniser deux répertoires avec rsync:
1. Exemple de syntaxe:
De nous vers le client:
rsync -avzH --progress --stats * root@frene.dg.mon
_client_1.ch:/data/deploy_monclient_1
Depuis le Client vers nous:
rsync -avzH --progress --stats root@frene.dg.mon
_client_1.ch:/data/deploy_monclient_1/* .
2. En cas de problème avec l’utilisation de l’option –filter
[note importante]
ATTENTION, SUIVANT LA VERSION DE RSYNC UTILISEE, CERTAINES OPTIONS ONT EVOLUE !
VERIFIER LA SYNTHAXE EN TAPANT « man rsync ».
[/note]
Attention, l’adresse du répertoire à exclure doit être RELATIVE au répertoire de sauvegarde !
il faut donc écrire:
–filter « – .VirtualBox/ »
et non
–filter « – /home/dom/.VirtualBox/ »
ce qui donne :
rsync -rltgoDv --del --ignore-errors --force --filter "- .VirtualBox/" /home/moi/ /media/my_backup/
…qui fonctionne !
3. Autres exemples:
rsync -avzH --delete-during --filter "- media/disk/" --filter "- proc/" --filter "- sys/" --filter "- tmp/" --filter "- dev/" / /media/disk
ou encore
time rsync -avzH --numeric-ids --delete --filter "- computers/infos/" --filter "- logs/" svg-info-pldeploy/ root@genepi:/data/shares/svg-info-pldeploy
4. Utilisation dans un bash
... # Example for RSYNC_OPTIONS: RSYNC_OPTIONS="-avH --exclude=satigny/media/archives --itemize-changes --stats --numeric-ids --delete-during" # rsync $RSYNC_OPTIONS /backup/rsnapshot/snapshots/hourly.0/ /media/BACKUP_5a4ab233-4e/MY-ENTREPRISE_BACKUP ...
5. Se connecter à une machine distante et synchroniser un répertoire sur un autre local:
rsync -avzH --numeric-ids --delete --exclude='*.exe' --exclude='*.au3' --progress --stats root@192.168.3.168:/home/pldeploy/ pldeploy/
6. Synchroniser un répertoire local vers un hôte distant:
rsync -avz --exclude='*.spc' --exclude='.auth_var-WORK.ini' --exclude='.auth_var-DOM.ini' svg-info-pldeploy/ root@192.168.3.168:/data/home/pldeploy
– Backuper par exemple une vz d’un serveur nommé cirrus vers un autre serveur nommé fibratus.
root@cirrus:~# vzlist
VEID NPROC STATUS IP_ADDR HOSTNAME
245 34 running 192.168.16.245 flocus
251 122 running 192.168.16.251 nimbo
252 18 running 192.168.16.252 stratus
root@cirrus:~#
root@fibratus:~# vzlist CTID NPROC STATUS IP_ADDR HOSTNAME 253 257 running 192.168.16.253 mail.monentreprise.org root@fibratus:~# root@fibratus:~# time rsync -avzH --numeric-ids --delete -e "ssh -l root@cirrus" root@cirrus:/data/vz/priv ate/253/ /data/vz/private/253/
7. Exécuter rsync vers un port distant différent (exemple lors d’un forward du port ssh)
rsync -avzH --progress --stats --rsh='ssh -p2222' /data/pldeploy/pldeploy_aslo_04-07-2012/ root@localhost:/data/shares/svg-info-pldeploy/
Commande: « FIND »
**********************
1. Trouver un fichier en fonction de son nom
find . -name "databases*"
2. Trouver un éléments de type répertoire
find . -name "config" -type d
3. Lister le contenu de répertoires correspondant à un masque
find . -type d -name "config" -exec ls -l {} \;
4. Modifier les droits des fichiers de type répertoire
find . -type d -exec chmod g+x {} \;
Commande très utile pour donner les droits d’exécution seulement aux répertoires.
5. Recherche à l’aide d’opérateurs logiques
find /tmp ( ! -user webmaster )
Cette commande renverra tous les fichiers de /tmp n’appartenant pas à l’utilisateur webmaster
find / ( -type d -a -user webmaster )
Cette commande renverra tous les fichiers de type répertoire ET (option -a) qui appartiennent à webmaster
find / ( -name a.out -o -name ’*.o’ ) -atime +7 -exec rm {} \;
Cette commande supprimera tous les fichiers dont le nom correspond est « a.out » OU se terminant par « .o » ET dont
la date du dernier accès est antérieure à 7 jours.
find . -path './*softwares' -prune -o -name "*.bat" -type f -exec grep -Hri "OSVERSION" {} \;
Cette commande permet de rechercher l’occurence « OSVERSION » dans tous les fichiers de type « .bat » en excluant
le répertoire « softwares ». Seul le chemin d’accès aux fichiers correspondants sera affiché.
Inodes
********
1. Renommer en utilisant le « inum »:
Pour connaitre l’inode:
ls -ailtr
Pour renommer en fonction du « inum »:
find -inum <N°inum> -exec mv {} <nouveau nom> \;
Exemple
find -inum 6869985 -exec mv {} test_1 \;
2. Supprimer en utilisant le « inum »:
Parfois certains fichiers sont nommés avec des caractères qui posent des problèmes d’accès ( Ex: « ~$ Mon document.doc » ).
On affiche le inum du fichier:
#ls -li
115288 -rw-r--r-- 1 monuser monuser 2359 2010-03-
25 23:01 ~$ Mon document.doc
Ensuite on supprime en fonction du « inum » du fichier
find -inum 115288 -exec rm {} \;
3. Trouver un ( ou plusieur ) type de fichier:
find . -name "*WRL*tmp*" -exec ls -l {} \;
4. Renommer un fichier:
Ex: Touver tous les fichiers qui commencent par un « : » et les renommer en remplaçant les « : » en « __ ».
find . -iname ":*" | rename 's/:/_/g'
5. Supprimer plusieurs fichiers de même type:
find . -name "*.spc" -print0 | xargs -0 rm
6. Remplacer un caractère par un autre:
Exemple du fichier: ./projets2007/Cloe_espaceVEHICULE/graphique/:2eDS_Store
find . -iname ':*' | sed -e 's/:/__/g'
Resultat: ./projets2007/Cloe_espaceVEHICULE/graphique/__2eDS_Store
7. Trouver tous les fichiers qui appartiennent à l’utilisateur « nagios », qui sont des liens et les afficher:
root@cir:/etc# find . -user nagios -type l -exec ls -l {} \;
8. Trouver tous les fichiers qui appartiennent à l’utilisateur « nagios » , qui sont des liens et changer les droits en « root.root »:
root@cirrus:/etc# find . -user nagios -type l -exec chown -h root.root {} \;
9. Trouver un fichier dans une arborescence:
find * -name "commandes.txt"
10. Remplacer un mot dans un type de fichier
find . -name "*.php" -print0 | xargs -0 sed -i 's/georges@6ma.fr/michel@6ma.fr/g'
11. Trouver des fichiers qui ont été modifié il y a moin de 1 jour
find /backup/rsnapshot/snapshots/monclient_2/daily.0/outlook-backup/Outlook/ -mtime -1 -print0 | xargs -r -0 -l ls -altr
12. Trouver des fichiers se terminant par « _status.ini » et contenant le mot « computer_admin_status »
find ./computers/infos/ -name "*_status.ini" -type f -exec ls {} \; -exec grep computer_admin_status {} \;
Commande: « SED »
*********************
1.0 Substituer un mot par un/des autre(s) mot(s)
sed -i 's/georges@6ma.fr/michel@6ma.fr/g'
1.1 Substituer un mot commencant par un motif spécifique…
sed -i 's/^toto.*/'toto'\t'192.167.5.4'\t'127'/g' /tmp/test.txt
cat /usr/local/nagios/etc/nagios.cfg | sed -e 's/check_for_updates=0//g' >> /tmp/nagios.cfg
2. Dans Vim:
:'<, '>s/admin_op/computers\\maintenance/g
le « \ » après « computers » permet de ne pas interprêter le « \ » car nous souhaitons remplacer le mot « admin_op » par « computers\maintenance »
2.1 Enlever tous les commentaires dans un fichiers
cat $TRAFFIC_IDENTIFIED | sed -e '/^[ ]*#/d' -e '/^[ ]*;/d' -e '/^[ ]*+/d' -e '/^$/d'
2.2 Remplacement d’un caractère dans un type de fichier
Exemple: recherche d’une chaîne à traiter dans le fichier « telsearch »
toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\""
<h5><a href="/tresloin/rue-du-lac-54/mon-client-1" class="fn org">nom de mon client 1</a></h5>
<h5><a href="/tresloin/rue-du-lac-54/monclient_2" class="fn org">Juridique CLIENT2</a></h5>
<div id="telrbc35d75292b5630a" class="tel_item"><div class="telrecord vcard"><table class=\
"record"><tr><td rowspan="2" class="r_resleft"> <h5>
<a href="/tresloin/rue-du-lac-54/rassemblement-logement" class="fn org">Rassemblement logement</a></h5>
toto@monserveur:~$
Premier traitement: nettoyer pour enlever le superflux
toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\"" | sed s/"<[^>]*>"/""/g nom de mon client 1 Juridique CLIENT2 Rassemblement logement toto@monserveur:~$
Second traitement: convertir de iso-8859-1 vers utf-8
toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w \ "class=\"fn org\"" | sed s/"<[^>]*>"/""/g | iconv -f iso-8859-1 -t utf-8 nom de mon client 1 Juridique CLIENT2 Rassemblement logement toto@monserveur:~$
Troisième traitement: conserver que les deux premières lignes
toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\"" | sed s/"<[^>]*>"/""/g | iconv -f iso-8859-1 -t utf-8 | head -n2
nom de mon client 1
Juridique CLIENT2
toto@monserveur:~$
Exemple d’utilisation de sed pour supprimer les accents:
toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\"" | sed s/"<[^>]*>"/""/g | iconv -f iso-8859-1 -t utf-8 | sed 'y/àâçéèêëîïôöùüÂÀÇÉÈÊËÎÏÔÖÙÜ/aaceeeeiioouuAACEEEEIIOOUU/' | head -n1
nom de mon client 1
toto@monserveur:~$
Remplacer entièrement une ligne:
ipsrc="188.138.100.46"; new_count="5000"; echo "$ipsrc $new_count"; cat black\ list_candidate.txt | sed -e 's/^'"$ipsrc"'.*/'"$ipsrc"' '"$new_count"'/g' > test.txt
cat filetest.txt | sed -e 's/^'"ipsrc=192.168.9.110"'.*/'"ipsrc=192.168.9.\ 110"'\t'"srcport=5900"'\t'"dstport=50417"'\t'"total_count=800"'\t\t'"first\ time=04-04-2012-13:49"'\t\t'"lastupdate=`date +%d-%m-%Y-%H:%M`"'\t'"[Case_9]"'/g'
Tronquer une addresse IP
moi@estaque [Mon-Entreprise]:~$ echo 192.168.30.2 | cut -d. -f1-3 | sed 's|\.||g' 19216830 moi@estaque [Mon-Entreprise]:~$ echo 192.168.30.2 | cut -d. -f1-2 | sed 's|\.||g' 192168 moi@estaque [Mon-Entreprise]:~$
Supprimer tous les caractères spéciaux
echo "bonjour !!! comment allez-vous???" | sed 's/\W/ /g'
Supprimer le retour chariot:
Il suffit simplement d’effacer le caractère « \r » (retour chariot) de fin de ligne.
Le caractère « \r » (retour chariot) est représenté symboliquement par « ^M », qui s’obtient par la séquence de touches suivante « CTRL-V » + « CTRL-M ».
sed 's/^M$//' fichier
Avec la version GNU-sed (gsed 3.02.80 et supérieur), on peut utiliser la notation ASCII :
sed 's/\x0D$//' fichier
On peut aussi utiliser la commande « tr » pour cela
cat mon_fichier.txt | tr -d '\r'
Supprimer plusieurs mots ou caractères
root@monserveur:$ grep -ri "version" /data/monfichier.txt | egrep -wi "Windows" | awk '{print $3,$4,$5}' XP [version 5.1.2600] root@monserveur:$ grep -ri "version" /data/monfichier.txt | egrep -wi "Windows" | awk '{print $3,$4,$5}' | sed 's/version\|\[\|\]\|XP\|\ //g' 5.1.2600 root@monserveur:$
Commande: « GREP »
***********************
1. Trouver un mot dans un fichier:
Exemple de syntaxe:
grep -ri "mot_exemple" * grep -ri "mot_exemple" . ;uniquement là ou on se trouve.
2. Ne pas afficher la ligne « grep »
clematite:~# ps aux | grep "file=/media/sata500/new-mobility/" | grep -v "grep"
root 16742 17.2 68.2 4406680 4167740 ? Sl Jan12 499:03 /usr/bin/kvm -vnc :1 -k fr-ch -smp 4 -usbdevice tablet -usb -drive file=/media/sata500/new-mobility/mob-diskC.qcow2,index=0,media=disk -drive file=/media/sata500/new-mobility/mob-diskE.qcow2,index=2,media=disk -drive file=/media/sata500/new-mobility/mob-diskF.qcow2,index=3,media=disk -boot c -m 4048 -net nic,macaddr=41:58:00:12:32:54,model=rtl8139 -net tap,ifname=tap0,script=no -vga std -daemonize -pidfile /var/run/kvm/run_kvm_mobility.pid
clematite:~#
3. Trouver le nombre d’occurence dans un fichier et l’afficher:
root@cirrus:/tmp# grep -c "<digestenglish@mycop.coop>" /tmp/envoi_digest3.txt
258
root@cirrus:/tmp#
4. Afficher uniquement les fichiers NE contenant PAS le mot recherche.
grep -riL "OpenERP" . | grep "installed-programs.txt"
./FOURMI08/FOURMI08_installed-programs.txt
./FOURMI16/FOURMI16_installed-programs.txt
./FOURMI02/FOURMI02_installed-programs.txt
./FOURMI38/FOURMI38_installed-programs.txt
./FOURMI37/FOURMI37_installed-programs.txt
ou
root@bourdon:/data/pldeploy# find ./logs/*/2 -name "*_pldeploy-infos.txt" -type f \ -exec grep -L runas_admin_tasks.bat {} \; ./logs/FOURMI15/2/FOURMI15_pldeploy-infos.txt ./logs/FOURMI26/2/FOURMI26_pldeploy-infos.txt ./logs/FOURMI33/2/FOURMI33_pldeploy-infos.txt ./logs/FOURMI42/2/FOURMI42_pldeploy-infos.txt root@bourdon:/data/pldeploy#
5. Afficher uniquement des nombres
dig <le nom fqdn machine> +short | grep -E "^[0-9]|[0-9]$"
6. Afficher le résultat sur plusieurs mots
grep -ri "svg-info-pldeploy" . | grep -iE "permitted | closed"
Commande « Zenity »
***********************
Envoi un message à l’utilisateur
grep -ri "test" $HOME | zenity --title "Backup" --progress --text="Sauvegarde en cours...merci de ne pas \ éteindre votre poste" --pulsate --no-cancel --auto-close
zenity --info --display=:0.0 --text "Joyeux anniversaire !"
Accéder à un lecteur réseau depuis un navigateur:
*******************************************************
La syntaxe est la suivante: file:///<lettre du lecteur>:/<mon dossier>
Ex:
file:///F:/COMPTA
Commande WGET
*********************
1. Télécharger un fichier sur un site protégé par htaccess
root@cerisier:/opt/install_nagios-ndo-centreon# wget http://download.mon-entreprise.com/centreon-2.3.8.tar.gz --2012-06-12 11:36:20-- http://download.mon-entreprise.com/centreon-2.3.8.tar.gz Resolving download.mon-entreprise.com...98.195.97.157 Connecting to download.mon-entreprise.com|98.195.97.157|:80... connected. HTTP request sent, awaiting response... 401 Authorization Required Authorization failed. root@cerisier:/opt/install_nagios-ndo-centreon# wget http://download.mon-entreprise.com/centreon-2.3.8.tar.gz --http-user=mon-entreprise --http-password=<mot de passe> --2012-06-12 11:36:05-- http://download.mon-entreprise.com/centreon-2.3.8.tar.gz Resolving download.mon-entreprise.com... 98.195.97.157 Connecting to download.mon-entreprise.com|98.195.97.157|:80... connected. HTTP request sent, awaiting response... 401 Authorization Required Reusing existing connection to download.mon-entreprise.com:80. HTTP request sent, awaiting response... 200 OK Length: 7538568 (7.2M) [application/x-gzip] Saving to: `centreon-2.3.8.tar.gz' 100%[======================================================>] 7,538,568 2.21M/s in 3.3s 2012-06-12 11:36:09 (2.21 MB/s) - `centreon-2.3.8.tar.gz' saved [7538568/7538568] root@cerisier:/opt/install_nagios-ndo-centreon# ls -altr total 7404 drwxr-xr-x 3 root root 4096 Jun 11 12:18 .. -rw-r--r-- 1 root root 7538568 Jun 11 13:58 centreon-2.3.8.tar.gz drwxr-x--- 2 root root 4096 Jun 12 11:36 . root@cerisier:/opt/install_nagios-ndo-centreon#
Encryption
*************
1. Commande « encfs »:
— Pour monter le dossier crypté:
encfs /data/.safe /home/monhome/pwd
Entrer ensuite le mot de passe !
— Pour démonter après consultation:
fusermount -u /home/monhome/pwd
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
La suite aux pages suivantes 😉
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++