Как использовать планировщик задач Windows для запуска updatedb? [закрыто]

Когда я запускаю

C:\Windows\System32\bash.exe -c "sudo updatedb"

из (привилегированной, если необходимо) командной строки Windows, я получаю запрос на ввод пароля sudo.

Наличие ALL ALL = NOPASSWD: /usr/bin/updatedb.mlocate -D в / etc / sudoers не имеет значения.

Я могу запустить sudo updatedb без запроса пароля из самого bash, независимо от строки выше в sudoers.

Запуск без sudo приводит к стандартному и ожидаемому обновленному b: невозможно открыть временный файл для '/var/lib/mlocate/mlocate.db'

Я хотел бы найти строку cmd для Windows, которая работает так Я могу поставить updateb в запланированное задание. Если нужно изменить sudoers, прекрасно.

0
задан 5 December 2016 в 05:53

1 ответ

Если Вы работаете над частным компьютером и не имеете никакой проблемы безопасности относительно защиты паролем, Вы могли использовать следующее обходное решение:

C:\Windows\System32\bash.exe -c "echo 'my_password' | sudo -S updatedb"

-S флаг означает, что sudo считает пароль из stdin. Очевидная проблема - то, что Вы имеете к explicitely, пишут Ваш пароль в Вашей команде, которая не действительно безопасна.

РЕДАКТИРОВАНИЕ:

Как заметка на полях, я добавил следующую строку в конце своего/etc/sudoers файла:

ALL ALL=NOPASSWD: /usr/bin/apt-get*

Позже, работая C:\Windows\System32\bash.exe -c "sudo apt-get update" из cmd.exe работал безупречно. Вы удостоверялись, что Ваше правило не было перезаписано? Если будет конфликт разрешения в Вашем sudoers файле, то удар будет использовать последнее записанное правило. Удостоверьтесь, что Вы помещаете Ваш ALL ALL=NOPASSWD: строка в конце файла.

1
ответ дан 28 September 2019 в 01:52

Другие вопросы по тегам:

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