Допустим, у вас есть программа, которую вы хотите запускать без присмотра, от имени пользователя root, для которой требуется секрет (такой как фраза-пароль; что-то, что вы не хотите, чтобы другие люди узнали), который можно прочитать из переменной окружения. Один из способов сделать это - создать скрипт, подобный следующему, и запустить его из crontab root.
#!/bin/bash
export SECRET='my_secret'
/usr/bin/some_program
export SECRET=
Итак, я могу подумать о двух проблемах безопасности здесь.
Во-первых, кто-то может найти значение $SECRET
, прочитав скрипт. Использование chmod 700
должно позаботиться об этом.
Во-вторых, кто-то может использовать что-то вроде ps ae
во время работы some_program
. Однако, если скрипт выполняется от имени пользователя root, только root (или sudoers) может видеть его окружение, верно?
Правильно ли я считаю, что значение $SECRET
может быть найдено только root или sudoers? Есть ли другие проблемы с безопасностью?
И, чтобы сделать все это немного менее абстрактным, это то, что заставило меня задуматься.