Éviter de lancer une commande en tant qu'administrateur lorsque c'est possible
Il y a deux situations dans lesquelles on peut éviter d'avoir à lancer des commandes en tant qu'administrateur là où il le faudrait en théorie.
- Lorsque vous souhaitez compiler certains logiciels et notamment créer des paquets,
- Lorsque vous cherchez à installer un logiciel fourni sous forme de script exécutable, et que celui-ci cherche à s'installer par défaut dans un répertoire administrateur comme /usr/local par exemple
Pré-requis
- Disposer des droits d'administration (pour préparer le système)
Compilation de logiciels avec fakeroot
fakeroot lance une commande dans un environnement dans lequel cette commande obtient les droits de l’administrateur pour manipuler des fichiers. C’est pratique pour permettre aux utilisateurs de créer des archives (tar, ar, .deb, etc.) qui contiennent des fichiers avec les privilèges et appartenances du superutilisateur. Sans fakeroot, il faudrait posséder les droits du superutilisateur pour donner les droits et appartenances convenables aux fichiers constituant l’archive, puis de les assembler ; ou bien, il faudrait construire directement l’archive, sans utiliser le programme d’archivage.
Installation de logiciels fournis sous forme de scripts exécutables dans un répertoire administrateur
Un exemple vaut mieux qu'un long discours, supposons que vous souhaitiez installer la dernière version du JDK de Sun, après l'avoir téléchargée chez eux. La procédure, et son intérêt sont expliqués ici : Installation du Java Developpement Kit.
Toute l'astuce consiste à créer le répertoire où le script va s'installer, et changer ses droits (qui par défaut sont en root) par les vôtres.
sudo mkdir /usr/local/java # crée un répertoire nommé java dans vos dossiers root sudo chown VOTRE_LOGIN /usr/local/java # confère les droits utilisateurs sur ce dossier et donc son contenu sudo chgrp VOTRE_LOGIN /usr/local/java # confère les droits de votre groupe sur ce dossier et donc son contenu
Notez que si jamais vous souhaitez que d'autres utilisateurs que vous même aient accès au contenu de ce dossier, il faut leur en donner les droits. Voir à ce sujet la commande chmod. Par exemple la commande chmod a+rwx /usr/local/java
donne a absolument tout le monde le droit de faire n'importe quoi avec ce dossier. Si vous êtes l'unique utilisateur de cet ordinateur ou de ce programme, vous n'avez pas à vous en soucier.
PATH="votre/chemin/dacces:$PATH"
Utilisation du bit SUID pour donner à n'importe qui le droit d'exécuter un programme normalement réservé au root
Cette manipulation n'est pas possible pour les scripts. En effet, en supposant que vous créiez un script appartenant à root, mais avec les droits d'écriture pour d'autres utilisateurs, cela créerai une faille système dangereuse. Elle est donc réservée aux binaires. Même ainsi, il vaut mieux faire preuve de prudence. Tout binaire système que vous rendez accessible à tous est une faille potentielle. Passons maintenant à l'application: c'est très simple. Naviguez en console jusqu'au binaire que vous voulez rendre accessible à tous, et tapez
sudo chmod +s NOM_BINAIRE
Afin d'être bien informé de ce qui se cache derrière cette manipulation, nous vous conseillons vivement de consulter la page dédiée de Wikipédia.
Contributeurs: Aldian.