Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:lagrenouille:tutos:votre-ordinateur-en-ligne-de-commande-deuxieme-partie [08/02/2020 01:13] lagrenouille [commandes utiles et quelques utilitaires pratiques] |
utilisateurs:lagrenouille:tutos:votre-ordinateur-en-ligne-de-commande-deuxieme-partie [13/02/2020 12:54] lagrenouille [les droits et les acl sous linux] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== votre ordinateur et la ligne de commande (deuxième partie) ====== | + | ====== une approche de la ligne de commande: La CLI(deuxième partie) ====== |
Ligne 9: | Ligne 9: | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
+ | | ||
===== Introduction ===== | ===== Introduction ===== | ||
+ | |||
+ | |||
+ | {{https://debian-facile.org/images/file-Rab359a922a49699623b7583e8ccca504.png}} | ||
Il existe déjà sur ce wiki plusieurs tutos consacrés aux commandes linux, voir: | Il existe déjà sur ce wiki plusieurs tutos consacrés aux commandes linux, voir: | ||
Ligne 112: | Ligne 116: | ||
| rmdir | supprime un répertoire vide | | | rmdir | supprime un répertoire vide | | ||
- | ==== quelques commandes réseau ==== | + | |
+ | Les liens symbolique :La commande ln:il faut commencer par le nom du dossier qu’on veut lier, et ensuite mettre le nom du lien. | ||
+ | |||
+ | je fais un site web sur mon serveur et je ne veux pas prendre toute la place dans /var/www/html. | ||
+ | |||
+ | Je vais donc créer et développer mon site dans un DD de 2 Terras fait pour ça. Les données seront donc stockées dans le DD et non dans html, et je fais le lien . | ||
+ | <code root>ln -s /home/chemin/mon_DD/mon_site /var/www/html/</code> | ||
+ | |||
+ | maintenant si je fais un ls -lha /home/chemin/mon_DD/mon_site, et que mon site se nomme sitesting, je verrais le liens comme ceci | ||
+ | <code>mon_DD/spidtesting -> /var/www/html/spidtesting/</code> | ||
+ | |||
+ | alors que dans /var/www/html | ||
+ | <code user>ls -lha /var/www/html/ | ||
+ | -rw-r--r-- 1 root root 11K août 24 17:27 index.html | ||
+ | -rw-r--r-- 1 root root 21 août 31 16:41 phpinfo.php | ||
+ | drwxrwxrwx 13 momo momo 4,0K sept. 18 15:05 spidtesting</code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== quelques commandes réseau ===== | ||
on trouve tous les protocoles supportés de niveau réseau dans le fichier /etc/protocols | on trouve tous les protocoles supportés de niveau réseau dans le fichier /etc/protocols | ||
Ligne 319: | Ligne 346: | ||
</code> | </code> | ||
- | Voir aussi : | + | Voir aussi wput qui est un programme en ligne de commande de chargement (envoi) de fichiers sur le réseau. Il supporte le protocole FTP. : |
+ | <code user>wput monFichier ftp://login:password@serveur/</code> | ||
<code root> | <code root> | ||
Ligne 422: | Ligne 450: | ||
=====ssh et rsync ==== | =====ssh et rsync ==== | ||
+ | |||
+ | <code root>apt install openssh-client openssh-server rsync</code> | ||
+ | |||
+ | Ce qui va créer un dossier .ssh et à l'interieur un fichier known_hosts . Si vous avez des clés rsa, elles seront aussi dans ce dossier, vos clés publiques se terminent par .pub. | ||
+ | |||
+ | connexion à un serveur: | ||
+ | <code user>ssh nom@ip | ||
+ | ou | ||
+ | ssh nom@serveur</code> | ||
+ | ou si le port est spècifique | ||
+ | ssh -P6678 nom@serveur</code> | ||
+ | |||
+ | envoyé un fichier : | ||
+ | <code user>scp -P2289 monfichier.odt nom@serveur</code> | ||
+ | |||
+ | |||
+ | rsync est une commande à rallonge, pleine d'options | ||
+ | |||
+ | <code user>rsync -pavz nom@hometoto87654.1and1-data.host: /chemin/dossier/machin/</code> | ||
+ | |||
+ | [[https://linux.die.net/man/1/rsync]] | ||
+ | |||
+ | [[https://man.developpez.com/man1/rsync/]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
===== commandes utiles et quelques utilitaires pratiques ===== | ===== commandes utiles et quelques utilitaires pratiques ===== | ||
Ligne 561: | Ligne 616: | ||
</code> | </code> | ||
+ | Le PID d’un processus peut se récupérer avec la commande “ps -edf | grep “processus“. Par exemple pour le processus “apache” | ||
+ | <code user>ps -edf | grep apache | ||
+ | www-data 6904 10269 0 07:41 ? 00:00:02 /usr/sbin/apache2 -k start | ||
+ | www-data 6905 10269 0 07:41 ? 00:00:02 /usr/sbin/apache2 -k start | ||
+ | www-data 6906 10269 0 07:41 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | www-data 6908 10269 0 07:41 ? 00:00:04 /usr/sbin/apache2 -k start | ||
+ | www-data 6909 10269 0 07:41 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | www-data 6915 10269 0 07:42 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | www-data 6924 10269 0 07:45 ? 00:00:03 /usr/sbin/apache2 -k start | ||
+ | lagreno+ 7112 7092 0 08:31 pts/2 00:00:00 grep apache | ||
+ | root 10269 1 0 févr.03 ? 00:00:10 /usr/sbin/apache2 -k start | ||
+ | |||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | Le PID du processus Apache est le premier numéro (2ème colonne). Nous pourrons donc spécifier ce numéro comme suivant à la commande lsof pour avoir les fichiers ouverts par apache: | ||
+ | <code user>lsof -p 6904 | ||
+ | COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME | ||
+ | apache2 6904 www-data cwd DIR 8,2 4096 2 / | ||
+ | apache2 6904 www-data rtd DIR 8,2 4096 2 / | ||
+ | apache2 6904 www-data txt REG 8,2 687944 1184619 /usr/sbin/apache2 | ||
+ | apache2 6904 www-data mem REG 8,2 337024 1183204 /usr/lib/locale/aa_DJ.utf8/LC_CTYPE | ||
+ | apache2 6904 www-data mem REG 8,2 200752 1179422 /usr/lib/locale/C.UTF-8/LC_CTYPE | ||
+ | apache2 6904 www-data mem REG 8,2 1517626 1179421 /usr/lib/locale/C.UTF-8/LC_COLLATE | ||
+ | apache2 6904 www-data mem REG 8,2 282752 1178637 /usr/lib/x86_64-linux-gnu/libnss_systemd.so.2 | ||
+ | apache2 6904 www-data DEL REG 0,5 972876 /dev/zero | ||
+ | apache2 6904 www-data DEL REG 0,5 972875 /dev/zero | ||
+ | apache2 6904 www-data mem REG 8,2 105672 1210245 /usr/lib/x86_64-linux-gnu/libzip.so.4.0 | ||
+ | apache2 6904 www-data mem REG 8,2 67688 1183384 /usr/lib/php/20180731/zip.so | ||
+ | apache2 6904 www-data mem REG 8,2 264320 1195499 /usr/lib/x86_64-linux-gnu/libxslt.so.1.1.32 | ||
+ | |||
+ | </code> | ||
du et df: | du et df: | ||
Ligne 597: | Ligne 685: | ||
</code> | </code> | ||
- | la commande who -b affiche la date du dernier démarrage du système | + | la commande who -b affiche la date du dernier démarrage du système. |
- | **la commande find** | + | Certaines commandes tel que : **la commande find** **la commande sed** **les commandes grep/egrep** et **la commande awk** possendent tellement de possibilités que je me contente de les cités.. la commande awk est un véritable langage de programmation à lui seul, vous trouverez un grand nombre de doc sur le web.Ce langage est asé ou inspiré par le langage C. |
- | **la commande sed** | + | Syntaxe |
+ | awk [-Fs] [-v variable] [-f fichier de commandes] 'program' fichier | ||
- | **les commandes grep/egrep** | + | -F Spécifie les séparateurs de champs |
+ | |||
+ | -v Définie une variable utilisée à l'intérieur du programme. | ||
+ | |||
+ | -f Les commandes sont lu à partir d'un fichier. | ||
+ | |||
+ | Je ne mettrai pas d'exemple de cette puissante commande, pour la simple raison que je la connais pas : :o) Je vous abandonne à RTFM. | ||
+ | |||
+ | |||
+ | |||
+ | Quelques exemples avec find et grep: | ||
+ | |||
+ | Supprimer une ligne selon son numéro. Attention les lignes vides sont comptées, ici les lgnes 1,4 et 7 sont supprimées | ||
+ | Il faut utiliser l’option d. | ||
+ | sed '1d;4d;7d' fichier.txt | ||
+ | |||
+ | Supprimer une ligne selon une REGEX (en faites une"Expressions Regulieres") | ||
+ | |||
+ | Toujours avec l’option d : va supprimer toutes les lignes qui commencent par # | ||
+ | <code user>sed '/^#/d' fichier.txt</code> | ||
+ | |||
+ | Afficher seulement les lignes commentées qui commencent par # | ||
+ | <code user>sed -n '/^#/p' fichier.txt</code> | ||
+ | |||
+ | pour avoir tous les répertoires et sous répertoires | ||
+ | <code user>find /home -type d</code> | ||
+ | |||
+ | nombre de fichiers et répertoires en chiffre : (en root pour tout avoir) | ||
+ | <code root>find ./ -type f | wc -l</code> | ||
+ | |||
+ | nombre de dossiers : | ||
+ | <code root>find ./ -type d | wc -l</code> | ||
+ | |||
+ | pour avoir le nombre de fichier en chiffres dans le répertoire courant | ||
+ | <code root> find . -name \* | wc -l</code> | ||
+ | |||
+ | de fichier en chiffres dans le répertoire WEB | ||
+ | <code root>find /home/momo/WEB -type d | wc -l</code> | ||
+ | |||
+ | autres exemples avec find et grep : | ||
+ | |||
+ | rechercher tous vos fichiers .odt | ||
+ | <code user>find -name "*.odt" -print</code> | ||
+ | |||
+ | cherche tous les répertoires dont le nom se termine par B | ||
+ | <code user>find . -type d -name "*B" -print</code> | ||
+ | |||
+ | tous les .jpg dont le nom comporte oiseaux | ||
+ | <code user>find -name "*.jpg" -print | grep oiseaux</code> | ||
+ | |||
+ | Pour afficher tous les fichiers ayant une permission 444 | ||
+ | <code root>find . -perm 444 -print</code> | ||
+ | |||
+ | voir les droits de tous les fichiers dont le nom contient conf | ||
+ | find . -type f -exec ls -lha {} \; | less | grep conf | ||
+ | |||
+ | ce grep affichera que les fichiers dont le nom se termine par conf dans /etc/apache2 | ||
+ | ls /etc/apache2/ | grep "conf$" | ||
- | **la commande awk** | ||
=== utilitaires === | === utilitaires === | ||
+ | |||
+ | nano: un éditeur installé d'office sur debian:Le menu s'affiche en bas de page de l’éditeur | ||
+ | commande | explication| | ||
+ | |Ctrl + O | enregistrer le fichier (écrire)| | ||
+ | |Ctrl + X | quitter Nano.| | ||
+ | |Ctrl + W | rechercher dans le fichier| | ||
+ | |Ctrl + U | coller la ligne de texte que vous venez de couper | | ||
+ | |||
+ | Écoutez vos ziques ♪ ♫ ♪ ♬ ♩♪♫♬♩♪♫I | ||
+ | <code root>apt install moc</code> | ||
+ | |||
+ | |commande moc| explications| | ||
+ | |mocp | pour lancer l'appli | | ||
+ | | h | pour l’aide | | ||
+ | | q |pour quitter | | ||
+ | |||
+ | dans ce répertoire | ||
+ | |||
+ | |touches dans moc | explications | | ||
+ | |flèche BAS |Déplacer vers le bas dans le menu | | ||
+ | |flèche UP | Déplacez-vous dans le menu | | ||
+ | |s ou p | pour arrêter la musique | | ||
+ | |n |lire le fichier suivant | | ||
+ | |b | ESPACE p Pause | ||
+ | la touche , réduit le son | ||
+ | |||
+ | la touche maj + ; augmente le son | ||
+ | |||
+ | AVEC D’AUTRES CLAVIERS | ||
+ | |||
+ | la touche > augmente le son (touche , ; pour clavier bépo) | ||
+ | |||
+ | la touche < réduit le son (touche . pour clavier bépo) | ||
+ | |||
+ | |||
**compression extraction** | **compression extraction** | ||
Ligne 764: | Ligne 944: | ||
<code user>apt-cache show apt</code> | <code user>apt-cache show apt</code> | ||
- | <code>Package: apt | + | //Package: apt |
Version: 1.8.2 | Version: 1.8.2 | ||
Installed-Size: 4064 | Installed-Size: 4064 | ||
Ligne 803: | Ligne 983: | ||
Size: 1418108 | Size: 1418108 | ||
MD5sum: 0e80dedab6ec1e66a8f6c15f1925d2d3 | MD5sum: 0e80dedab6ec1e66a8f6c15f1925d2d3 | ||
- | SHA256: 80e9600822c4943106593ca5b0ec75d5aafa74c6130ba1071b013c42c507475e</code> | + | SHA256: 80e9600822c4943106593ca5b0ec75d5aafa74c6130ba1071b013c42c507475e// |
affiché votre source.list | affiché votre source.list | ||
Ligne 831: | Ligne 1011: | ||
installé un paquet deb | installé un paquet deb | ||
<code root>apt install vim-nox</code> | <code root>apt install vim-nox</code> | ||
+ | |||
+ | **vim**commandes de l'éditeur: | ||
+ | |||
+ | |||
+ | |commande| explication| | ||
+ | |i | Passer dans le mode insertion| | ||
+ | |A | Ajouter en fin de ligne| | ||
+ | |:q | Quitter| | ||
+ | |:q! | Quitter sans enregistrer| | ||
+ | |:w | Enregistrer le fichier| | ||
+ | |:wq | Enregistrer et quitter| | ||
+ | |:x | Enregistrer (seulement en cas de modification) et quitter| | ||
+ | |:set paste | Passer en mode "collage"| | ||
+ | |||
+ | |||
+ | |Exemples | Action| | ||
+ | |u | Annuler la dernière opération| | ||
+ | |<control>-r | Rétablir la dernière opération annulée| | ||
+ | |. | Répéter la dernière opération d'édition| | ||
+ | |yy | Copier la ligne (4yy = 4 lignes)| | ||
+ | |dd | Couper la ligne (4dd = 4 lignes)| | ||
+ | |p | Coller après (P = insérer avant)| | ||
+ | |x | Effacer le caractère| | ||
+ | |dw | Effacer le texte jusqu'à la fin du mot| | ||
+ | |diw | Effacer le mot sous le curseur| | ||
+ | |/ | Rechercher du texte| | ||
+ | |n | Rechercher l'occurence suivante| | ||
+ | |N | Rechercher l'occurence précédente| | ||
+ | |cw | Remplacer le texte jusqu'à la fin du mot| | ||
+ | |ciw | Remplacer le mot| | ||
+ | |C | Remplacer jusqu'en fin de ligne| | ||
+ | |:%s/A/B/g | Remplacer tous (g) les A par des B| | ||
+ | |<control-w>-s | Diviser horizontalement| | ||
+ | |<control-w>-v | Diviser verticalement| | ||
+ | |<control-w>-w | Passer à la fenêtre suivante| | ||
+ | |<control-w>-n | Ouvrir un fichier vierge dans une nouvelle fenêtre| | ||
+ | |: tabnew nom_fichier | Ouvrir le fichier nom_fichier dans un onglet| | ||
+ | |<control-w>-q | Fermer la fenêtre| | ||
+ | |||
+ | |||
si un paquet est mal installé ou si l'on a un doute, on peut tenté«: | si un paquet est mal installé ou si l'on a un doute, on peut tenté«: | ||
Ligne 1274: | Ligne 1494: | ||
Donc l'accès au fichier se fait par le biais de la commande et non pas directement. | Donc l'accès au fichier se fait par le biais de la commande et non pas directement. | ||
+ | |||
+ | Pour placer le sticky bit, le SUID ou le SGID il faut causer en octal, c'est plus pratique. | ||
+ | |||
+ | 1777 (le 777 est ici un exemple, cela peut-être 755 ou autre...) | ||
+ | |||
+ | 2777 | ||
+ | |||
+ | 4777 | ||
+ | |||
+ | Pour faire simple : | ||
+ | |||
+ | 1000 correspond au sticky bit, | ||
+ | |||
+ | 2000 correspond au SUID | ||
+ | |||
+ | 4000 correspond au SGID. | ||
+ | |||
+ | |||
+ | Quand on écrit les permissions en octal, setuid, setgid et sticky bit sont représentés par une nouvelle série de 3 bits, qui se place avant les 3 autres séries: setuid=4, setgid=2, sticky=1. Ainsi, sur ma machine, le serveur de mail /usr/sbin/sendmail a les droits rwsr-sr-x (rwxr-xr-x, setuid, setgid); en octal, ça donne 6775. | ||
+ | |||
+ | le droit SUID | ||
+ | |||
+ | Son flag est la lettre s ou S qui vient remplacer le x du propriétaire. | ||
+ | |||
+ | droit d'exécution du propriétaire) qui est donc masqué par le droit SUID 's' ou 'S' | ||
+ | |||
+ | C'est un s si le droit d'exécution du propriétaire est présent, ou un S sinon | ||
+ | ---s------ ou ---S------ | ||
+ | |||
+ | Un fichier avec les droits | ||
+ | <code user>-rwxr-xr-x</code> | ||
+ | |||
+ | auquel on ajoute le droit SUID aura donc la notation | ||
+ | <code user>rwsr-xr-x</code> | ||
+ | |||
+ | |||
+ | Le droit SUID possède la valeur octale 4000. | ||
+ | Exemple : - r w s r - x r - x correspond à 4755 (chmod 4755) | ||
+ | ============= | ||
+ | le droit SGID | ||
+ | ce droit est appliqué aux groupes | ||
+ | |||
+ | quand vous créez un fichier, normalement, vous en êtes l'utilisateur et le propriétaire. | ||
+ | vous êtes aussi dans un ou plusieurs groupes. | ||
+ | |||
+ | Si vous créez votre fichier dans un répertoire ayant les droits SGID, il se verra automatiquement attribué le groupe de ce répertoire | ||
+ | |||
+ | le droit SGID aura donc la notation | ||
+ | |||
+ | a la place de | ||
+ | <code>-rwxr—r-</code> | ||
+ | |||
+ | vous aurez | ||
+ | <code>-rwxr-Sr-</code> | ||
+ | |||
+ | Le droit SGID possède la valeur octale 2000. (chmod 2744 répertoire)(chmod -R 2744 répertoire) | ||
+ | |||
+ | Exemple : - r w x r - S r - - correspond à 2744 | ||
+ | |||
+ | le sticky bit | ||
+ | |||
+ | Dixit wikipedia:"Ce droit est utilisé pour manier de façon plus subtile les droits d'écriture d'un répertoire. En effet, le droit d'écriture signifie que l'on peut créer et supprimer les fichiers de ce répertoire. Le sticky bit permet de faire la différence entre les deux droits." | ||
+ | |||
+ | Lorsque ce droit est positionné sur un répertoire, il interdit la suppression d'un fichier qu'il contient à tout utilisateur autre que le propriétaire du fichier | ||
+ | |||
+ | Le droit sticky bit possède la valeur octale 1000. | ||
+ | |||
+ | Exemple : - r w x r - x r - t correspond à 1755. (chmod 1755) | ||
+ | |||
+ | Son flag est le t ou T, qui vient remplacer le droit d'exécution x des autres utilisateurs que le propriétaire et ceux appartenant au groupe du fichier | ||
+ | |||
+ | chmod -R 1700 stick/ | ||
+ | |||
+ | <code user>ls -lha stick/ | ||
+ | total 16K | ||
+ | drwx-----T 2 momo momo 4,0K févr. 13 12:44 . | ||
+ | drwxr-xr-x 80 momo momo 12K févr. 13 12:44 .. | ||
+ | -rwx-----T 1 momo momo 0 févr. 13 12:38 lapinous.txt | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | |||