Ответ 1
Я могу предложить два разных решения:
-
Используйте
gksudo
, который будет запрашивать у пользователя пароль в графическом интерфейсе. Вот как это работает на практике:system('gksudo ls')
-
PRO:
- Это безопасно, вам не нужно самостоятельно обращаться с паролем.
- ....
-
CONS:
- он не будет работать без графического интерфейса.
-
gksudo
был установлен по умолчанию с брендами linux, которые я пробовал, но YMMV: возможно, некоторые пользователи не будут иметь его. - ....
-
-
Запросите пароль пользователя в
R
и поставьте его с соответствующими параметрамиsudo
:-k
, чтобы всегда запрашивать пароль, и-S
, чтобы принять пароль со стандартного ввода. Вот как это работает на практике:system('sudo -kS ls',input=readline("Enter your password: "))
-
PRO:
- Он не полагается на какую-либо другую программу.
- ....
-
CONS:
- Мне не нравится идея о том, что пароль управляется
R
: это выглядит как плохая идея. - ....
- Мне не нравится идея о том, что пароль управляется
-
Кроме этого, я не знаю, каким образом взаимодействовать с программой, начинающейся с R
.