Есть ли веская причина не добавлять sbin в стандартную переменную PATH?
Фон:
PATH
Переменная окружения задает каталоги, которые нужно искать при выдаче команды без указания пути. "sbin" пути (/sbin
, /usr/sbin
) предназначены для размещения административных утилит, так что многие дистрибутивы *nix не включают эти каталоги в настройку по умолчанию для PATH
, Тем не менее, существует много обстоятельств, когда неадминистративным учетным записям на законных основаниях необходим доступ к этим утилитам, и они должны указывать полные пути или изменять их PATH
переменная для этого. Эту задачу относительно легко выполнить, но она может быть обременительной для новых пользователей. Хуже того, возникают более сложные проблемы, когда вы используете PAM, sudo, ssh и другие утилиты, которые взаимодействуют, а иногда и модифицируют PATH
установка. Поиск этого сайта или Интернета в целом дает много примеров этих проблем, которые затрагивают как новых, так и опытных пользователей.
Вопрос:
С вышеупомянутым фоном, есть ли веская причина не добавлять каталоги sbin в стандартную переменную PATH? (предположительно через /etc/profile
,/etc/profile.d
, или эквивалент)
Я признаю, что "хорошо" субъективно, но вот некоторые причины, которые, по моему мнению, не выдерживают критики. Возможно, вы не согласны?
Не Хорошие Причины:
- Безопасность
- Повышенные привилегии и каталог, содержащий утилиту, не связаны с общедоступными каталогами (
r-x
). Можно привести неясный аргумент, что достаточно неквалифицированные плохие парни не могут найти "скрытые" утилиты, но это будет печально прозрачный занавес.
- Повышенные привилегии и каталог, содержащий утилиту, не связаны с общедоступными каталогами (
- Пространство имен
- Можно утверждать, что пользователь может захотеть написать свой
reboot
команда, к которой они получают доступ через свой собственный каталог, который они добавили в своиPATH
и системное значение по умолчанию в каталоге sbin превзойдет их конфигурацию. Это угловой случай, и тот случай, когда рассматриваемый пользователь уже зарываетсяPATH
последствия и могут изменить свою конфигурацию, чтобы использовать их каталог ранее в последовательности.
- Можно утверждать, что пользователь может захотеть написать свой
- стандарты
- Это никоим образом не является изменением стандарта иерархии файловой системы; утилиты по-прежнему организованы в свои каталоги в соответствии с их функциями.
- Не решить проблему, потому что "мы привыкли иметь эту проблему", глупо.
2 ответа
У постоянных пользователей нет реальной причины не иметь этих программ в своих PATH
и если при регулярном вызове пользователя одна из этих программ является проблемой, то необходимо исправить программу и / или ее безопасность.
Вы будете рады найти в RHEL 6 и выше, что /sbin
а также /usr/sbin
сейчас по умолчанию PATH
для всех пользователей, как это было в Fedora на протяжении многих лет. (А также /sbin
символическая ссылка на /usr/sbin
начиная с RHEL 7, но это уже другая проблема.)
Вы можете легко добавить это через локальное или общесистемное определение PATH. Причиной разделения в основном является традиция, и она была функцией команд в "sbin", являющихся системными двоичными файлами...
В моих установках и средах это не проблема. Моим пользователям не нужен доступ к системным утилитам. Добавленный шаг бега sudo
или же su -
Разумно наращивать привилегии или вводить полный командный путь, так как системы обычно не содержат интерактивных сеансов. Однако, это может быть не так в вашей ситуации. Если это проблема, измените переменную PATH.