Есть ли причина, по которой я бы не добавил / usr / local / sbin, / usr / sbin, / sbin к моему пути в Debian?

25

Сравните Debian (слева) и Ubuntu (справа):

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

Тогда как суперпользователь:

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

Более того:

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

Мне кажется, единственная причина, по которой я не могу работать ifconfigбез суперсил в Debian, заключается в том, что это не на моем пути. Когда я использую /sbin/ifconfigэто работает.

Есть ли причина, по которой я не должен добавлять /usr/local/sbin:/usr/sbin:/sbinсвой путь в Debian? Это персональный компьютер, я единственный человек-пользователь.


Используемые версии ( 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
хаос
источник
Отличный вопрос - проголосовал :) Кстати, вот немного истории о решении Debian не включать /usr/local/sbin:/usr/sbin:/sbinстандартную переменную PATH для обычных пользователей. Подход Ubuntu кажется более удобным для всех, кроме самых опытных пользователей.
Сампаблокупер

Ответы:

27

В Политике Debian написано, что Debian следует Стандарту Иерархии Файлов версии 2.3. Примечание № 19 к стандарту гласит:

Решить, что входит в каталог "sbin", очень просто: если обычный пользователь (не системный администратор) когда-либо будет запускать его напрямую, он должен быть помещен в один из каталогов "bin". Обычные пользователи не должны размещать какие-либо каталоги sbin на своем пути.

Например, такие файлы, как chfn, которые пользователи используют только изредка, все равно должны быть помещены в / usr / bin. ping, хотя это абсолютно необходимо для root (восстановление и диагностика сети), часто используется пользователями и по этой причине должен находиться в / bin.

Мы рекомендуем пользователям иметь права на чтение и выполнение для всего в / sbin, за исключением, возможно, определенных программ setuid и setgid. Разделение между / bin и / sbin не было создано из соображений безопасности или для того, чтобы пользователи не видели операционную систему, но для обеспечения хорошего разделения между двоичными файлами, которые все используют, и теми, которые в основном используются для задач администрирования. В создании / sbin запретов для пользователей нет никакого преимущества в безопасности .


Краткий ответ:

Есть ли причина, по которой я не должен добавлять /usr/local/sbin:/usr/sbin:/sbinсвой путь в Debian?

Как отмечается в записке, нет никаких причин, почему вы не должны этого делать. Поскольку вы используете систему только вы и вам нужны двоичные файлы в sbinкаталогах, не стесняйтесь добавлять их в свои $PATH. На этом этапе позвольте мне дать вам отличный ответ, как это сделать правильно.

хаос
источник
4

Единственная причина не добавлять их состоит в том, что это делает завершение команд командами медленнее (так как поиск по большему количеству каталогов) и менее эффективным (так как более вероятно, что совпадения с командами будут ложными, что не имеет смысла использовать не-root ).

Р..
источник