Les commandes de base de Linux

Crédit [1]

✎ Travail n° 1 Apport de connaissances

  1. 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><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.

  1. 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:~ #
  2. 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
  3. 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…​)
  4. 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

      logout login
    • 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.

  1. 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/
  2. Prendre l’identité de util1 avec la commande su - util1

    On peut savoir le nom du compte sur lequel on est connecté grâce :

    1. à 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)
    2. à la commande whoami :

      util1@localhost:~> whoami
      util1
  3. 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

  4. Faire valider votre travail par le professeur.

💻 Travail n° 4 Chemins absolus et relatifs

  1. 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

  2. Parcourir la page de manuel (1p) de la commande cd puis :

    1. Donner la signification de la commande cd -

    2. 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

🞄  🞄  🞄