T.P. Linux suite
Permissions d'accès aux fichiers :
Tout fichier du système appartient à la fois à un utilisateur (son "propriétaire") et à un groupe (le groupe propriétaire).
Ainsi, pour chaque fichier le monde de ses utilisateurs potentiels est partagé en 3 catégories, nommées :
- u, l'utilisateur normal, son propriétaire,
- g, son groupe, ensemble d'utilisateurs ayant parfois des "permissions" particulières,
- o, tous les (others) autres utilsateurs.
Droits à la création
- Heureusement, une règle générale simple s'applique à la création de tout nouveau fichier (ou répertoire)
son propriétaire est l'utilisateur (humain ou système) qui l'a créé, son groupe est le groupe primaire de ce même utilisateur
Les droits classiques
Ils s'appliquent par niveau.
En voici la signification :
symbole - sur un fichier normal - sur un répertoire
- absence de droit absence de droit
r lecture (lire, copier le contenu) visibilité des fichiers directement contenus
w écriture (modifier le contenu) création ET destruction des fichiers directement contenus
x exécution entrée et parcours du répertoire.
Les droits sont consultables à l'aide la commande
ls -al
Il est possible de réaliser des alias de commande, par exemple :
On souhaite que la commande précédente soit accessible directement en saisissant la nouvelle commande
ll
Pour cela vous pouvez saisir :
alias ll='ls -al'
Testez.
Mais que se passe t'il si on relance la machine ?
Pour rendre la commande permanente il vous faut la rajouter à votre fichier
.bashrc
Créer deux nouveaux utilisateurs et créer un alias pour l'un deux.
Question 1
Donnez la syntaxe pour créer un utilisateur.
Quels sont les répertoires qui sont associés à ce nouvel utilisateur ?
Quel est son répertoire de travail ?
Vérifiez que l'alias fonctionne pour l'un mais pas pour l'autre.
Description de la ligne
- le 1er caractère indique la nature du fichier
- (- fichier normal, d un fichier répertoire, l un lien)
- le système de droits est spécifié symboliquement par
- les 9 attributs suivants, correspondants aux 3 catégories d'utilisateurs du fichier.
- ...|...|...
- u g o
- La section u fixe les droits accordés au propriétaire du fichier.
- La section g fixe les droits accordés aux utilisateurs faisant partie du groupe auquel appartient le fichier.
- La section o fixe les droits des autres utilisateurs.
- nombre de liens sur le fichier : 1 signifie que le fichier n'a aucun lien qui pointe vers lui
- 2 (ou plus) signifiant qu'il existe un lien (ou plus) vers lui.
- le nom du propriétaire du fichier
- le nom du groupe propriétaire
- la date de dernière modification
- le nom complet du fichier
Les droits :
- r lecture
- w écriture
- x exécution
Question 2
Que représentent ces droits pour un répertoire ?
Vous pourrez réaliser une recherche sur Internet et réaliser des tests que vous exposerez clairement.
Pour obtenir les informations sur un fichier, vous pouvez saisir par exemple :
stat /etc/passwd
Commande de changements des droits :
- Changement de propriétaire : chown
- Changer le groupe propriétaire : chgrp
- Changer les permissions sur les fichiers : chmod
Question 3
Créer un fichier test.run dans lequel vous mettrez plusieurs commandes du shell.
Rendez ce fichier exécutable puis tester.
Rendez compte.
Question 4
Donnez plusieurs exemples d'utilisations de ces commandes en faisant apparaître l'utilité du paramètre
-R
On donnera les différentes syntaxes possibles de la commande
chmod (ajout d'un droit ou retrait d'un droit.
Dans quelle base sont codés les droits ?
Question 5
Quelle commande utiliser pour copier un répertoire avec ses fichiers, en conservant les droits ?
Construire un exemple.
Le masque de protection umask
Voici les règles simples de propriété qui s'appliquent à la création d'un fichier ou d'un répertoire :
- son propriétaire est l'utilisateur qui l'a créé,
- son groupe est le groupe primaire de ce même utilisateur.
Mais quelles sont les permissions attribuées par défaut à l'utilisateur propriétaire,
au groupe propriétaire et à tous les autres ?
Les permissions maximales accordées par un fichier et un répertoire sont 666 (-rw-rw-rw-) et 777 (-rwxrwxrwx).
On peut restreindre ces permissions lors de sa création.
C'est le rôle de la commande umask de fixer les permissions masquées,
autrement dit les droits non accordés aux fichiers et répertoires lors de leur création.
Exemple de calcul de permissions effectives,
affectées lors de la création d'un répertoire, par un utilisateur dont le masque de protection est 027
| 777 = | 111 111 111 permissions maxi = rwx rwx rwx |
| - | 027 = | 000 010 111 masque de protection |
| = | 750 = | 111 101 000 permissions effectives = rwx r-x
|
La commande umask
- umask affiche le masque de l'utilisateur actif
umask -S affiche les permissions correspondantes au masque, sous forme symbolique.
umask masque fixe les permissions ultérieures de création des fichiers de l'utilisateur actif,
conformément à masque, en notation octale.
Attention ! le changement ne s'applique qu'à la présente session.
Pour la rendre permanente, on peut intervenir sur un fichier profile :
Dans le fichier profil général
/etc/profile, on peut modifier la règle habituelle :
if [ $UID == 0 ] ; then umask 022 ; else umask 077 ; fi
Pour agir au niveau des utilisateurs, ajouter la ligne umask masque dans le fichier de profil personnel $HOME/.bash_profile
Remarque : Il semble que vous deviez intervenir sur le fichier /etc/login.defs
Question 6
- Quelles sont les valeurs des masques par défaut de root et des autres utilisateurs ? Où se trouve ces informations ?
Créer un nouvel utilisateur pour tester (c'est à dire modifier).
Question 7
Sur votre machine DebianMe il existe un utilisateur
test.
Supposons que l'utilisateur
test oublie son mot de passe, comment faire pour le dépanner et pour qu'il puisse de nouveau accéder à son compte ?
- Première méthode qui utilise le fichier /etc/shadow qui contient les mots de passe.
- Seconde méthode : utiliser la commande qui permet de changer le mot de passe d'un utilisateur.
Décrivez la mise en œuvre de chacune des méthodes et testez.
Quel est l'avantage que procure un mot de passe crypté ?
Quel sont les dangers de ce mode de fonctionnement ? Expliquez.
Comment supprimer le mot de passe de root ?
Proposez au moins une manière (théorique) d'y parvenir.
Remettez le mot de passe
test à l'utilisateur
test.
Si vous utilisez la commande que vous avez utilisée dans la seconde méthode, quel différence voyez-vous dans son utilisation ?
Le droit SUID
- Sa présence permet à un fichier exécutable de s'exécuter sous une autre identité
et donc les droits de son propriétaire, à la place des droits de l'utilisateur actuel qui l'exécute.
- Il s'agit d'un dispositif de sécurité essentiel qui autorise un utilisateur quelconque (par rapport à la commande) à bénéficier de droits plus étendus que les siens (souvent ceux de root), pour exécuter la commande agir sur d'autres fichiers indispensables, juste le temps et sous le contrôle de l'exécution de la commande, sans qu'il soit nécessaire d'attribuer ces droits en permanence sur les fichiers.
Ce droit est noté symboliquement
s et se positionne à la place du
x du propriétaire
u (mais sans écraser le droit
x)
Sa valeur octale est 4000
Exemple
- Examiner les droits du fichier exécutable /usr/bin/passwd, qui permet de (re)définir un mot de passe et le comparer à ceux du fichier /etc/shadow qui contient les mots de passe cryptés.
Observez :
ls -al /etc/shadow
-rw-r
root root shadow
ls -al /usr/bin/passwd
-rwsr-xr-x root root /usr/bin/passwd
- Comme le droit x est accordé à tous, chacun peut donc exécuter la commande passwd,
mais personne (sauf root) ne possède par lui-même le droit d'écriture dans le fichier
/etc/shadow qui doit le stocker.
- Le positionnement du SUID permet d'agir en tant que root lors de la demande d'accès au fichier et comme root a tous les droits,
il est alors possible de mettre à jour ce fichier des mots de passe.
Question 8
- Expérimentez ce fonctionnement en créant les fichiers nécessaires et en utilisant l'utilisateur test.
Rendez-compte.
Compléments.