Vous êtes sur la page 1sur 6

Commandes usuelles (introduction aux commandes)

Un des utilitaires le plus important sous les systmes UNIX et GNU/Linux est l'interprteur de
commandes (shell). Le "shell", la coquille qui entoure le noyau (kernel), ne fait pas partie du
systme d'exploitation mais il constitue la premire interface avec l'utilisateur (user).

Utilitaire de commandes

Le rle essentiel du shell est d'interprter toutes les commandes et d'excuter des programmes.
Pour cela, il effectue (en boucle infinie) :
la lecture d'une ligne sa comprhension comme une demande d'excution d'un programme
avec d'ventuels paramtres.
le lancement de ce programme avec passage des paramtres d'ventuelles redirections
d'entres-sorties
les excutions de scripts (fichiers de commandes)

Les principaux shells sous GNU/Linux sont les suivants :


bash, Bourne Again SHell : le plus couramment employ sous GNU/Linux. Conforme POSIX,
compatible avec le shell Bourne, cr par le projet GNU FSF, Free Software Fundation.
csh, C SHell : dvelopp Bekerley, compatible avec le shell Bourne. N'offre pas l'dition de
la ligne de commande, mais un historique des commandes.
ksh, Korn SHell : le plus utilis sur l'ensemble des systmes UNIX. Introduit des techniques
modernes dans le Bourne shell avec lequel il est compatible.
sh, Bourne SHell : Bourne est le shell original du nom de son inventeur. Pas d'dition de ligne
de commande.
tcsh, C SHell (amlior) : tcsh est au C Shell ce que bash est au shell Bourne.
zsh, Z SHell : le plus rcent. Compatible avec le shell Bourne.

ex : echo$SHELLaffiche la commande du shell excut


manbashmanuel Bourne Again Shell

Le programme /bin/bash est lanc ds qu'un utilisateur se connecte ou lorsque l'on ouvre une
fentre xtermou un pseudo terminal (console) dans un environnement graphique tels que KDE,
GNOME, XFCE ... fonctionnant avec le serveur X.

(*) Note : dans les exemples qui suivront dans tous les exercices des chapitres suivants, nous
nous rfrerons principalement au GNU BASH, Bourne Again SHell.
Connexion utilisateurs (*) :
Dbut de session et de connexion : une session sous les systmes de type UNIX est donc la
premire tape qui permet de se connecter en saisissant un nom d'utilisateur suivi d'un mot de
passe. Ces derniers sont lus par le programme /bin/login qui les vrifie.
Passez en mode console (si le mode graphique apparat), en pressant [CtrlAltF1...F6]:
l'invite (prompt) du domaine_machinelogin: entrez le nom d'utilisateur[Return]
ex : login:toto[Return]Password: entrez votre mot de passe [Return]

pour revenir au mode graphique, appuyez simultanment les touches [CtrlAltF7|F8]


slectionnez un utilisateur dans liste sinon saisissez le (ex : toto)
choisissez un environnement KDE, GNOME ... et entrez votre mot de passe dans le champ

(*)Note : le systme offre plusieurs comptes pr-installs, tel que root qui est destin aux tches
administratives. En tant que super-utilisateur ou root vous avez tous les privilges et le droit
d'accder tous les fichiers, ce qui peut s'avrer dangereux. N'utilisez ce compte que lorsque que
c'est absolument ncessaire.

Gestion de comptes : passwd, useradd, userdel (*) et su


passwdutilis pour mettre jour la ou les marques dauthentification dun utilisateur
ex : passwdtoto

useradd crer un nouvel utilisateur ou mettre jour linformation par dfaut sur un nouvel
utilisateur
ex : useraddtoto2

userdel modifie les fichiers des comptes du systme, en supprimant toutes les entres qui se
rfrent login. Lutilisateur nomm doit exister.
ex : userdeltoto2

su excute un shell avec un User-ID et un Group-ID diffrents : permet un utilisateur de se


transformer temporairement en un autre utilisateur.

(*) Note : seulement le super-utilisateur ou racine (root) peut utiliser ces commandes.

Visualisation de fichiers : cat, more et less


cat, conCATenate, concatne et affiche sur la sortie standard le contenu de chacun des fichiers
ex : cat/proc/version

morefiltre permettant de se dplacer dans un texte cran par cran


ex : more/proc/slabinfoaffiche page par page

lesssimilaire more, mais permet des mouvements en arrire quen avant dans les fichiers
ex : less/proc/modules
Aide en ligne : man
man, MANual, formate et affiche les pages du manuel en ligne. Avec l'argument k, manpermet
de trouver une commande (en fait, beaucoup trop de commandes) partir d'un mot-cl.
ex : manman affiche les pages du manuel de la commande man
mank printrecherche et affiche les commandes relatives print

Navigation : ls, cd, mkdir, rmdir et umask


