Ubuntu Unity 16.10 'sudo: não tty presente e nenhum programa askpass especificado'

1

Eu fiz um script para definir / desativar a configuração de proxy para quando eu alternar entre trabalho e casa. O script funciona perfeitamente e agora eu quero executá-lo sempre que fizer o login automaticamente, então eu o coloco no meu .profile (como: source ~ / bin / proxyscript.sh).

Isso funciona quando eu estava usando o Ubuntu Gnome e durante o login eu recebo um terminal e ele pede a senha do sudo. Desde a versão 16.10 eu instalei uma versão limpa do Ubuntu Unity e agora recebo a mensagem de erro "sudo: no tty present e nenhum programa askpass especificado" quando eu logar.

No script, faço algo como: serviço sudo cntlm stop sudo sed ..... /etc/cntlm.conf serviço sudo. cntlm start

Já examinei o arquivo / etc / sudoers e adicionei o seguinte sem um bom resultado: Padrões! / Usr / bin / sed! Requiretty Padrões! / Usr / sbin / service! Requiretty

raiz ALL = (TODOS: TODOS) TODOS jeroen ALL = NOPASSWD: / bin / sed, /usr/sbin/service

Eu não sei o que agora posso tentar corrigir esse problema. Alguém tem alguma ideia?

Obrigado.

    
por JdKock 01.11.2016 / 08:38

2 respostas

1

Você não deve usar sudo em um script. Você pode usar o policykit em vez de sudo no seu script:

#!/bin/bash
pkexec env DISPLAY=:0 XAUTHORITY=/home/$USER/.Xauthority service cntlm stop & sed whatever is missing here
pkexec env DISPLAY=:0 XAUTHORITY=/home/$USER/.Xauthority service cntlm start

ou melhor ainda. . . apenas faça o comando sed primeiro e depois reinicie o serviço para que você só precise digitar uma senha duas vezes

#!/bin/bash
pkexec env DISPLAY=:0 XAUTHORITY=/home/$USER/.Xauthority sed 'some sed stuff' 
pkexec env DISPLAY=:0 XAUTHORITY=/home/$USER/.Xauthority service cntlm restart

Além disso, se você ainda tiver problemas, sugiro que o script seja executado em "aplicativos de inicialização", em vez de no arquivo .profile . Você pode procurar por "aplicativos de inicialização no seu traço"

    
por mchid 01.11.2016 / 09:43
0

Eu mudei meu script e substituí o sudo para:

pkexec env DISPLAY=:0 XAUTHORITY=/home/$USER/.Xauthority sed 'some sed stuff'

Isso funcionou, obrigado mchild!

Agora eu recebo um pop-up para inserir minha senha. Com a mensagem: Authentication is needed to run '/usr/bin/env' as the super user

Mas também é possível sem digitar uma senha?

    
por JdKock 01.11.2016 / 18:26