Y a-t-il une raison pour laquelle je n'ajouterais pas / usr / local / sbin, / usr / sbin, / sbin à mon chemin sur Debian?

25

Comparez Debian (à gauche) et Ubuntu (à droite):

$ ifconfig                                 $ ifconfig
bash: ifconfig: command not found          eth0     Link encap ...
$ which ifconfig                           $ which ifconfig
$                                          /sbin/ifconfig

Puis en tant que superutilisateur:

# ifconfig                                 # ifconfig
eth0      Link encap ...                   eth0     Link encap ...
# which ifconfig                           # which ifconfig
/sbin/ifconfig                             /sbin/ifconfig

En outre:

# ls -l /sbin/ifconfig                     # ls -l /sbin/ifconfig
-rwxr-xr-x 1 root root 68360 ...           -rwxr-xr-x 1 root root 68040 ...

Il me semble que la seule raison pour laquelle je ne peux pas courir ifconfigsans super pouvoirs sur Debian est que ce n'est pas sur mon chemin. Quand je l'utilise, /sbin/ifconfigcela fonctionne.

Y a-t-il une raison pour laquelle je ne devrais pas ajouter /usr/local/sbin:/usr/sbin:/sbinà mon chemin sur Debian? Ceci est un ordinateur personnel, je suis le seul utilisateur humain.


Versions utilisées ( uname -a):
Ubuntu:

Linux ubuntu 3.13.0-51-generic #84-Ubuntu SMP Wed Apr 15 12:08:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Debian:

Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux
le chaos
la source
Grande question - voté :) Par ailleurs, voici un historique de la décision de Debian de ne pas mettre /usr/local/sbin:/usr/sbin:/sbinle PATH par défaut pour les utilisateurs ordinaires. L'approche d'Ubuntu semble plus conviviale pour tous, sauf pour les utilisateurs les plus aguerris.
sampablokuper

Réponses:

27

Dans la politique Debian, il est écrit que Debian suit la norme File Hierarchy Standard 2.3. La note # 19 sur la norme dit:

Décider de ce qui va dans les répertoires "sbin" est simple: si un utilisateur normal (pas un administrateur système) l'exécute jamais directement, alors il doit être placé dans l'un des répertoires "bin". Les utilisateurs ordinaires ne devraient avoir à placer aucun des répertoires sbin sur leur chemin.

Par exemple, des fichiers tels que chfn que les utilisateurs n'utilisent qu'occasionnellement doivent toujours être placés dans / usr / bin. ping, bien qu'il soit absolument nécessaire pour root (récupération et diagnostic réseau) est souvent utilisé par les utilisateurs et doit vivre dans / bin pour cette raison.

Nous recommandons aux utilisateurs d'avoir la permission de lire et d'exécuter tout pour / sbin sauf, peut-être, certains programmes setuid et setgid. La division entre / bin et / sbin n'a pas été créée pour des raisons de sécurité ou pour empêcher les utilisateurs de voir le système d'exploitation, mais pour fournir une bonne partition entre les binaires que tout le monde utilise et ceux qui sont principalement utilisés pour les tâches d'administration. Il n'y a aucun avantage de sécurité inhérent à interdire / sbin aux utilisateurs .


Réponse courte:

Y a-t-il une raison pour laquelle je ne devrais pas ajouter /usr/local/sbin:/usr/sbin:/sbinà mon chemin sur Debian?

Comme l'indique la note, il n'y a aucune raison pour que vous ne fassiez pas cela. Puisque vous êtes le seul à utiliser le système et que vous avez besoin des binaires dans les sbinrépertoires, n'hésitez pas à les ajouter à votre $PATH. À ce stade, laissez-moi vous guider vers une excellente réponse pour savoir comment le faire correctement.

le chaos
la source
4

La seule raison de ne pas les ajouter est que la complétion des commandes par tabulation est plus lente (car plus de répertoires sont recherchés) et moins efficace (car il y a plus de chances que des correspondances erronées émanent de commandes qui n'ont aucun sens pour les non-root à utiliser). ).

R ..
la source