lsaffiche le contenu d'un rpertoire courant puis lensemble des fichiers contenus dans chaque
rpertoire indiqu. Des option utiles permettent d'afficher des informations supplmentaires.
ex : lsl(pour long ) affiche
drwxrxrx6totototo4096dc215:27FormationUnixLinux
le d signifie qu'il s'agit d'un rpertoire (directory)
rwrwr1totototo13580dc618:29boot.messages
le dsigne un fichier ordinaire

mkdircre un rpertoire correspondant chacun des noms mentionns


ex : mkdirtiti

rmdirsupprime chaque rpertoire vide indiqu (utiliser rmfr si rpertoire non vide)
ex : rmdirtiti

cdcommande interne de bash : permet de dplacer dans l'arborescence du systme de fichiers


ex : cd rejoint directement le rpertoire personnel dsign aussi par ~,
cdtitiva dans le rpertoire nomm,
cd..dsigne le rpertoire au-dessus pre.

umask commande interne de bash : argument similaire au mode absolu chmod mais la
signification des bits est invers.
ex : umask027 (urwx,gr+wx,o+rwx) inverse de chmod750 (u+rwx,g+rw+x,orwx)

Protections :
La protection d'un fichier ainsi que le nom du propritaire et le nom du groupe du propritaire sont
tablis sa cration et ne peuvent tre modifis que par son propritaire.

La commande umask permet de dfinir un masque de protection des fichiers (et rpertoires) lors
de leur cration. Cette commande se trouve gnralement dans le fichier d'initialisation de votre
shell mais elle peut tre excute tout moment. Le masque est exprim en base 8 (octal).
Le masque de protection le plus utilis est umask022 :
ex : la valeur 022 est soustraite de la permission permanente 111111111.
111111111 : permission permanente
000010010 : on enlve les bits dont on ne veut pas
111101101 : 755
umask022permet de crer des fichiers dont la protection est rwxrxrx
(*) Note : pour les fichiers ordinaires, umask022 donnera une protection de type rwrr,
car la possibilit d'excution n'est pas autorise sur les fichiers ordinaires.

La forme symbolique de la commande umask est beaucoup plus agrable l'utilisation que la
forme octale. De plus elle est totalement cohrente avec la forme symbolique du chmod,
prfrer donc :
ex : [toto@domaine~]$umasku=rwx,g=rx,o=rx
[toto@domaine~]$umask affiche0022
[toto@domaine~]$umaskS afficheu=rwx,g=rx,o=rx

Utilisateur :
Lorsque plusieurs personnes ont accs un systme, il est ncessaire que l'administrateur
systme gre les utilisateurs. Pour cela, les commandes usuelles telles que usermod, groupmod
et les fichiers configurer doivent tre connus. Il s'agit des fichiers : /etc/passwd et /
etc/group.

Le fichier /etc/passwd contient des attributs et les informations relatives aux utilisateurs
(users) ; login, mots de passe (password). Il faut toujours le laisser librement accessible en lecture
tous car certaines applications l'emploient. Seul le super-utilisateur (suou root) doit pouvoir le
modifier. Il faut donc modifier les droits de ce fichier de faon ce qu'il soit en lecture seule pour
les autres utilisateurs.
ex : chmod644/etc/passwd
Ce fichier possde un format spcial permettant de reprer chaque utilisateur ; chacune de ses
lignes prend le format suivant :
toto:x:500:500:Toto:/home/toto:/bin/bash

Description :
nom_du_compte : mot_de_passe : numero_utilisateur : numero_de_groupe : commentaire :
repertoire_de_connexion : programme_de_demarrage

Sept champs sont explicits spars par le caractre ":" :


le nom_du_compte de l'utilisateur
le mot_de_passe de l'utilisateur est en fait reprsent par un simple caractre 'x' (*)
l'entier qui identifie l'utilisateur pour le systme d'exploitation (UID=User ID, identifiant
utilisateur)
le numro_du_groupe est l'entier qui identifie le groupe de l'utilisateur (GID=Group ID,
identifiant de groupe)
le commentaire dans lequel on peut retrouver des informations sur l'utilisateur ou simplement
son nom rel
le rpertoire_de_connexion qui est celui dans lequel il se trouve aprs s'tre connect au
systme
le programme_de_dmarrage est la commande excute aprs connexion au systme (c'est
frquemment un interprteur de commandes)
ex : cat/etc/passwd
(*) Note : un utilitaire spcial appel /usr/sbin/pwconv place les mots de passe dans le fichier
/etc/shadow dont les permissions sont plus restrictives. Les mots de passe situs dans ce
fichier sont chiffrs avec un mode de chiffrement non-rversible. C'est dire qu'il n'existe pas de
moyen connu de le retrouver directement, partir de la version chiffre. Il est donc inutile de
l'diter et de remplacer le champ mot_de_passe_crypte en tapant directement le mot de passe,
cela conduirait uniquement au blocage du compte.
ex : cat/etc/shadowaffiche les mots de passe crypts
toto:mot_de_passe_crypte:12735:0:99999:7:::

