raspberrypi:linux:bashp1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
raspberrypi:linux:bashp1 [2022/09/01 19:14] – [4. Les utilisateurs, les groupes et les droits] philraspberrypi:linux:bashp1 [2024/02/15 18:24] (Version actuelle) – [4. Les utilisateurs, les groupes et les droits] phil
Ligne 3: Ligne 3:
 ===== BASH - Découvrir son système d'exploitation ===== ===== BASH - Découvrir son système d'exploitation =====
 {{ :raspberrypi:linux:bash.png?nolink&200|}} {{ :raspberrypi:linux:bash.png?nolink&200|}}
-[Mise à jour le 2/5/2022]+[Mise à jour le 13/3/2023]
  
 <html><span style="color:red"><strong>En cours de rédaction</strong></span></html> <html><span style="color:red"><strong>En cours de rédaction</strong></span></html>
Ligne 24: Ligne 24:
  
 <code bash *.bash> <code bash *.bash>
-# Exemple+# Exemple : affichage d'un calendrier 
 +# Remarque : n'est pas présent par défaut dans le Raspberry Pi, à installer avec sudo apt install ncal
 $ cal -m apr # nom : cal, option : m, argument d'option: apr $ cal -m apr # nom : cal, option : m, argument d'option: apr
 </code> </code>
 <callout type="warning" icon="true">Le shell Bash est en permanence associé à un répertoire dans lequel s’exécutent les commandes. Ce répertoire est appelé **répertoire courant**.</callout> <callout type="warning" icon="true">Le shell Bash est en permanence associé à un répertoire dans lequel s’exécutent les commandes. Ce répertoire est appelé **répertoire courant**.</callout>
 +
 ==== 1. La ligne de commande ==== ==== 1. La ligne de commande ====
 {{ :raspberrypi:linux:invite2.png?nolink|}} {{ :raspberrypi:linux:invite2.png?nolink|}}
 +
 === 1.1 L'invite de commande === === 1.1 L'invite de commande ===
-Lorsque l'on démarre un terminal sur lequel le shell Bash est présent, ont est accueilli avec l’**invite+Lorsque l'on démarre un terminal sur lequel le shell Bash est présent, on est accueilli avec l’**invite
 de commande** appelée **prompt** en anglais. de commande** appelée **prompt** en anglais.
  
Ligne 38: Ligne 41:
 {{ :raspberrypi:linux:shell.jpg?nolink&120|}} {{ :raspberrypi:linux:shell.jpg?nolink&120|}}
 ===1.2 Les commandes (généralités) === ===1.2 Les commandes (généralités) ===
-Le shell est une application qui sert d’**interface entre le noyau su système d'exploitation et l’utilisateur**. Il sert à exécuter des commandes qui proviennent d’un terminal (**mode interactif**) ou d’un fichier (**mode script**). Ces commandes peuvent être **internes au shell** ou **externes** au shell. Les commandes externes font appel à des programmes séparés du shell tandis que les commandes internes sont exécutées par le shell lui-même.+Le shell est une application qui sert d’**interface entre le noyau du système d'exploitation et l’utilisateur**. Il sert à exécuter des commandes qui proviennent d’un terminal (**mode interactif**) ou d’un fichier (**mode script**). Ces commandes peuvent être **internes** ou **externes** au shell. Les commandes externes font appel à des programmes séparés du shell tandis que les commandes internes sont exécutées par le shell.
  
 <code bash *.bash> <code bash *.bash>
-# La commande interne type suivie du nom d’une commande sert à indiquer le type de la commande+# La commande interne //type// suivie du nom d’une commande sert à indiquer le type de la commande 
 +# Exemple
 pi@Pi4Bp8Go:~ $ type echo man pi@Pi4Bp8Go:~ $ type echo man
-echo est une primitive du shell # type built-in (commande interne) +# Renvoie 
-man est /usr/bin/man # commande externe dans le répertoire /usr/bin+echo est une primitive du shell # echo est de type built-in (commande interne) 
 +man est /usr/bin/man # man est une commande externe située dans le répertoire /usr/bin
 </code> </code>
  
Ligne 51: Ligne 56:
 <callout type="primary" icon="true">//Format// : **commande** **arg1** **arg2** ... **argn**</callout> <callout type="primary" icon="true">//Format// : **commande** **arg1** **arg2** ... **argn**</callout>
  
-//Exemples// : la commande date avec et sans arguments+//Exemples// : la commande **date** avec et sans arguments
  
 <code bash *.bash> <code bash *.bash>
Ligne 88: Ligne 93:
 </code> </code>
  
