Académique Documents
Professionnel Documents
Culture Documents
(LINUX)
Par: Dr TCHOUPE TCHENDJI Maurice
Université de Dschang
Objectif
2
Objectif
Utiliser Linux
Installation
Utilisation de linux en ligne de commandes
Commandes relatives à la gestion:
Du SF
Des processus,
Des utilisateurs
Des E/S
«
Programmation en Shell
A partir de la ligne de commandes
Scripts Shell (édition, exécution)
Commande find
Donner la syntaxe commentée d'utilisation de la
commande find
On désire utiliser la commande find pour effectuer les
opérations suivantes:
rechercher les répertoires de nom "cron" sur le système
rechercher les fichiers tubes sur le système
rechercher les répertoires accessibles en écriture pour les
autres
rechercher et détruire tous les fichiers d'extension "core" sur
le système.
Cahier de TP: Système d'exploitation (Linux) // Par: Dr TCHOUPE T. Maurice (UDS)
'URLWVG·DFFqV
Essayer de supprimer ou de modifier le fichier /etc/passwd. Que se passe-t-il ?
Expliquer la situation.
$O·DLGHGHODFRPPDQGHLGYpULILHUYRWUHLGHQWLWpHWOH V JURXSH V DXTXHOYRXV
appartenez.
Unix possède des mécanismes permettant au propriétaire d'un fichier d'en
protéger le contenu en définissant des droits d'accès : - autorisation de
lecture (r), - autorisation d'écriture (w), - autorisation d'exécution
ou d'accès (pour un répertoire) (x)
Pour permettre le partage de fichiers (Unix est multi-utilisateur), Unix définit la
notion de groupes d'utilisateurs. Ainsi il est possible de restreindre l'accès d'un
fichier a tel ou tel groupe.
Expliquer en détail les résultats fournis par un ls -al
Pour savoir à quels groupes appartient un utilisateur, tapez groups nom-user
Pour changer les droits d'accès d'un fichier, il vous faudra déjà être propriétaire
GHFHILFKLHU«
'URLWVG·DFFqV
La commande Unix est chmod permissions fichier. Le paramètre permission peut
être codé de 2 façons :
- en octal : chaque droit (r,w,x) équivaut à un bit (--- = 0 ; rwx = 7). Vous pouvez donc
représenter avec 3 octets les droits d'accès de l'utilisateur, du groupe et de l'ensemble
des utilisateurs.
- symbolique : vous indiquez directement :
les personnes concernées (u = propriétaire, g = groupe , o = autres , a = ugo = tous)
si vous ajoutez (+), supprimez (-) ou donnez de manière absolue (en l'enlevant aux autres) la
permission (r, w, x)
Exemple:
chmod 750 fichier donne tous les droits au propriétaire, les droits de lecture et d'exécution
au groupe et aucun droit aux autres.
chmod g+w fichier ajoute le droit d'accès au groupe
Créer les alias suivants (à rajouter ensuite dans votre environnement) :
exe pour rendre un fichier exécutable par son propriétaire
visible pour rendre un fichier lisible par tous
invisible pour annuler l'opération précédente
deprotege pour rendre un fichier modifiable par son propriétaire
protege pour annuler cette opération
'URLWVG·DFFqV
A chaque fois que vous créez un fichier, celui-ci possède certains droits par défauts. La
commande umask permet de fixer ces droits. Sa syntaxe est umask complement-
permissions où l'argument n'est pas la représentation octale des droits mais leur
complément !
Exemple:
umask 000 GRQQHUDWRXVOHVGURLWVjWRXWOHPRQGHSRXUWRXVYRVQRXYHDX[ILFKLHUV« jpYLWHU
umask 027 donnera tous les droits au propriétaire, les droits de lecture et d'exécution au groupe et
aucun droit aux autres.
La valeur de umask que vous possédez (tapez juste umask) est réglée dans le fichier de
configuration /etc/profile. Que faut-il faire pour que vous en changiez automatiquement à chaque
connexion ?
Créer un petit fichier texte (de contenu quelconque), qui soit lisible par tout le monde, mais pas
modifiable (même pas par vous).
Créer un répertoire nommé « secret », dont le contenu soit visible uniquement par vous même. Les
fichiers placés dans ce répertoire sont-LOVOLVLEOHVSDUG·DXWUHVPHPEUHVGHYRWUHJURXSH"
Créer un répertoire nommé « connaisseurs » tel que les autres utilisateurs ne puissent pas lister son
contenu mais puissent lire les fichiers qui y sont placés. On obtiendra :
$ ls connaisseurs
ls : connaisseurs: Permission denied
$ cat connaisseurs/toto
OHFRQWHQXGXILFKLHUWRWR V·LOH[LVWH !
'URLWVG·DFFqV
Soient la série de commandes suivante saisie en l'invite de
commandes:
$ umask 022
$ touch nouveauFichier
$ mkdir nouveauRepertoire
Quels sont les droits attribués aux fichiers "nouveauFichier" et au
répertoire "nouveauRepertoire"?
Positionner le masque (commande umask) tel qu'à la création
des fichiers, ils aient les droits rw-r-----
Quels seront alors les droits attribués aux répertoires
nouvellement créés?
Cahier de TP: Système d'exploitation (Linux) // Par: Dr TCHOUPE T. Maurice (UDS)
Utilisation de linux en ligne de commande
13
/HVGURLWVG·HQGRVVHPHQWHWOHsticky bit.
Créer dans rep3 deux fichiers file1 et file2 ayant les droits respectifs suivant : rw----r-- et rwx---r-x
Positionner les sticky bit de ces deux fichiers et lister à nouveau leurs droits ; Commenter.
$WWULEXHUOHGURLWG·HQGRVVHPHQWVXUFKDFXQGHVGHX[ILFKLHUVHWOLVWHUjQRXYHDXOHVGRLWV ; Commenter.
Modifier les droits du rep3 en lui attribuant les droits : rwxr-xr-x
Exécuter les commandes (répertoire courant = vous)
$ echo ´ touch /home/<nom_compte_courant>/vous/rep1/rep3/new-file ´!FRPPDQGH
#(&HFLSHUPHWGHFUpHUOHILFKLHUGHFRPPDQGH´FRPPDQGHµ
$ chmod +x commande DWWULEXWLRQGXGURLWG·H[pFXWLRQ
Connectez vous comme un nouvel utilisateur (sous un autre nom) et essayer de créer un fichier dans rep3
$ touch /home/rep personnel/vous/rep1/rep3/newFile (1)
Saisir la commande
$ /home/rep personnel/vous/rep1/rep3/commande (2)
Revenir dans le compte <rep SHUVRQQHO!HWRFWUR\HUOHGURLWG·HQGRVVHPHQWGXSURSULpWDLUHDXILFKLHU
commande .
Dans ce compte, saisir la commande suivante dans le rep vous :
$ chmod +s commande
Dans le nouveau compte exécuter les commandes (1) et (2) .
Interpréter.
9DULDEOHVG·HQYLURQQHPHQW
Étudier la séquence de commandes shell suivante :
TRUC=machin # cree la variable TRUC
echo $TRUC # O·DIILFKH
bash # lance un nouveau shell
echo $TRUC # affiche la valeur de TRUC
TRUCBIS=hoho # une autre variable
echo $TRUCBIS
TRUC= machinTruc
echo $TRUC
exit # termine le second shell
echo $TRUC
echo $TRUCBIS # ??
Les processus
A l'aide de la commande ps, afficher la liste de tous les processus tournant sur votre
machine, avec les informations suivantes :
USER nom de l'utilisateur propriétaire du processus
PID numéro d'identification
%CPU
%MEM
STAT Etat
START Date de début
TIME
COMMAND Commande utilisée pour lancer ce processus
A quoi correspond l'information TIME ?
Quel est le processus ayant le plus utilisé le processeur sur votre machine ?
Quel a été le premier processus lancé après le démarrage du système ?
A quelle heure votre machine a-t-elle démarré ?
Pouvez-vous établir le nombre approximatif de processus créés depuis le démarrage de
votre machine ?
Les processus
Sous UNIX, chaque processus (excepté le premier) est
créé par un autre processus, son processus père. Le
processus père d'un processus est identifié par son
PPID (Parent PID).
Trouver une option de la commande ps permettant
d'afficher le PPID d'un processus.
Donner la liste ordonnée de tous les processus
ancêtres de la commande ps en cours d'exécution.
Reprendre la question précédente avec la commande
pstree.
Les processus
Essayez la commande top, qui affiche les mêmes
informations que ps mais en rafraîchissant
périodiquement l'affichage. La touche ? permet
d'afficher un résumé de l'aide de top.
Afficher dans top la liste de processus triée par
occupation mémoire (resident memory) décroissante.
Quel est le plus « gros » processus sur votre machine
?
A quoi correspond-il ? (rappel: vous pouvez utiliser
man truc pour découvrir ce que fait truc...).
Scripts Shell
24
L'instruction cas:
écrire un programme qui attend au plus deux
paramètres et tel que :
6·LOHVWDSSHOpDYHFSDUDPqWUHVLOUHQYRLHOHFDWDORJXH
de travail
$YHFXQSDUDPqWUHLOWHVWHV·LOV·DJLWG·XQILFKLHUHWOHFDV
pFKpDQWLODIILFKHVRQFRQWHQXjO·pFUDQVLQRQV·LOV·DJLWG·XQ
FDWDORJXHLODIILFKHODOLVWHGHVILFKLHUVTX·LOFRQWLHQW
6·LOHVWDSSHOpDYHFGHX[SDUDPqWUHVLOYpULILHTX·LOV·DJLW
de deux fichiers ordinaires et fait une copie du premier
GDQVOHVHFRQGV·LOQ·H[LVWHSDVGpMj
7RXWHDXWUHVLWXDWLRQHQWUDvQHO DIILFKDJHG·XQPHVVDJH
d'erreur
Scripts Shell
26
until(who|grep x)
do
sleep 60
done
Quel(s) commentaire(s) pouvez vous faire?
Scripts Shell
28
La récursion
Lire, comprendre, saisir et interpréter le script
précédent.
Expliquer pourquoi on y utilise des références absolue
Exemple Description
alias dir=ls -l Il suffira de taper "dir" pour consulter la liste des fichiers avec leurs droits
unalias dir Supprime l'alias de nom "dir"
awk nom de fichier
cal 09 1996 Affiche le calendrier du mois de Septembre 1996
cat exemple.c Liste le contenu du fichier de nom "exemple.c"
cd programmes Se déplace dans le répertoire de nom "programmes"
Donne tous les droits au propriétaire du fichier, et une simple lecture au
chmod 744 exemple.c
groupe et à l'univers
Compresse le fichier de nom "exemple.c", en écrasant un fichier préexistant
compress -f exemple.c
s'il existe
uncompress exemple.c Décompresse le fichie r"exemple.c"
cp exemple.c toto.c Crée le fichier de nom "toto.c" identique au fichier "exemple.c"
date Affiche la date courante
Compare "fichier1" et "fichier2" en affichant 3 lignes avant et 3 lignes après
diff -c fichier1 fichier2
chaque différence
Cahier de TP: Système d'exploitation (Linux) // Par: Dr TCHOUPE T. Maurice (UDS)
ln -s exemple.c toto.c crée un lien symbolique sur le fichier "exemple.c", de nom "toto.c"
rlogin -l martin champagne Établit une connexion sur la machine champagne, sous le login de martin
sort -r TP1.c Affiche le fichier "TP1.c", les lignes étant triées en ordre inverse