Как указать пароль для не -интерактивных команд с помощью systemctl на удаленном хосте?

Попробуйте это. Что ж, это может быть диким решением, но я все равно хотел поделиться!

function rm_ {
   [[ -d "$1" ]] && rm -rI "$1" || rm -f "$1"
}

Затем используйте rm_ <directory|file>. Если это directory, вы получите rm: remove all arguments recursively?, иначе ничего и файл будет удален.

Таким образом, пользователю не будет выдаваться подсказка при удалении файлов, а пользователю будет выдаваться подсказка при удалении каталога.

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

0
23.09.2020, 20:48
1 ответ

«Ввод пароля в командную строку» — общеизвестная плохая идея. sshсправится с этим.

Прочтите многие из manстраниц, созданных man -k ssh.

Затем, когда вы освоитесь с sshи запуститеssh-add:

Прочтите man ssh-copy-id, чтобы скопировать вашу личность sshв rootна каждом клиентском узле.

Теперь ssh -l root client1 systemctl...доступен для вас.

Прочтите man ssh_configдля дальнейшей автоматизации.

Добавить псевдонимы, например

alias c1="ssh -l root client1"
# usage:  c1 systemctl...
#
 alias c1sys= "ssh -l root client1 systemctl..."

на ваш ~/.bashrc.

0
18.03.2021, 23:02

Теги

Похожие вопросы