Vous êtes sur la page 1sur 15

Administration système et sécurité sous LINUX

Les permissions étendues et attributs

Par : L’équipe
administration et
sécurité LINUX

1 1
Les droits étendus (SUID,SGID) (1/3)

Il est possible d’établir des droits d’accès étendus pour les


fichiers exécutables.

Quand on applique ces droits à une commande, cette dernière


s’exécutera avec les droits du propriétaire ou du groupe
d’appartenance de la commande et non plus avec les droits
d’utilisateurs l’ayant lancée.

2
Les droits étendus (SUID,SGID) (2/3)

L’exemple le plus simple est le programme passwd permettant de changer son


mot de passe. Si la commande était exécutée avec les droits d’un utilisateur
classique, passwd ne pourrait pas ouvrir et modifier les fichier /etc/passwd et
/etc/shadow

Seul le root peut modifier le fichier. La commande passwd ne pourrait donc pas
modifier ce fichier pour un simple utilisateur.

3
Les droits étendus (SUID,SGID) (3/3)
• Si on regarde les droits de la commande passwd :

Un nouveau droit est apparu: le droit s pour les droits de root, Ce


nouvel attribut permet l’exécution de la commande avec des droits
d’accès étendus. Pendant le traitement, le programme est exécuté
avec les droits du propriétaire (SUID) du fichier ou de son groupe
(SGID) d’appartenance.
• Le droit s sur l’utilisateur est appelé le SUID-bit (Set User ID bit),
et sur le groupe SGID-Bit (Set Group ID bit).
• Lorsque le GUID est appliqué sur un répertoire, il y aura un
héritage du même groupe pour toutes les entités existantes sous
ce répertoire. (tout fichier ou sous-répertoire créé dans ce répertoire parent appartiendra au
groupe de celui-ci et non au groupe de l'utilisateur qui crée l'élément).
4
Attribution des droits étendus (1/2)

La commande chmod permet de placer les SUID-Bit et SGID-Bit :

 Méthode littérale :

# chmod u+s commande


# chmod g+s commande

 Méthode numérique :
Les valeurs octales sont 4000 pour le SUID-Bit et 2000 SGID-Bit.

# chmod 4755 commande


# chmod 2755 commande
5
Attribution des droits étendus (2/2)

NB:

 Seul le propriétaire ou l’administrateur peut attribuer ce droit.

 Affecter le SUID ou le SGID n’a pas de sens que si les droits


d’exécution ont préalablement été établis (attribut x sur le
propriétaire ou le groupe).

 Si ceux-ci ne sont pas présents, le s et remplacé par S

6
Le sticky bit (1/2)

Le sticky bit (bit collant) permet d’affecter une protection contre


l’effacement du contenu d’un répertoire.
Prenant l’exemple du répertoire /tmp, tous les utilisateurs ont tous
les droits sur son contenu :

Dans ce répertoire, tout le monde peut supprimer des fichiers y


compris ceux qui ne lui appartiennent pas.

7
Le sticky bit (2/2)

Le sticky bit appliqué à un répertoire, empêche cette manipulation.


Le fichier peut encore être visualisé et modifié , mais seul son
propriétaire et le root peuvent le supprimer.
 Méthode littérale

 Méthode numérique
En octal, on utilisera la valeur 1000 pour le sticky bit :
# chmod 1777 /tmp

8
Gestion des attributs des fichiers / répertoires
• Pour lister les attributs:
lsattr file
• Pour fixer les attributs:
chattr +attr file
ajouter attribut
chattr -attr file
retirer attribut
chattr =attr file
ne laisser que les attributs donnés
Exemple d’attribut:
i: Le fichier/répertoire ne peut être modifié, effacé, renommé ou lié
symboliquement, pas même par root.
Seul root ou un binaire possédant les droits nécessaires peut fixer cet
attribut. 9
Environnement utilisateur

10
Les fichiers d’environnement (1/2)

Comme tout autre programme, le shell se base sur des fichiers de


configuration. Pour le Bash, les deux types de fichiers de configuration utilisés
pour la personnalisation de l'environnement:

 Les fichiers de configuration utilisateur se trouvant dans les répertoires


personnels des utilisateurs (~/.bashrc et ~/.profile ou ~/.bash_profile ).
Ces deux fichiers sont spécifiques à chaque utilisateur et permettent à
chacun d'entre eux de spécifier leurs préférences personnelles

 Les fichiers de configuration globaux se trouvant sous le répertoire /etc


(/etc/profile et /etc/bashrc). Ce sont les fichiers de configuration dans
lesquels on défini toutes les options communes à tous les utilisateurs et ne
sont éditables que par un administrateur.

11
Les fichiers d’environnement (2/2)

 Lors du démarrage d’une session, le fichier de configuration


/etc/profile est exécuté, puis les fichiers de configuration
~/.bash_profile et ~/.bashrc sont exécutés pour charger les
données personnelles de l’utilisateur qui vient de se loguer.

 Le fichier ~/.bash_profile n'est exécuté que lors d'un nouveau


login, alors que le fichier ~/.bashrc est exécuté à chaque
nouveau lancement de bash.

12
Les variables d’environnement (1/3)

 Variables dynamiques stockant des données et des options


de programmes, des informations sur l’ordinateur qui peuvent
être utilisées par les programmes pour modifier le
comportement de ces derniers selon la manière appropriée à
l’environnement courant.

 L'utilisation de ces variables est définie par chaque


programme, certaines variables définissent des fonctions
précises:

13
Les variables d’environnement (2/3)

• PATH : indique la liste des chemins où trouver les programmes à


lancer.
• SHELL : indique l’interpréteur shell utilisé par défaut.
• HOME : contient le chemin absolu vers le répertoire personnel de
l'utilisateur connecté.
• LOGNAME : pour le nom de l'utilisateur
• HISTFILE : pour le fichier historique.
• HISTSIZE : pour la limite de commandes historiques accessibles.
• EDITOR : pour l'éditeur de ligne de commandes.

14
Les variables d’environnement (3/3)

 Pour afficher la valeur d'une variable:


$ echo $VAR_ENV

 Pour déclarer des variables d’environnement


$VARNAME=valeur
$export VARNAME
export rend la variable visible pour tous les shells et les programmes
 Pour remplacer les deux commandes précédentes:
$export VARNAME=valeur

 Pour effacer le contenu d'une variable


$unset VARNAME

 Afficher toutes les variables d'environnements


$ env
15

Vous aimerez peut-être aussi