Les commandes de base de Linux Crédit [1] ✎ Travail n° 1 Apport de connaissances Consulter le document Introduction à Linux pour une présentation succinte de Linux afin de pouvoir poursuivre l’atelier. 💻 Travail n° 2 : Créer son compte personnel Après s’être authentifié, Linux sauvegarde tous les éléments de profil utilisateur (préférences etc…) dans le répertoire /home/<user> où <user> désigne le login de l’utilisateur c.-à-d. son nom de connexion à Linux. Ce répertoire est appelé le home directory ou, en français, le répertoire d’accueil. La création d’un compte utilisateur implique de : créer le répertoire d’accueil pour cet utilisateur (→ /home/<utilisateur> ) dans lequel seront stockés tous les éléments de son profil créer l’utilisateur en spécifiant : son login c.-à-d. son nom de session/connexion le chemin de son répertoire d’accueil son mot de passe L’objectif de ce travail est de vous faire créer votre propre compte utilisateur sur OpenSUSE. Rappel Ne pas oublier de reporter les commandes saisies et leurs résultats dans le compte-rendu. En étant connecté en tant qu’administrateur (→ root), créez le répertoire de votre compte selon les exigences suivantes : il doit se trouver dans le répertoire /home il portera votre nom de login (→ votre nom de famille) le propriétaire (root pour l’instant) aura tous les droits dessus. les membres du groupe par défaut (root pour l’instant) pourront le lire et parcourir mais pas écrire dedans. tous les autres n’auront aucun droit. Solution localhost:~ # mkdir /home/skywalker localhost:~ # chmod 0750 /home/skywalker localhost:~ # ls -l /home total 0 drwxr-x--- 1 root root 0 Sep 24 10:20 skywalker localhost:~ # En étant connecté an tant qu’administrateur (→ root), créer l’utilisateur associé à votre compte avec la commande useradd. Pour ce faire, consulter préalablement la page de manuel de cette commande (→ man useradd) afin de trouver les options qui permettent de spécifier le mot de passe et le chemin du répertoire d’accueil. En cas d’erreur dans la création de l’utilisateur avec la commande useradd, on peut utiliser la commande usermod pour modifier les caractéristiques du compte ou simplement le détruire avec la commande userdel -rf <user>. Solution localhost:~ # useradd -M -d /home/skywalker -N -g users -c "Luc Skywalker" skywalker (1) localhost:~ # passwd skywalker (2) New password: Retype new password: passwd: password updated successfully 1 Crée l’utilisateur skywalker dont le nom complet est Luc Skywalker (→ option -c). Son répertoire d’accueil est /home/skywalker (→ option -d) mais n’est pas créé (→ option -M) puisque cela a été fait à la question précédente. Enfin, son groupe par défaut sera users (→ option -g) et aucun groupe portant son nom ne sera créé (→ option -N) 2 Attribue un mot de passe à l’utilisateur skywalker Modifier enfin le propriétaire (→ chown) et le groupe (→ chgrp) de votre répertoire personnel afin qu’il vous appartienne et qu’il soit affecté au groupe users (→ groupe prédéfini dans OpenSUSE) Résultat attendu pour l’utilisateur Luc Skywalker localhost:~ # ls -ld /home/skywalker/ drwxr-x--- 1 skywalker users 158 Sep 22 12:26 /home/skywalker/ Solution localhost:~ # chown skywalker /home/skywalker/ (1) localhost:~ # chgrp users /home/skywalker/ (2) localhost:~ # chown skywalker:users /home/skywalker/ (3) localhost:~ # ls -ld /home/skywalker/ drwxr-x--- 1 skywalker users 0 Sep 24 10:20 /home/skywalker/ localhost:~ # 1 On change le propriétaire du répertoire 2 On change le groupe affecté au répertoire 3 On peut changer à la fois le propriétaire et le groupe du répertoire avec le commande chown (→ voir la syntaxe dans la page de manuel : chown [OPTION]… [OWNER][:[GROUP]] FILE…) Après avoir exécuté ce travail, s’assurer de pouvoir se connecter à Linux sous son nom. Pour faire cette vérification, on peut : soit quitter la session graphique en cours pour se reconnecter ensuite sur son compte soit utiliser le terminal : localhost:~ # sudo su --login skywalker (1) skywalker@localhost:~> pwd (2) /home/skywalker skywalker@localhost:~> exit (3) logout localhost:~ # 1 On prend provisoirement l’identité de l’utilisateur skywalker 2 on affiche le chemin absolu de son répertoire d’accueil (→ raccourci ~) 3 On reprend son identité d’origine (→ root dans ce cas là) Avec cette 2ème alternative on ne vérifie cependant pas le mot de passe 💻 Travail n° 3 : Créer une arborescence de répertoires pour un projet On souhaite créer une arborescence de répertoires permettant à un groupe de travail de s’échanger des données. Rappel Ne pas oublier de reporter les commandes saisies et leurs résultats dans le compte-rendu. Créez l’arborescence de répertoires pour le projet selon les conditions suivantes : Le groupe de travail se nomme grtrav. Le créer avec la commande groupadd avec l’option -f. Les membres du groupe grtrav se nomment util1, util2, util3. Les créer avec les commandes useradd et passwd de façon à ce que : ils appartiennent au groupe grtrav par défaut (→ option -g) leurs répertoires personnels soit créés automatiquement (→ option -m) leurs mots de passe soient leurs propres noms d’utilisateur Le répertoire de tête s’appelle projet. Il se trouve à la racine du système de fichiers (→ dans /) et son propriétaire est root Seuls les membres du groupe auront le droit de lire et parcourir /projet. L’administrateur aura tous les droits. Chaque membre du groupe grtrav dispose d’un sous répertoire de travail personnel qui porte son nom préfixé par wrk- (→ wrk-util1, wrk-util2 …) et dans lequel il peut tout faire mais que les membres de grtrav ne peuvent que traverser. Les membres du groupe grtrav auront un accès en lecture seule dans le sous répertoire public de chacun d’eux. Le propriétaire aura tous les droits. Le répertoire projet comportera un répertoire nommé commun — propriété de root — sur lequel lui et tous les membres du groupe grtrav auront tous les droits. Résultat attendu : localhost:~ # ls -ld /projet (1) drwxr-x--- 1 root grtrav 0 Sep 24 11:58 /projet localhost:~ # tree -pug /projet (2) /projet ├── [drwxrwx--- root grtrav ] commun ├── [drwx--x--- util1 grtrav ] wrk-util1 │ └── [drwxr-x--- util1 grtrav ] public ├── [drwx--x--- util2 grtrav ] wrk-util2 │ └── [drwxr-x--- util2 grtrav ] public └── [drwx--x--- util3 grtrav ] wrk-util3 └── [drwxr-x--- util3 grtrav ] public 7 directories, 0 files 1 On affiche les caractérisitiques de /projet 2 On affiche l’arborescence des sous-répertoires présents sous /projet Solution localhost:~ # groupadd -f grtrav localhost:~ # useradd -N -g grtrav -m util1 localhost:~ # passwd util1 localhost:~ # useradd -N -g grtrav -m util2 localhost:~ # passwd util2 localhost:~ # useradd -N -g grtrav -m util3 localhost:~ # passwd util3 localhost:~ # mkdir /projet localhost:~ # chmod 0750 /projet localhost:~ # chgrp grtrav /projet localhost:~ # cd /projet localhost:/projet # mkdir commun/ wrk-util1/ wrk-util1/public wrk-util2/ wrk-util2/public wrk-util3/ wrk-util3/public localhost:/projet # chgrp grtrav commun/ wrk-util1/ wrk-util1/public wrk-util2/ wrk-util2/public wrk-util3/ wrk-util3/public localhost:/projet # chown util1 wrk-util1/ wrk-util1/public/ localhost:/projet # chown util2 wrk-util2/ wrk-util2/public/ localhost:/projet # chown util3 wrk-util3/ wrk-util3/public/ localhost:/projet # chmod 0770 commun/ localhost:/projet # chmod 0710 wrk-util1/ localhost:/projet # chmod 0750 wrk-util1/public/ localhost:/projet # chmod 0710 wrk-util2/ localhost:/projet # chmod 0750 wrk-util2/public/ localhost:/projet # chmod 0710 wrk-util3/ localhost:/projet # chmod 0750 wrk-util3/public/ Prendre l’identité de util1 avec la commande su - util1 On peut savoir le nom du compte sur lequel on est connecté grâce : à l’analyse de l’invite de commande : util1@localhost:~> (1) 1 util1 est le nom du compte courant et le ‘>’ indique que c’est un compte standard (le ‘#’ indique un compte administrateur) à la commande whoami : util1@localhost:~> whoami util1 Vérifier les droits pour cet utilisateur : impossibilité de créer/détruire un répertoire/fichier dans /projet possibilité de se rendre dans tous les répertoires et sous-répertoires de /projet/ (ex. : /projet/wrk-util2, /projet/wrk-util2/public, projet/commun, …) impossibilité de lister le contenu des répertoires /projet/wrk-util2/ et /projet/wrk-util3 impossibilité de créer/supprimer un fichier/répertoire ailleurs que dans /projet/util1 et les répertoires /projet/wrk-utilN/public/, /projet/commun Faire valider votre travail par le professeur. 💻 Travail n° 4 Chemins absolus et relatifs Donner les commandes à saisir par util1 pour se déplacer dans le répertoire cible depuis le répertoire courant indiqué en utilisant le type de chemin spécifié Répertoire courant Répertoire cible Type chemin /home/util1/ /home/util1/bin/ relatif /home/util1/bin/ /projet/commun absolu /projet/commun/ /home/util1/bin absolu avec ‘~’ /home/util1/ /projet relatif /projet/ ~util2 absolu /home/util2/ /projet/wrk-util3/public absolu /projet/wrk-util3/public /projet/wrk-util1 relatif Parcourir la page de manuel (1p) de la commande cd puis : Donner la signification de la commande cd - Dans quel répertoire se déplace-t-on si on exécute cette commande suite à celles exécutées pour répondre à la question 1) ? 1. M.Antoine est l’auteur de la version initiale de ce document 🞄 🞄 🞄 Linux Pratique du shell Linux