Privilèges
Sous Unix, le super-utilisateur s’appelle root.
Son uid est 0, et son groupe principal est root (de gid 0).
1. su
La commande su permet de changer d’identité, donc en particulier de prendre l’identité de root.
$ whoami jaclin $ su # changement d'identité : jaclin va devenir root Mot de passe : # jaclin doit donner ici le mot de passe de root # whoami root # id uid=0(root) gid=0(root) groupes=0(root) # ^D # retour à l'identité première $ whoami jaclin
su permet donc à un utilisateur connaissant le mot de passe root d’acquérir les privilèges du super-utilisateur.
En réalité, su permet d’endosser l’identité de n’importe qui (cf man su).
2. sudo
S’il y est autorisé, un utilisateur peut exécuter une commande particulière en tant que root via la commande sudo :
$ whoami
jaclin
$ sudo whoami
root
$ id
uid=1000(jaclin) gid=1000(jaclin) groupes=1000(jaclin),10(wheel)
$ sudo id
uid=0(root) gid=0(root) groupes=0(root)
En réalité, à l’instar de su, sudo permet d’endosser l’identité de n’importe qui.
su est une commande historique, sudo ne l’est pas (elle est apparue dans les années 1980).
Elle est néanmoins omniprésente sur Linux.
|
3. su vs sudo
sudo offre plus de possibilités que su,
en permettant un réglage fin des privilèges accordés aux utilisateurs.
Son paramètrage est défini dans le fichier /etc/sudoers et expliqué via man sudoers.
Lorsque sudo demande un mot de passe, l’utilisateur doit donner son propre mot de passe
(la connaissance du mot de passe root n’est donc pas nécessaire pour devenir root via sudo).
Alors que lorsque su demande un mot de passe, l’utilisateur doit donner le mot de passe du compte cible
(il faut donc connaitre le mot de passe root pour devenir root via su).
Cette différence est importante :
sudo permet d’autoriser un utilisateur à exécuter toutes ou certaines commandes en tant que root sans qu’il connaisse le mot de passe de root.
C’est judicieux lorsque le système est géré par une équipe tournante d’administrateurs système, car cela évite de changer le mot de passe root à chaque départ de l’un d’entre eux.
Mais en contre-partie, si un utilisateur habilité par sudo se fait pirater son compte, alors l’intru pourra lui aussi exécuter des commandes en tant que root.
| avantages | inconvénients | |
|---|---|---|
|
la compromission du compte personnel d’un administrateur ne donne pas accès au compte root |
tous les administrateurs connaissent le mot de passe de root |
|
le passe de root peut rester secret, il n’est pas nécessaire aux administrateurs |
si on usurpe l’identité d’un administrateur, alors rien n’empêche l’usurpateur de devenir root |
sudo -i permet de lancer un shell en tant que root
(comme le fait su).
4. Exemples de tâches d’administration
4.1. Sur le système de fichiers
Chaque entrée du système de fichiers possède un propriétaire, qui est le compte qui l’a créé.
Mais root, et lui seul, peut le modifier avec la commande chown (change owner) :
$ whoami
jaclin
$ touch /tmp/un_fichier # création d'un fichier vide
$ ll /tmp/un_fichier
-rw-r--r-- 1 jaclin jaclin 0 20 nov. 20:31 /tmp/un_fichier
$ chown root /tmp/un_fichier
chown: modification du propriétaire de '/tmp/un_fichier': Opération non permise
$ sudo chown root /tmp/un_fichier
$ ll /tmp/un_fichier
-rw-r--r-- 1 root jaclin 0 20 nov. 20:31 /tmp/un_fichier
4.2. Les logs
Surveiller l’activité du système est une tâche essentielle de l’administrateur. Cela lui permet de traquer des anomalies de fonctionnement et donc d’anticiper les problèmes (partition pleine, agonie d’un disque, etc.).
Les logs (journaux) consignent les évènements qui se produisent sur le système.
- Unix traditionnel
-
Historiquement, les logs d’Unix sont pris en charge par le service
syslog, qui produit des journaux (de simples fichiers texte) dans le répertoire/var/log. On les consulte comme on consulte un fichier texte :$ tail -f /var/log/messages - Linux avec
systemd -
Pour les distributions ayant adopté
systemd, les logs sont gérés parjournald, un module desystemd. On parcourt alors les logs avec la commandejournalctl:## consulter chronologiquement le journal $ sudo journalctl ## consulter anti-chronologiquement le journal $ sudo journalctl -r ## suivre l'évolution du journal $ sudo journalctl -f
- Résumé
-
-
suetsudopermettent à un compte d’acquérir les super privilèges -
journalctlvisualise les journaux du système (sisystemdest opérant)
-