{{tag>sudo administration système}} ---- ====== É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 [[:tutoriel:creer_un_paquet|créer des paquets]], * Lorsque vous cherchez à installer un logiciel fourni sous forme de [[:tutoriel:script_shell|script exécutable]], et que celui-ci cherche à s'installer par défaut dans un [[:arborescence|répertoire administrateur]] comme /usr/local par exemple ===== Pré-requis ===== * Disposer des [[:sudo|droits d'administration]] (pour préparer le système) ===== Compilation de logiciels avec fakeroot ===== [[http://manpages.ubuntu.com/manpages/gutsy/fr/man1/fakeroot-tcp.1.html|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 [[:archivage|archives]] (tar, ar, .deb, etc.) qui contiennent des fichiers avec les privilèges et appartenances du [[:sudo|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 ===== Souvent, il est possible de modifier le chemin d'installation par défaut des scripts. Pensez à vérifier dans leurs options si vous ne pouvez pas les installer directement dans votre /home. De cette manière vous n'aurez même pas besoin des droits d'administration. 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 : [[:netbeans#mode_d_installation_alternatif|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 [[:permissions|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. Si jamais vous aviez déjà installé une version de votre logiciel ou d'un autre qui a créé le répertoire avec les droits d'administration, et que vous avez besoin de le réinstaller sachant que vous êtes susceptibles de modifier aussi des sous répertoires, pensez à mettre l'option récursive "-R" après le chown et le chgrp afin qu'ils s'appliquent à l'ensemble des fichiers et sous répertoires de votre répertoire de base Pour éviter les risques de sécurité, il ne faut jamais modifier les droits d'un répertoire système que vous n'avez pas vous même créé (et même là il faut être prudent) à moins de savoir vraiment ce que vous faites. Si vous souhaitez que le programme que vous installez puisse être trouvé automatiquement par le système lorsque vous entrez son nom dans la console, pensez à rajouter son chemin d'accès dans le [[:variables_d_environnement#variables_liees_aux_emplacements_de_fichiers|PATH]]. Pour ce faire, éditez votre ~/.profile, et ajoutez à la fin 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 [[wpfr>Permissions_Unix#Droit_SUID|page dédiée de Wikipédia]]. ---- //Contributeurs: [[:utilisateurs:Aldian]].//