-La valeur associée à l’option peut être spécifiée dans le même argument mais séparée de l’identifiant d’option via un **caractère délimiteur**.+La valeur associée à l’option peut être spécifiée dans le même argumentmais séparée de l’identifiant d’option via un **caractère délimiteur**.
  
-//Exemple// : la commande date+//Exemple// : la commande **date**
  
 <code bash *.bash> <code bash *.bash>
Ligne 97: Ligne 102:
 </code> </code>
  
-<callout type="primary" icon="true">La norme **POSIX** (**P**ortable **O**perating **S**ystem **I**nterface) répond au besoin de compatibilité entre les systèmes d’exploitations qui se trouvent sur les différents équipements informatiques. Elle définit diverses interfaces d’outils, de commandes et d’interfaces pour la programmation en **langage C**.</callout>+<callout type="primary" icon="true">La norme **POSIX** (**P**ortable **O**perating **S**ystem **I**nterface) répond au besoin de compatibilité entre les systèmes d’exploitation qui se trouvent sur les différents équipements informatiques. Elle définit diverses interfaces d’outils, de commandes et d’interfaces pour la programmation en **langage C**.</callout> 
 ==== 2. Trouver de l'aide ==== ==== 2. Trouver de l'aide ====
 La documentation est fournie par les commandes elles-mêmes et l’utilisateur peut y accéder soit au travers de la La documentation est fournie par les commandes elles-mêmes et l’utilisateur peut y accéder soit au travers de la
Ligne 104: Ligne 110:
   * **Aide depuis la commande**   * **Aide depuis la commande**
  
-<callout type="tip" icon="true">La plupart des commandes disposent d’une **aide interne** accessible avec **<nowiki>--</nowiki>help** ou **-h**.</callout>+<callout type="tip" icon="true">La plupart des commandes disposent d’une **aide-interne** accessible avec **<nowiki>--</nowiki>help** ou **-h**.</callout>
  
 //Exemple// //Exemple//
Ligne 164: Ligne 170:
 apropos (1)          - Chercher le nom et la description des pages de manuel apropos (1)          - Chercher le nom et la description des pages de manuel
 </code> </code>
 +
 ==== 3. Système de fichiers et répertoire ==== ==== 3. Système de fichiers et répertoire ====
 +
 ==== 4. Les utilisateurs, les groupes et les droits ==== ==== 4. Les utilisateurs, les groupes et les droits ====
  
-<callout type="primary" icon="true">Linux est un système **multi-utilisateurs**. Cela signifie que plusieurs personnes peuvent travailler simultanément sur le même OS, en s'y connectant à distance notamment.</callout>+<callout type="primary" icon="true">Linux est un système **multi-utilisateur**. Cela signifie que plusieurs personnes peuvent travailler simultanément sur le même OS, en s'y connectant à distance notamment.</callout>
  
   * **Organisation des utilisateurs sous Linux**   * **Organisation des utilisateurs sous Linux**
Ligne 174: Ligne 182:
   * **Devenir super utilisateur**   * **Devenir super utilisateur**
  
-<callout type="warning" icon="true">Pour passer de simple utilisateur à super utilisateur, on utilise la commande **sudo** (**S**ubstitute **U**ser **DO**) puis on entre le mot de passe super utilisateur.</callout>+<callout type="warning" icon="true">Pour passer de simple utilisateur à **super utilisateur**, on utilise la commande **sudo** (**S**ubstitute **U**ser **DO**) puis on entre le mot de passe super utilisateur. (**exit** pour revenir en simple utilisateur)</callout>
  
 //Exemple// //Exemple//
Ligne 184: Ligne 192:
  
 <callout icon="fa fa-hand-stop-o" color="red" title="ATTENTION">Seul le super utilisateur (**root**) peut créer des utilisateurs et des groupes.</callout> <callout icon="fa fa-hand-stop-o" color="red" title="ATTENTION">Seul le super utilisateur (**root**) peut créer des utilisateurs et des groupes.</callout>
 +
 {{ :raspberrypi:linux:personne.jpg?nolink|}} {{ :raspberrypi:linux:personne.jpg?nolink|}}
 === 4.1 Les utilisateurs === === 4.1 Les utilisateurs ===
Ligne 191: Ligne 200:
 **Créer un utilisateur** **Créer un utilisateur**
  
-<callout type="primary" icon="true">Lorsqu'on crée un utilisateur, le répertoire personnel portant son nom est automatiquement créé  : **/home/**//nom//. Un mot de passe est demandé. Pour des raison se sécurité, ce qui est entré au clavier n'apparaît pas à l'écran.</callout>+<callout type="primary" icon="true">Lorsque l'on crée un utilisateur, le répertoire personnel portant son nom est automatiquement créé  : **/home/**//nom//. Un mot de passe est demandé. Pour des raisons de sécurité, ce qui est entré au clavier n'apparaît pas à l'écran.</callout>
  
 //Commande// //Commande//
