Вы можете сделать что-то вроде этого:
$ rm -f /home/somewhere/new_account_john
$ touch /home/somewhere/new_account_john
$ chmod 600 /home/somewhere/new_account_john
$ echo "--password SbdLb9W --pin-number 1234" > /home/somewhere/new_account_john
$ sudo set_account.sh --read-options-from /home/somewhere/new_account_john --other-options
$ rm -f /home/somewhere/new_account_john
Это все еще несет в себе риск безопасности, поскольку кто-то может прочитать список процессов с помощью ps
и увидеть команду echo
. Второй риск - это гонка, т. Е. Кто-то записывает в файл раньше вас или изменяет его непосредственно перед sudo
(или же читает из него).
Однако это решит ваш немедленный запрос.
Если вы не можете изменить команду set_account.sh
, то вы можете попробовать что-то вроде
$ sudo sh -c 'set_account.sh `cat /home/somewhere/new_account_john` --other-options'
вместо другой sudo
команды выше и проверить, вызывается ли кошка после sudo (должно быть, но это зависит от синтаксиса кавычек вашей оболочки). Остальные команды остаются прежними.