Aller au contenu

SSH

De Marmits Wiki

chmod

Ressources

Meilleures commandes linux a connaitre
malekal.com Commandes linux

Lister les services

service --status-all
# Les services actifs ont un + devant eux.

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\]\\$ "

nano

Recherche un mot : Ctrl + W

vim

Pour rechercher un mot dans l'éditeur de texte vim, vous pouvez utiliser les commandes suivantes :

  • Passer en mode commande :
- Appuyez sur Esc pour vous assurer que vous êtes en mode commande.
  • Rechercher un mot :
- Tapez / suivi du mot que vous souhaitez rechercher, puis appuyez sur Entrée.
Par exemple, pour rechercher le mot "example", tapez :
/example
Vim mettra en surbrillance la première occurrence du mot dans le texte.
  • Naviguer entre les occurrences :
- Pour passer à l'occurrence suivante du mot, appuyez sur n (pour "next").
Pour revenir à l'occurrence précédente, appuyez sur N (majuscule).
  • Recherche inversée :
- Si vous souhaitez rechercher en arrière (à partir de la fin du fichier vers le début), utilisez ? au lieu de /. Par exemple :
?example
Comme précédemment, utilisez n et N pour naviguer entre les occurrences.

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 <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)

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

malekal.com Connaître la taille répertoire

Taille repertoire

 du -sh repertoire

Exclusion

sudo du -sh --exclude "directory" *

Liste des 10 plus gros fichiers du répertoire courant et de ses sous-repertoires, dans l’ordre décroissant de taille

du -a | sort -nr | head -n 10

Taille des fichiers et sous-répertoires du dossier courant, dans l’ordre décroissant de taille

 du -a --max-depth=1 | sort -nr

Taille des plus gros

du -h --max-depth=1 /home/ | sort -rh | head -5

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

voir APT

processus

lsof

(List Open Files) est un outil en ligne de commande très puissant sur les systèmes Unix et Linux, y compris Debian.
Il est utilisé pour lister les fichiers ouverts par les processus en cours d'exécution.
Voici quelques-unes des principales utilisations de lsof :

1. Identifier les fichiers ouverts par un processus : Vous pouvez utiliser lsof pour voir quels fichiers sont ouverts par un processus spécifique.
Cela peut être utile pour le débogage ou pour comprendre ce qu'un processus fait.

lsof -p <PID>

2. Trouver quel processus utilise un fichier :
Si vous avez besoin de savoir quel processus utilise un fichier particulier, vous pouvez utiliser lsof pour le découvrir.

lsof /chemin/vers/le/fichier

3. Lister les connexions réseau : lsof peut également lister les connexions réseau ouvertes et les ports utilisés par les processus.

lsof -i

lsof peut être utilisé pour lister les fichiers ouverts par les processus, y compris les sockets réseau.

sudo lsof -i @<ip>

4. Vous pouvez filtrer par protocole (TCP/UDP) ou par port spécifique :

lsof -i :<port>

5. Identifier les fichiers ouverts par un utilisateur : Vous pouvez lister tous les fichiers ouverts par un utilisateur spécifique.

lsof -u <username>

5. Déboguer les problèmes de verrouillage de fichiers :
Si un fichier est verrouillé et que vous ne pouvez pas le supprimer ou le modifier, lsof peut vous aider à identifier quel processus le maintient ouvert.

6. Surveiller les ressources système :
En listant les fichiers ouverts, vous pouvez surveiller l'utilisation des ressources système, comme les fichiers de périphériques ou les sockets réseau.

7. Exemple d'utilisation : Pour lister tous les fichiers ouverts par tous les processus, vous pouvez simplement exécuter :

sudo lsof

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

En savoir plus sur le trafic sur un port

1. Utiliser netstat ou ss : Pour voir quelles applications utilisent ce port.

sudo netstat -tuln | grep 40252

ou

sudo ss -tuln | grep 40252

Identifier les connexions réseau actives et les ports utilisés.

sudo ss -tunp | grep <ip>

2. Utiliser lsof : Pour identifier le processus utilisant ce port.

sudo lsof -i :40252

3. Vérifier les logs : Consultez les logs système pour voir s'il y a des informations sur les connexions utilisant ce port.
4. Analyser le trafic : Utilisez des outils comme tcpdump ou Wireshark pour capturer et analyser le trafic sur ce port.

sudo tcpdump -i eth0 port 40252
sudo tcpdump -i eth0 host <ip>

En suivant ces étapes, vous devriez être en mesure de déterminer pourquoi ce port est utilisé sur votre système.

trace ip

apt install traceroute
traceroute 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e
traceroute6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e

apt install mtr
mtr -6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e
mtr -6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e

ip -6 route get 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e

hping3 est un outil flexible et puissant pour les administrateurs réseau et les professionnels de la sécurité, offrant des capacités avancées pour le diagnostic et le test des réseaux.
Utilisation Éthique : hping3 est un outil puissant qui peut être utilisé à des fins malveillantes, comme les attaques DoS. Il doit être utilisé de manière éthique et responsable, uniquement sur des réseaux et des systèmes pour lesquels vous avez l'autorisation.

apt install hping3

whois

Pour obtenir des informations sur l'enregistrement d'une adresse IP ou d'un nom de domaine :

sudo apt-get install whois
whois 8.8.8.8

Observer le trafic

tshark

Version en ligne de commande de Wireshark. Il est plus léger que l'interface graphique complète et peut être utilisé pour capturer et analyser le trafic réseau.

sudo apt-get install tshark
sudo tshark -i eth0
sudo tshark -i eth0 -f "host 192.168.1.10"
sudo tshark -i eth0 -f "port 853"

Afficher les paquets en temps réel

sudo tshark -i eth0 -Y "ip.addr == 192.168.1.10"

tcpdump

Pour capturer et analyser le trafic réseau. Vous pouvez l'utiliser pour surveiller le trafic sur une interface spécifique.

sudo tcpdump -i eth0
sudo tcpdump -i eth0 port 443
sudo tcpdump -i eth0 host 192.168.1.10 and port 53

ftop

Affiche une vue en temps réel de la bande passante utilisée par les connexions réseau. Vous pouvez l'installer avec la commande suivante :

sudo apt-get install iftop
sudo iftop -i eth0
sudo iftop -f "host 192.168.1.10"

iptraf-ng

Outil de surveillance réseau qui fournit des statistiques détaillées sur le trafic réseau. Vous pouvez l'installer avec :

sudo apt-get install iptraf-ng
sudo iptraf-ng

nload

Affiche le trafic réseau en temps réel sous forme de graphiques. Installez-le avec :

sudo apt-get install nload
sudo nload eth0

Fichiers convertion

ImageMagik convertir un pdf en jpg

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

Commandes utiles