Ligne 202: Ligne 211:
 //Commandes// //Commandes//
 <code bash *.bash> <code bash *.bash>
-sudo deluser nom_utilisateur # Supprime l'utilisateur mais pas son répertoire personnel+sudo deluser nom_utilisateur # Supprime l'utilisateurmais pas son répertoire personnel
 sudo deluser --remove-home nom_utilisateur # Supprime l'utilisateur et son répertoire personnel sudo deluser --remove-home nom_utilisateur # Supprime l'utilisateur et son répertoire personnel
 </code> </code>
Ligne 213: Ligne 222:
 sudo passwd nom_utilisateur sudo passwd nom_utilisateur
 </code> </code>
- 
  
 **Afficher la liste des utilisateurs et des groupes** **Afficher la liste des utilisateurs et des groupes**
   * **Source** : <html><a href="https://www.tutos.eu/?n=1509" target="_blank">tuto.eu</a></html>   * **Source** : <html><a href="https://www.tutos.eu/?n=1509" target="_blank">tuto.eu</a></html>
-<callout type="warning" icon="true">Le fichier **/etc/passwd** contient toutes les informations relatives aux utilisateurs (loginmots de passe, ...).</callout>+<callout type="warning" icon="true">Le fichier **/etc/passwd** contient toutes les informations relatives aux utilisateurs (nommot de passe chiffréUID, GID, nom complet, répertoire home utilisateur, connexion Shell (par défaut /bin/bash)).</callout>
  
-//Commande//+  * **Liste des utilisateurs** 
 +//Exemple 1//
 <code bash *.bash> <code bash *.bash>
-grep bash /etc/passwd | cut -f1 -d:+cat /etc/passwd # ou less /etc/passwd si le fichier comprend plusieurs pages
 </code> </code>
 +
 +//Exemple 2//
 +<code bash *.bash>
 +grep bash /etc/passwd | cut -f1 -d: # Filtrage et affichage des noms d'utilisateur ayant une connexion bash dans le fichier passwd
 +</code>
 +
 +
  
 {{ :raspberrypi:linux:groupe.png?nolink|}} {{ :raspberrypi:linux:groupe.png?nolink|}}
 === 4.2 Les groupes === === 4.2 Les groupes ===
-<callout type="warning" icon="true">Chaque utilisateur appartient à un groupe. Si on ne définit rien un groupe du même nom que l'utilisateur est automatiquement créé.</callout+<callout type="warning" icon="true">Chaque utilisateur appartient à un groupe. Si on ne définit rienun **groupe du même nom** que l'utilisateur est automatiquement créé.</callout>
- +
-//Exemple// +
-<code bash *.bash> +
- +
-</code>+
  
 **Créer un groupe** **Créer un groupe**
  
-//Exemple//+//Commande//
 <code bash *.bash> <code bash *.bash>
 sudo addgroup nom_groupe sudo addgroup nom_groupe
Ligne 252: Ligne 263:
 </callout> </callout>
  
-//Commande//+//Commandes//
 <code bash *.bash> <code bash *.bash>
 sudo usermod -g nom_groupe nom_utilisateur # place l'utilisateur nom_utilisateur dans le groupe nom_groupe sudo usermod -g nom_groupe nom_utilisateur # place l'utilisateur nom_utilisateur dans le groupe nom_groupe
Ligne 262: Ligne 273:
 <code bash *.bash> <code bash *.bash>
 sudo usermod -g www-data ruche1 sudo usermod -g www-data ruche1
 +</code>
 +
 +  * **Lister le contenu d'un groupe**
 +//Exemple//
 +<code bash *.bash>
 +cat /etc/group # ou less /etc/group si le fichier comprend plusieurs pages
 +
 +# Exemples d'affichage
 +# www-data:x:33:hickel, leguilloux, bailly, borracino, lefreteur, etc. sont dans le groupe www-data
 +# tsin:x:1029:borracino,lefreteur sont dans le groupe tsin
 +# borracino:x:1030 est dans son propre groupe
 </code> </code>
  
Ligne 270: Ligne 292:
 delgroup nom_groupe delgroup nom_groupe
 </code> </code>
- 
  
 **Afficher la liste des groupes** **Afficher la liste des groupes**
  • raspberrypi/linux/bashp1.1662052464.txt.gz
  • Dernière modification : 2022/09/01 19:14
  • de phil