Lorsqu'un utilisateur se connecte, le programme login compare le mot de passe saisi par
l'utilisateur (aprs l'avoir chiffr) celui qui est dans le fichier shadow. S'ils sont diffrents, la
connexion ne peut tre tablie. Pour interdire l'utilisation, il suffit de remplacer le mot_de_passe
(/etc/passwd) par une toile "*".

Les accs un compte peuvent ventuellement tre ouverts en laissant le champ mot_de_passe
(/etc/passwd) vide. Toute personne voulant se connecter avec ce compte pourra alors le faire.

Pour pouvoir modifier le mot de passe d'un compte grce la commande passwd, il faut tre soit
administrateur systme, soit propritaire du compte (le systme demandera alors l'utilisateur
d'entrer l'ancien mot de passe avant de lui demander d'entrer 2 fois son nouveau mot de passe).

UID : identifiant unique de chaque compte utilisateur (user). Les nombres de 0 99 sont
frquemment rservs des comptes propres la machine. Les valeurs suprieures 100 sont
elles rserves aux comptes utilisateurs (users).

GID : identifiant de groupe. Le groupe (group) par dfaut porte le numro 500. Cet identifiant est
utilis en relation avec les droits d'accs aux fichiers. Cette question ne vous proccupera que si
votre systme comporte plus d'un seul groupe d'utilisateurs. Il faudra alors se proccuper du
fichier /etc/group.

Il est possible partir du shell de modifier l'interprteur de commandes. Pour ceci, il faut utiliser la
commande chsh ou passwd s. Linux cherche alors dans le fichier /etc/shells le
programme que vous avez spcifi. Seules les commandes prsentes dans ce fichier seront
acceptes et remplaceront la valeur actuelle du champ programme_de_demarrage. Ces
restrictions ne s'appliquent pas au compte du super-utilisateur root.
ex : chshs/bin/bash

Assurez-vous que les droits d'accs du fichier /etc/shellssont les mmes que pour le fichier
/etc/passwd.

Le super-utilisateur ne se nomme pas obligatoirement root. Pour le changer, il suffit de


remplacer le nom du compte root par celui dsir.
Un compte privilgi est un compte dont l'identifiant (UID, User ID) vaut zro.
Groupe utilisateurs :
Le fichier /etc/group contient la liste des utilisateurs appartenant aux diffrents groupes. En
effet, lorsque de nombreux utilisateurs peuvent avoir accs au systme, ceux-ci sont frquemment
rassembls en diffrents groupes ayant chacun leurs propres droits d'accs aux fichiers et aux
rpertoires. Ce fichier possde un format spcial permettant de reprer chaque groupe
d'utilisateurs ; chacune de ses lignes prend le format suivant :
root:x:0:root
bin:x:1:root,bin,daemon

Description :
nom_du_groupe : champ_special : numero_du_groupe (GID) : liste_utilisateurs (membre1,
membre2)

Il se compose de diffrents champs spars par ":" :


le nom_du_groupe d'utilisateurs
le champ_spcial est prvu pour le mot de passe encrypt du groupe. Si ce champ est vide
(presque toujours), aucun mot de passe nest ncessaire
le numro_du_groupe est le numro (GID, lID numrique du Groupe) qui fait le lien entre les
fichiers /etc/groupet /etc/passwd
la liste_utilisateurs reprsente tous les noms des membres du groupe, spars par des virgules
ex : cat/etc/group

Lorsque l'on utilise la commande ls avec l'option l, le numro de groupe est affich avec le
numro de l'utilisateur qui appartient le fichier (ou le rpertoire). Ce numro unique correspond
un nom de groupe unique (souvent 8 caractres max.).

Un mme utilisateur peut apparatre dans plusieurs groupes. Lorsqu'il se connecte au systme, il
appartient au groupe spcifi dans le fichier /etc/passwd (le champ GID). Il peut en changer
l'aide de la commande newgrp. Des droits d'accs aux fichiers sont alors dfinis.
Les protections du fichier doivent empcher sa modification par les utilisateurs non privilgis.

Pour ajouter un groupe, l'administrateur peut modifier le fichier /etc/group l'aide d'un diteur
de texte. Il peut galement utiliser la commande addgroup ou groupadd (pas toujours
prsentes).
Dans le premier cas, il aura uniquement la ou les lignes correspondant aux groupes, ajouter.
ex : titi:x:502:toto

Pour ajouter un utilisateur un groupe, il suffit d'diter le fichier /etc/group et de rajouter ce


nom au bout de la ligne en sparant le nom des membres par une virgule.
Pour supprimer un groupe, il suffit d'diter le fichier /etc/group et d'effacer la ligne
correspondante. Mais attention, il ne faut pas oublier de changer dans le fichier /etc/passwd les
numros (GID) du groupe supprim, si des utilisateurs y appartenaient. Il est galement essentiel
de chercher les fichiers et rpertoires de ce groupe pour le changer (dans le cas contraire les
fichiers et rpertoires risquent d'tre inaccessibles).

Vous aimerez peut-être aussi