Différences entre les versions de « SSH »

De Marmits Wiki
(Page créée avec « mod Example RSYNC aller et retour avec chown et chmod rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "s... »)
 
 
(114 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
mod
[http://tools.marmits.com/testcideo/dedie/chmod/info.php chmod]
Example RSYNC aller et retour avec chown et chmod


== Example RSYNC aller et retour avec chown et chmod ==
<pre>
rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "ssh -p654" /users/toto/ user@1.2.3.4:/home/toto/
rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "ssh -p654" /users/toto/ user@1.2.3.4:/home/toto/


rsync serveur -> local rsync -avz --delete --no-owner --no-group --no-perms --rsync-path="sudo rsync" -e "ssh -p654" user@1.2.3.4:/home/toto/ /users/toto/
rsync serveur -> local rsync -avz --delete --no-owner --no-group --no-perms --rsync-path="sudo rsync" -e "ssh -p654" user@1.2.3.4:/home/toto/ /users/toto/
Linux version noyau
</pre>
 
== Linux version noyau ==
<pre>
uname -sr
uname -sr
uname -a
uname -a
Ligne 13 : Ligne 18 :


lsb_release -ds
lsb_release -ds
</pre>


== Sendmail ==
<pre>
cd /var/spool/mqueue


Sendmail
sendmail -bp


cd /var/spool/mqueue
send mail
 
mail -s "message"  -F "adresse1@etc, adresse2@etc" -r "Un nom<une@email.com>" $EMAIL
</pre>


sendmail -bp
== Terminal Console ==
=== couleur du prompt ===
<pre>
export PS1="\[\e[\033[00;36m\]\u\[\e[m\]\[\e[\033[00;36m\]@\[\e[m\]\[\e[\033[00;36m\]\h\[\e[m\]:\[\e[\033[01;33m\]\w\[\e[m\]\[\e[\033[01;32m\]\`parse_git_branch\`\[\e[m\]\\$ "
</pre>


== Compter ==


compter le nombre de fichiers dans un répertoire
=== Compter le nombre de fichiers dans un répertoire ===
find /dossier/path/etc -maxdepth 1 -type f | wc -l
find /dossier/path/etc -maxdepth 1 -type f | wc -l


compter le nombre de fichiers dans un répertoire selon son extension
=== Compter le nombre de fichiers dans un répertoire selon son extension ===
find /dossier/path/etc -name '*.MOV' -type f -printf '.' | wc -c
find /dossier/path/etc -name '*.MOV' -type f -printf '.' | wc -c


trouver les chemins des fichiers recherchés
== Trouver ==
find /volume1/video/perso/2017 -name '*.MOV' -type f
=== Compter le nombre de fichiers en excluant un répertoire ===
find /rep/ -maxdepth <big>4</big> -type f ! -path '*/repexclu/*' | wc -l
 
=== Trouver les chemins des fichiers recherchés ===
find /volume1/video/perso/2017 -name '*.MOV' -type f
 
=== Recherche ===
find /home/rep/ \( -name '*.ai' \)
 
=== Recherche et supprime ===
#Effacer les fichiers .DS_Store et Thumbs.db d’un système Linux
find /home/ -name .DS_Store -exec rm -f {} \;
 
=== Rechercher dans un fichier (XXX est un mot ou une expression régulière) ===
<pre>
cat /var/log/syslog | grep XXX
cat /var/log/syslog | grep XXX | more
cat /var/log/syslog | grep XXX > resultat.txt
</pre>


send mail
=== Afficher les dernières lignes d’un fichier ===
tail /var/log/syslog


mail -s "message" -F "adresse1@etc, adresse2@etc" -r "Un nom<une@email.com>" $EMAIL
=== Afficher en live (en temps réel) un fichier (ctrl-c pour sortir) ===
  tail -f /var/log/syslog


=== Afficher le contenu d’un fichier (on affiche les logs principaux, faites ctrl-c pour stopper !) ===
<pre>
cat lefichier.txt
zcat /var/log/syslog.1.gz
</pre>


http://www.linuxpedia.fr/doku.php/commande/ssh
<pre>
#Chercher un fichier :
find -name "*.log"
find -name "*.log" | more
</pre>


sudo su - u root
<pre>
find / -name fichier.ini
grep -Rl "quelques chose" .
</pre>
=== list open files ===
fichiers ouverts ainsi que leurs programmes ou utilisateurs liés.
ex:sudo lsof -i :9000 () qui utilise le port :9000
* http://jlbicquelet.free.fr/aix/commandes/lsof.php


concatener des fichiers js ou css
== sudo ==
<code>sudo su -u root</code>


== Concaténer ==
<pre>
#concatener des fichiers js ou css
echo | cat fichier1.css fichier2.css fichierfull.css > site.css
echo | cat fichier1.css fichier2.css fichierfull.css > site.css
</pre>


== log ==
<pre>
#Recherche en live
tail -f /var/log/fichier.log


recherche:
#recherche simple
find /home/rep/ \( -name '*.ai' \)
grep -R "untruc" /var/log/*


#cherche les 20 dernieres lignes avec un mot dans un log
grep -r "unbound" /var/log/fichier.log | tail -n 20


http://juliend.github.io/linux-cheatsheet/
# exclusion (-v)
grep -r "untruc" /var/log/* | grep -v motàexclure


# -r recursive, -i insensible à la "casse", -l n'affiche pas tous les résultats, seulement le nom des fichiers
grep -r -i -l 'untruc' /var/log/
#zgrep pour les fichiers compressés compris
</pre>
== Alias ==
<pre>
ls -l Afficher les informations de manière détaillée.
ls -l Afficher les informations de manière détaillée.


Ligne 67 : Ligne 140 :
ls -lhS Afficher les informations des fichiers, avec des tailles lisibles le tout ordonné du plus grand au plus petit.
ls -lhS Afficher les informations des fichiers, avec des tailles lisibles le tout ordonné du plus grand au plus petit.


créer raccourci:
#Créer raccourci:
ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien'
ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien'
ex: ln -s /usr/local/php53/bin/php /usr/local/bin/php53
ex: ln -s /usr/local/php53/bin/php /usr/local/bin/php53
</pre>


copie entre 2 serveurs sans mot de passe:
== Copie ==
générer la clé :
=== copie entre 2 serveurs sans mot de passe ===
<pre>
#Copie entre 2 serveurs sans mot de passe:
#générer la clé :
ssh-keygen -t dsa
ssh-keygen -t dsa


Ensuite, pour copier la clé sur l'ordinateur distant :
#Ensuite, pour copier la clé sur l'ordinateur distant :
ssh root@server 'cat >> /root/.ssh/authorized_keys' < ~/.ssh/id_dsa.pub
ssh root@server 'cat >> /root/.ssh/authorized_keys' < ~/.ssh/id_dsa.pub


pour serveur dédié ovh
#pour serveur dédié ovh :
ssh user@ip 'cat >> /home/user/.ssh/authorized_keys2' < /home/userlocal/.ssh/id_dsa.pub
ssh user@ip 'cat >> /home/user/.ssh/authorized_keys2' < /home/userlocal/.ssh/id_dsa.pub
</pre>


 
== Compression ==
 
<pre>
 
#Compresser un dossier :
Compresser un dossier
tar -zcvf fichier.tar.gz /home/repertoire
tar -zcvf fichier.tar.gz /home/repertoire


 
#decompresser tar gz :
decompresser tar gz
tar zxvf fichier.tar.gz
tar zxvf fichier.tar.gz
</pre>


 
== Historique ==
Supprimer l'historique ssh
<pre>
#Supprimer l'historique ssh:
history -c
history -c
</pre>


Effacer les fichiers .DS_Store et Thumbs.db d’un système Linux
== Taille ==
find /home/ -name .DS_Store -exec rm -f {} \;
<pre>
#taille repertoire
du -sh repertoire


du -sh repertoire (taille repertoire)
#taille des partitions
 
taille des partitions:
df -h
df -h


etat de la mémoire
#etat de la mémoire
free -m
free -m
</pre>


Vider un fichier
== Reset ==
<pre>
#Vider un fichier
echo "" > auth.log
echo "" > auth.log
</pre>


 
== Transfert ==
Rechercher dans un fichier (XXX est un mot ou une expression régulière)
<pre>
cat /var/log/syslog | grep XXX
#transfert de fichiers:
cat /var/log/syslog | grep XXX | more
cat /var/log/syslog | grep XXX > resultat.txt
 
 
Afficher les dernières lignes d’un fichier
tail /var/log/syslog
 
Afficher en live (en temps réel) un fichier (ctrl-c pour sortir)
tail -f /var/log/syslog
 
Afficher le contenu d’un fichier (on affiche les logs principaux, faites ctrl-c pour stopper !)
cat lefichier.txt
zcat /var/log/syslog.1.gz
 
Chercher un fichier
find -name "*.log"
find -name "*.log" | more
 
 
Connaitre la version du noyau:
 
uname -a
 
 
transfert de fichiers:
scp root@00.00.00.00:/home/fichier.ext .
scp root@00.00.00.00:/home/fichier.ext .
scp fichier.ext root@00.00.00.00:/home/
scp fichier.ext root@00.00.00.00:/home/


avec port
#avec port
scp -P XXXX user@ip:/rep/fichier.txt .
scp -P XXXX user@ip:/rep/fichier.txt .
 
</pre>
synchronisation de fichiers:
== synchronisation de fichiers ==
 
<pre>
rsync -avz -e ssh  /users/personne/.../ root@168.192.1.23:/home/../
rsync -avz -e ssh  /users/personne/.../ root@168.192.1.23:/home/../
sync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../
sync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../
rsync -av /Users/poste2/Desktop/Joomla_1/ /users/personne/.../
rsync -av /Users/poste2/Desktop/Joomla_1/ /users/personne/.../


option:
#option:
--exclude="/*/.local" (exclure un répertoire)
--exclude="/*/.local" (exclure un répertoire)


------------------------------------------------------
rsync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../


supprimer un repertoire:
#exclure répertoire
rm -rf portail
--exclude='/config/'
</pre>


------------------------------------------------------
== Répertoire ==


rsync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../
=== Comparer répertoire ===
diff -rb /rep1/ /rep2/
 
=== supprimer un repertoire ===
rm -rf portail


exclure répertoire
=== modifier attributs ===
--exclude='/config/'
#modif proprio
chown -R personne:groupe rep (-R recursif)


------------------------------------------------------
#modif des droits
chmod -R 755 repertoire


modifier les groupe et proprio
chown -R personne:groupe rep (-R recursif)


modif des droits
chmod -R 755 repertoire


------------------------------------------------------
== MySql ==
<pre>
serveur bin # mysql -p       
serveur bin # mysql -p       


Ligne 179 : Ligne 241 :


mysql> GRANT ALL PRIVILEGES ON bdd.* TO personne @'%' IDENTIFIED BY 'testdb';
mysql> GRANT ALL PRIVILEGES ON bdd.* TO personne @'%' IDENTIFIED BY 'testdb';
------------------------------------------------------
 
recherche de fichier
find / -name fichier.ini
grep -Rl "quelques chose" .
------------------------------------------------------
MYSQL DUMP
MYSQL DUMP
/usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=nom --password=pass bdd  > /home/bdd.sql
/usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=nom --password=pass bdd  > /home/bdd.sql


ou
#se placer ds le repertoire Bin de mysql
 
#commande:
se placer ds le repertoire Bin de mysql
commande:
mysql -u root -p db < db.dmp
mysql -u root -p db < db.dmp
</pre>


service mail
== service mail ==
<pre>
/etc/init.d/spamd stop
/etc/init.d/spamd stop
/etc/init.d/clamd stop
/etc/init.d/clamd stop
Ligne 200 : Ligne 258 :
/etc/init.d/clamd start
/etc/init.d/clamd start
/etc/init.d/qmail start
/etc/init.d/qmail start
------------------------------------------------------
</pre>
 
== Fichiers ==
=== Lire les fichiers ===
ls -la
ls -lah humain
ls -lac date de création


lire les fichiers
=== Rendre exécutable un fichier ssh ===
ls -la
<pre>
chmod u+x fichier.sh


#Cette commande ajoute les droits d'exécution au propriétaire du fichier. Pour rendre le fichier exécutable pour le groupe utilisateur il faut lancer :
chmod g+x fichier.sh


répertoire www doit être en 705.
#Pour rendre le script exécutable pour les utilisateurs autres :
chmod o+x fichier.sh


En revanche les autres répertoires doivent être en 755 et les fichiers en 644.
#Et enfin pour autoriser tout le monde :
chmod ugo+x fichier.sh
</pre>


Voici deux comandes  via le ssh pour mettre des répertoires en 755 et tes fichiers en 644.
== Autres ==
=== Répertoire WEB ===
<pre>
#répertoire www doit être en 705.
#En revanche les autres répertoires doivent être en 755 et les fichiers en 644.
#Voici deux comandes  via le ssh pour mettre des répertoires en 755 et tes fichiers en 644.


cd /home/TEST/www/
cd /home/TEST/www/


répertoires en 705 avec cette commande :
#répertoires en 705 avec cette commande :
find . -type d -print | xargs chmod 705
 
#fichiers en 644 :
find . -type f -print0 | xargs -0 -n1 chmod 644
</pre>
 
=== Executer une page web ===
#!/bin/bash
wget http://site.com/page.html 1> /dev/null 2> /dev/null
 
=== Extraire dossier ou fichier d'une archive ===
<pre>
#Pour tirer un fichier
tar --extract --file=mon_archive.tar file1
 
#c'est à dire extraire le fichier file1 de l'archive mon_archive.tar.
#Si nous devons extraire à partir d'une archive gzippée:
tar xzf mon_achive_zippee.tgz file2
 
#maintenant si on veux extraire un répertoire:
tar xzf grosse_archive.tar.gz --wildcards --no-anchored 'home/zydoon/public_html*'
#vous pouvez utiliser le t au lieu du x pour vous exercer.
</pre>
 
=== Lister les services ===
<pre>
sudo service --status-all
 
 
</pre>
* http://www.linuxpedia.fr/doku.php/commande/ssh
* http://juliend.github.io/linux-cheatsheet/


find . -type d -print | xargs chmod 705


fichiers en 644 :
== Profile ==
#relancer /etc/profile/
source /etc/profile
 
== Paquets ==
=== mettre à jour un paquet  ===
sudo apt update (mise à jour de '''la liste''' des paquets)
sudo apt list --upgradable (pour voir ce qui doit être mis à jour)
sudo apt install --only-upgrade firefox
sudo apt-get --with-new-pkgs upgrade
 
sudo aptitude update
aptitude search '~U'
sudo aptitude upgrade
 
=== listes des paquets ===
dpkg --list
 
=== listes noyaux installés ===
dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}'
 
=== le paquet est-il à jour ===
apt-cache policy openvpn
 
=== details d'un paquet ===
dpkg -L|--listfiles <package>
 
=== chercher un paquet ===
dpkg -S|--search <pattern>
 
=== nettoyer les paquets ===
sudo apt-get autoremove --purge
 
== Réseaux ==
=== voir les ip du reseaux et le mac adress ===
Dans la console: arp
 
=== Reset DNS ===
sudo /etc/init.d/dns-clean start
 
=== Dns diagnostique ===
apt-get install dnsutils
La commande dig
=== Pour voir les DNS en cours ===
cat /etc/resolv.conf
 
=== table de routage (IPv4/IPv6) ===
ip route
 
=== Vérification des interfaces ===
ifconfig
 
=== Afficher les connexions ===
<pre>
0-Lister les ports ouverts et les services réseaux en écoute sur son serveur Linux grâce à netstat.
netstat -lntup
 
1-Lister tous les ports :
netstat -a
 
2-Lister tous les ports TCP :
netstat -at
 
3-Lister tous les ports UDP :
netstat -au
 
4-Lister tous les ports en écoute :
netstat -l
 
5-Lister uniquement les ports TCP en écoutes :
netstat -lt
 
6-Lister uniquement les ports UDP en écoutes :
netstat -lu
 
7-Afficher les statistique de tous les ports :
netstat -s
 
8-Affichier les statistique des Port TCP :
netstat -st


find . -type f -print0 | xargs -0 -n1 chmod 644
9-Affichier les statistique des Port UDP :
netstat -su


10-Affiche le nom du programme et le PID associé :
Cette commande est très utile lorsque vous souhaitez connaitre quel programme est exécuté sur un port particulier.
netstat -p


Executer une page web
11-Afficher directement les IP et pas de résolution de nom :
#!/bin/bash
Pour afficher toutes les connexions et tous les ports en écoute mais n’affiche que les adresses IP sans la résolutions des noms.
wget http://site.com/page.html 1> /dev/null 2> /dev/null
netstat -an


Extraire dossier ou fichier d'une archive:
12-Affiche le numéro d’identification des processus (PID) associé à chaque connexion :
netstat -o


13-Afficher la table de routage IPV4 et IP6 :
netstat -r


            Pour tirer un fichier:
14-Affichage à un interval de temps régulier en seconde :
tar --extract --file=mon_archive.tar file1
netstat -t “temps en seconde” ( Exemple : netstat -t 5 )
c'est à dire extraire le fichier file1 de l'archive mon_archive.tar.
netstat -t 5
Si nous devons extraire à partir d'une archive gzippée:
</pre>
tar xzf mon_achive_zippee.tgz file2
maintenant si on veux extraire un répertoire:
tar xzf grosse_archive.tar.gz --wildcards --no-anchored 'home/zydoon/public_html*'
vous pouvez utiliser le t au lieu du x pour vous exercer.


=== Scanner les ports ===
<pre>
nmap est un outil d'exploration réseau permettant de découvir les machines présentes ainsi que les services qu'elles utilisent.
apt-get install nmap


1. Lister les machines à explorer
Cette commande va se contenter de lister les machines que nmap explorerait sur le réseau en question. La valeur 24 indique que les trois premières valeurs sont fixes et que seule la dernière va varier.
nmap -sL 192.168.0.1/24


ncftp> open -u ns36xxxx.ovh.net -p xxxxxxx ftpbackxx.ovh.net
2. Scanner les machines du réseau
On va maintenant passer la même commande en faisant un ping sur chaque machine.
nmap -sP 192.168.0.1/24


3. Scanner une machine
nmap 192.168.0.72


rendre exécutable un fichier ssh
4. Scanner une machine plus en détail
On peut en plus activer la détection du système d'exploitation et des versions dans la commande précédente an ajoutant le flag -A:
nmap -A 192.168.0.72


chmod u+x fichier.sh
Si maintenant on scanne la Box Internet:
Cette commande ajoute les droits d'exécution au propriétaire du fichier. Pour rendre le fichier exécutable pour le groupe utilisateur il faut lancer :
nmap -A 192.168.0.254


5. Accélérer le scan de la machine
Le précédent scan ayant duré 17mn, on va essayer d'obtenir un résultat plus rapidement en changeant la politique de temporisation de nmap:
nmap -A -T5 192.168.0.254
</pre>


chmod g+x fichier.sh
== Fichiers convertion ==
Pour rendre le script exécutable pour les utilisateurs autres :
=== ImageMagik convertir un pdf en jpg ===
convert -density 300 -trim -quality 100 fichier.pdf image.jpg
-----
0. Commandes utiles
* https://blog.sodifrance.fr/nmap-commandes-utiles/




chmod o+x fichier.sh
Et enfin pour autoriser tout le monde :




chmod ugo+x fichier.sh
[[Catégorie: Linux]]

Version actuelle datée du 14 novembre 2021 à 20:54

chmod

Example RSYNC aller et retour avec chown et chmod

rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "ssh -p654" /users/toto/ user@1.2.3.4:/home/toto/

rsync serveur -> local rsync -avz --delete --no-owner --no-group --no-perms --rsync-path="sudo rsync" -e "ssh -p654" user@1.2.3.4:/home/toto/ /users/toto/

Linux version noyau

uname -sr
uname -a

cat /etc/issue
cat /etc/*-release

lsb_release -ds

Sendmail

cd /var/spool/mqueue

sendmail -bp

send mail

mail -s "message"  -F "adresse1@etc, adresse2@etc" -r "Un nom<une@email.com>" $EMAIL

Terminal Console

couleur du prompt

export PS1="\[\e[\033[00;36m\]\u\[\e[m\]\[\e[\033[00;36m\]@\[\e[m\]\[\e[\033[00;36m\]\h\[\e[m\]:\[\e[\033[01;33m\]\w\[\e[m\]\[\e[\033[01;32m\]\`parse_git_branch\`\[\e[m\]\\$ "

Compter

Compter le nombre de fichiers dans un répertoire

find /dossier/path/etc -maxdepth 1 -type f | wc -l

Compter le nombre de fichiers dans un répertoire selon son extension

find /dossier/path/etc -name '*.MOV' -type f -printf '.' | wc -c

Trouver

Compter le nombre de fichiers en excluant un répertoire

find /rep/ -maxdepth 4 -type f ! -path '*/repexclu/*' | wc -l 

Trouver les chemins des fichiers recherchés

find /volume1/video/perso/2017 -name '*.MOV' -type f

Recherche

find /home/rep/ \( -name '*.ai' \)

Recherche et supprime

#Effacer les fichiers .DS_Store et Thumbs.db d’un système Linux
find /home/ -name .DS_Store -exec rm -f {} \;

Rechercher dans un fichier (XXX est un mot ou une expression régulière)

cat /var/log/syslog | grep XXX
cat /var/log/syslog | grep XXX | more
cat /var/log/syslog | grep XXX > resultat.txt

Afficher les dernières lignes d’un fichier

tail /var/log/syslog

Afficher en live (en temps réel) un fichier (ctrl-c pour sortir)

tail -f /var/log/syslog

Afficher le contenu d’un fichier (on affiche les logs principaux, faites ctrl-c pour stopper !)

cat lefichier.txt
zcat /var/log/syslog.1.gz
#Chercher un fichier :
find -name "*.log"
find -name "*.log" | more
find / -name fichier.ini 
grep -Rl "quelques chose" .

list open files

fichiers ouverts ainsi que leurs programmes ou utilisateurs liés.
ex:sudo lsof -i :9000 () qui utilise le port :9000

sudo

sudo su -u root

Concaténer

#concatener des fichiers js ou css
echo | cat fichier1.css fichier2.css fichierfull.css > site.css

log

#Recherche en live
tail -f /var/log/fichier.log

#recherche simple
grep -R "untruc" /var/log/*

#cherche les 20 dernieres lignes avec un mot dans un log
grep -r "unbound" /var/log/fichier.log | tail -n 20

# exclusion (-v)
grep -r "untruc" /var/log/* | grep -v motàexclure

# -r recursive, -i insensible à la "casse", -l n'affiche pas tous les résultats, seulement le nom des fichiers
grep -r -i -l 'untruc' /var/log/

#zgrep pour les fichiers compressés compris

Alias

ls -l Afficher les informations de manière détaillée.

ls -a Afficher les fichiers cachés.

ls -h Afficher la taille des fichiers de facon lisible.

ls -r Tri inversé.

ls -t Trier les fichiers par date du plus récent au plus ancien.

ls -S Trier par taille décroissante.

ls -la Afficher tous les fichiers y compris les fichiers cachés.

ls -lhS Afficher les informations des fichiers, avec des tailles lisibles le tout ordonné du plus grand au plus petit.

#Créer raccourci:
ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien'
ex: ln -s /usr/local/php53/bin/php /usr/local/bin/php53

Copie

copie entre 2 serveurs sans mot de passe

#Copie entre 2 serveurs sans mot de passe:
#générer la clé :
ssh-keygen -t dsa

#Ensuite, pour copier la clé sur l'ordinateur distant :
ssh root@server 'cat >> /root/.ssh/authorized_keys' < ~/.ssh/id_dsa.pub

#pour serveur dédié ovh :
ssh user@ip 'cat >> /home/user/.ssh/authorized_keys2' < /home/userlocal/.ssh/id_dsa.pub

Compression

#Compresser un dossier :
tar -zcvf fichier.tar.gz /home/repertoire

#decompresser tar gz :
tar zxvf fichier.tar.gz

Historique

#Supprimer l'historique ssh:
history -c

Taille

#taille repertoire
du -sh repertoire 

#taille des partitions
df -h

#etat de la mémoire
free -m

Reset

#Vider un fichier
echo "" > auth.log

Transfert

#transfert de fichiers:
scp root@00.00.00.00:/home/fichier.ext .
scp fichier.ext root@00.00.00.00:/home/

#avec port
scp -P XXXX user@ip:/rep/fichier.txt .

synchronisation de fichiers

rsync -avz -e ssh  /users/personne/.../ root@168.192.1.23:/home/../
sync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../
rsync -av /Users/poste2/Desktop/Joomla_1/ /users/personne/.../

#option:
--exclude="/*/.local" (exclure un répertoire)

rsync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../

#exclure répertoire
--exclude='/config/'

Répertoire

Comparer répertoire

diff -rb /rep1/ /rep2/

supprimer un repertoire

rm -rf portail

modifier attributs

#modif proprio
chown -R personne:groupe rep (-R recursif)
#modif des droits
chmod -R 755 repertoire


MySql

serveur bin # mysql -p       

mysql> GRANT ALL PRIVILEGES ON bdd_personne.* TO personne@'%' IDENTIFIED BY 'testdb';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON bdd.* TO personne @'%' IDENTIFIED BY 'testdb';

MYSQL DUMP
/usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=nom --password=pass bdd  > /home/bdd.sql

#se placer ds le repertoire Bin de mysql
#commande:
mysql -u root -p db < db.dmp

service mail

/etc/init.d/spamd stop
/etc/init.d/clamd stop
/etc/init.d/qmail stop
/etc/init.d/spamd start
/etc/init.d/clamd start
/etc/init.d/qmail start

Fichiers

Lire les fichiers

ls -la
ls -lah humain
ls -lac date de création

Rendre exécutable un fichier ssh

chmod u+x fichier.sh

#Cette commande ajoute les droits d'exécution au propriétaire du fichier. Pour rendre le fichier exécutable pour le groupe utilisateur il faut lancer :
chmod g+x fichier.sh

#Pour rendre le script exécutable pour les utilisateurs autres :
chmod o+x fichier.sh

#Et enfin pour autoriser tout le monde :
chmod ugo+x fichier.sh

Autres

Répertoire WEB

#répertoire www doit être en 705.
#En revanche les autres répertoires doivent être en 755 et les fichiers en 644.
#Voici deux comandes  via le ssh pour mettre des répertoires en 755 et tes fichiers en 644.

cd /home/TEST/www/

#répertoires en 705 avec cette commande :
find . -type d -print | xargs chmod 705

#fichiers en 644 :
find . -type f -print0 | xargs -0 -n1 chmod 644

Executer une page web

#!/bin/bash
wget http://site.com/page.html 1> /dev/null 2> /dev/null

Extraire dossier ou fichier d'une archive

#Pour tirer un fichier
tar --extract --file=mon_archive.tar file1

#c'est à dire extraire le fichier file1 de l'archive mon_archive.tar.
#Si nous devons extraire à partir d'une archive gzippée:
tar xzf mon_achive_zippee.tgz file2

#maintenant si on veux extraire un répertoire:
tar xzf grosse_archive.tar.gz --wildcards --no-anchored 'home/zydoon/public_html*'
#vous pouvez utiliser le t au lieu du x pour vous exercer.

Lister les services

sudo service --status-all



Profile

#relancer /etc/profile/
source /etc/profile

Paquets

mettre à jour un paquet

sudo apt update (mise à jour de la liste des paquets)
sudo apt list --upgradable (pour voir ce qui doit être mis à jour)
sudo apt install --only-upgrade firefox

sudo apt-get --with-new-pkgs upgrade
sudo aptitude update
aptitude search '~U'
sudo aptitude upgrade

listes des paquets

dpkg --list

listes noyaux installés

dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}'

le paquet est-il à jour

apt-cache policy openvpn

details d'un paquet

dpkg -L|--listfiles <package>

chercher un paquet

dpkg -S|--search <pattern>

nettoyer les paquets

sudo apt-get autoremove --purge

Réseaux

voir les ip du reseaux et le mac adress

Dans la console: arp

Reset DNS

sudo /etc/init.d/dns-clean start

Dns diagnostique

apt-get install dnsutils

La commande dig

Pour voir les DNS en cours

cat /etc/resolv.conf

table de routage (IPv4/IPv6)

ip route

Vérification des interfaces

ifconfig

Afficher les connexions

0-Lister les ports ouverts et les services réseaux en écoute sur son serveur Linux grâce à netstat.
netstat -lntup

1-Lister tous les ports :
netstat -a

2-Lister tous les ports TCP :
netstat -at

3-Lister tous les ports UDP :
netstat -au

4-Lister tous les ports en écoute :
netstat -l

5-Lister uniquement les ports TCP en écoutes :
netstat -lt

6-Lister uniquement les ports UDP en écoutes :
netstat -lu

7-Afficher les statistique de tous les ports :
netstat -s

8-Affichier les statistique des Port TCP :
netstat -st

9-Affichier les statistique des Port UDP :
netstat -su

10-Affiche le nom du programme et le PID associé :
Cette commande est très utile lorsque vous souhaitez connaitre quel programme est exécuté sur un port particulier.
netstat -p

11-Afficher directement les IP et pas de résolution de nom :
Pour afficher toutes les connexions et tous les ports en écoute mais n’affiche que les adresses IP sans la résolutions des noms.
netstat -an

12-Affiche le numéro d’identification des processus (PID) associé à chaque connexion :
netstat -o

13-Afficher la table de routage IPV4 et IP6 :
netstat -r

14-Affichage à un interval de temps régulier en seconde :
netstat -t “temps en seconde” ( Exemple : netstat -t 5 )
netstat -t 5

Scanner les ports

nmap est un outil d'exploration réseau permettant de découvir les machines présentes ainsi que les services qu'elles utilisent.
apt-get install nmap

1. Lister les machines à explorer
Cette commande va se contenter de lister les machines que nmap explorerait sur le réseau en question. La valeur 24 indique que les trois premières valeurs sont fixes et que seule la dernière va varier.
nmap -sL 192.168.0.1/24

2. Scanner les machines du réseau
On va maintenant passer la même commande en faisant un ping sur chaque machine.
nmap -sP 192.168.0.1/24

3. Scanner une machine
nmap 192.168.0.72

4. Scanner une machine plus en détail
On peut en plus activer la détection du système d'exploitation et des versions dans la commande précédente an ajoutant le flag -A:
nmap -A 192.168.0.72

Si maintenant on scanne la Box Internet:
nmap -A 192.168.0.254

5. Accélérer le scan de la machine
Le précédent scan ayant duré 17mn, on va essayer d'obtenir un résultat plus rapidement en changeant la politique de temporisation de nmap:
nmap -A -T5 192.168.0.254

Fichiers convertion

ImageMagik convertir un pdf en jpg

convert -density 300 -trim -quality 100 fichier.pdf image.jpg

0. Commandes utiles