При написании сценария оболочки, в котором некоторые, но не все команды в нем требуют привилегий суперпользователя, я должен
добавьте sudo к тем командам, которым требуются привилегии суперпользователя, и запустите сценарий оболочки без sudo, или
не добавлять sudo к тем командам, которым нужны привилегии суперпользователя, но запускать сценарий оболочки с помощью sudo?
Во втором случае мне нужно будет указать свой пароль только один раз, но все команды в сценарии будут выполняться с привилегиями суперпользователя, включая те, которые не нужны.
Во-первых, мне может понадобиться несколько раз предоставить свой пароль для разных команд sudo, в то время как привилегии суперпользователя предоставляются только тем командам, которые в них нуждаются.
Из соображений безопасности первый способ лучше. Для удобства лучше второй способ.
Я думал о принятии первого пути. Поэтому мне приходится иметь дело с неудобством предоставления моих паролей для нескольких команд sudo в сценарии оболочки.
-
Хорошо написанный сценарий обнаружит, работает ли он с нужными разрешениями, и вообще не вызовет sudo, но есть много плохих сценариев.
Так я должен использовать второй способ? Если так,
Как я могу написать «скрипт будет обнаруживать, если он работает с правильными разрешениями и вообще не вызывает sudo»?
Как я могу улучшить его безопасность, чтобы избежать проблемы предоставления привилегий суперпользователя командам, которым они не нужны при запуске сценария с помощью sudo?
- Будет ли этот простой подход иметь лучшее из обоих подходов: добавить sudo к командам, которые только в этом нуждаются, и запустить сценарий с или без sudo в зависимости от того, хочу ли я удобство или безопасность? Есть ли у этого подхода проблемы?
Спасибо.
sudo
имел кеш учетных данных по умолчанию. Это отключено на вашей платформе?