Нужна помощь в создании сценария bash, обрабатывающего несколько запросов на аутентификацию - PullRequest
1 голос
/ 07 мая 2020

У меня есть команда, которую мне нужно запустить при запуске, но она требует, чтобы я ввел пароль несколько раз, и я не знаю, как это сделать:

$ systemctl disable systemd-timesyncd && systemctl stop systemd-timesyncd && systemctl enable ntpd && systemctl start ntpd

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Authentication is required to manage system service or unit files.
Authenticating as: benja
Password: 
==== AUTHENTICATION COMPLETE ===
Removed /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service.
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Authentication is required to reload the systemd state.
Authenticating as: benja
Password: 
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to stop 'systemd-timesyncd.service'.
Authenticating as: benja
Password: 
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Authentication is required to manage system service or unit files.
Authenticating as: benja
Password: 
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Authentication is required to reload the systemd state.
Authenticating as: benja
Password: 
==== AUTHENTICATION COMPLETE ===
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'ntpd.service'.
Authenticating as: benja
Password: 
==== AUTHENTICATION COMPLETE ===

Возможно ли это? Будем признательны за любые предложения.

1 Ответ

1 голос
/ 07 мая 2020

Запустить все это через sudo в подоболочке.

sudo sh -c 'systemctl disable systemd-timesyncd && systemctl stop systemd-timesyncd && systemctl enable ntpd && systemctl start ntpd'

Таким образом, sudo запросит пароль только один раз. Обычно sudo настроен на "запоминание" пароля, поэтому при следующем запуске sudo он не должен снова запрашивать пароль, поэтому вы также можете:

sudo systemctl .. && sudo systemctl ... && sudo etc.
...