Como usar o agendador de tarefas do Windows para executar o updatedb? [fechadas]

0

Quando eu corro

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

de uma linha de comando do Windows (privilegiada, se necessário), recebo uma solicitação para a senha do sudo.

Ter ALL ALL=NOPASSWD: /usr/bin/updatedb.mlocate -D em / etc / sudoers não faz diferença.

Eu posso executar sudo updatedb sem um prompt de senha a partir do próprio bash, independentemente da linha acima em sudoers.

A execução sem sudo produz o padrão e o esperado updatedb: can not open a temporary file for '/var/lib/mlocate/mlocate.db'

Eu gostaria de encontrar uma linha de cmd do Windows que funciona para que eu possa colocar o updatedb em uma tarefa agendada. Se os sudoers precisarem ser modificados, tudo bem.

    
por Gaia 05.12.2016 / 03:53

1 resposta

1

Se você estiver trabalhando em um computador particular e não tiver problemas de segurança em relação à proteção por senha, poderá usar a seguinte solução alternativa:

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

A bandeira -S significa que o sudo irá ler a senha do stdin. A questão óbvia é que você tem que escrever explicitamente sua senha em seu comando, o que não é realmente seguro.

EDITAR:

Como sidenote, adicionei a seguinte linha no final do meu arquivo / etc / sudoers:

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

Em seguida, a execução de C:\Windows\System32\bash.exe -c "sudo apt-get update" do cmd.exe funcionou perfeitamente. Você se certificou de que sua regra não fosse sobregravada? Se houver um conflito de permissões em seu arquivo sudoers, o bash usará a última regra escrita. Certifique-se de colocar sua linha ALL ALL=NOPASSWD: no final do arquivo.

    
por Aserre 05.12.2016 / 12:24