Может ли Ruby взаимодействовать с моими привилегиями root? - PullRequest
0 голосов
/ 19 апреля 2019

Это мой первый вопрос здесь, пожалуйста, скажите, могу ли я каким-то образом пометить его лучше или задать лучший вопрос:)

Я пытаюсь создать скрипт ruby ​​для установки некоторых пакетов и редактирования некоторых конфигураций после форматирования компьютера. Я использую Manjaro Linux, и мой скрипт уже может устанавливать официальные пакеты Arch, но когда дело доходит до AUR (с Yay), я иногда получаю сообщение об ошибке, в котором говорится, что Yay не может работать как sudo. Кроме того, я увидел, что некоторые люди могут интегрировать свою оболочку с другими языками сценариев, я начал это, но все еще должен набирать мой пароль root больше, чем я хочу.

Я искал справку по этому вопросу и обнаружил, что в Python есть библиотека под названием Pexpct, но не нашел никаких альтернатив Ruby. Я видел кое-что, связанное с Expect и IO в Ruby, но не мог понять, как и когда его использовать.

programs = [
  "zsh",
  "zathura",
  "zathura-cb",
  "zathura-djvu",
  "zathura-pdf-mupdf",
  "zathura-ps",
  "texlive-most",
  "texlive-lang",
  "geogebra",
  "vim",
  "yay",
  "adobe-source-code-pro-fonts",
  "firefox-developer-edition"
]

#Array iteration to install Arch official repo's packages
programs.each do |name|
  system ("pacman -Sq #{name} --noconfirm")
end

Я хочу знать, может ли каким-то образом этот код внутри блока программ вставить мой пароль. Я знаю, что у него много проблем с безопасностью, но в данном случае речь идет об одном фрагменте кода и учебных примерах. Я не буду использовать его в других сценариях.

...