Единица Ubuntu 16.10 'sudo: никакой подарок tty и никакая askpass программа не указаны'

Я сделал сценарий для устанавливания/сбрасывания установки прокси для того, когда я переключаюсь между работой и домой. Сценарий работает отлично, и теперь я хочу выполнить его каждый раз автоматически, когда я вхожу в систему так, я поместил его в свой .profile (как: источник ~/bin/proxyscript.sh).

Это работает, когда я использовал Gnome Ubuntu, и во время входа в систему я получаю терминал, и он попросил sudo пароль. Начиная с версии 16.10 я установил чистую версию Единицы Ubuntu, и теперь я получаю сообщение об ошибке "sudo: никакой подарок tty и никакая askpass программа, указанная", когда я вхожу в систему.

В сценарии я делаю что-то как: сервис sudo cntlm останавливает sudo sed...../etc/cntlm.conf sudo сервис. cntlm запускаются

Я уже посмотрел на/etc/sudoers файл и добавил следующее без хорошего результата: Значения по умолчанию!/usr/bin/sed! Значения по умолчанию requiretty!/usr/sbin/service! requiretty

базируйтесь ВСЕ = (ALL:ALL) ВЕСЬ jeroen ALL=NOPASSWD:/bin/sed,/usr/sbin/service

Я не знаю то, что я теперь могу попытаться решить эту проблему. Кто-либо какая-либо идея?

Спасибо.

1
задан 1 November 2016 в 11:15

2 ответа

Вы не должны использовать sudo в сценарии. Можно использовать policykit вместо sudo в сценарии:

#!/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

или, еще лучше... просто сделайте команду sed сначала и затем перезапустите сервис так, чтобы Вы только ввели пароль дважды

#!/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

кроме того, если бы у Вас все еще есть проблемы, я предложил бы запустить скрипт из "приложений запуска" вместо от Вашего .profile файл. Можно искать "приложения запуска в тире"

1
ответ дан 7 December 2019 в 15:45

Я изменил свой сценарий и заменил sudo для:

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

Это работало, mchild спасибо!

Теперь я заставляю всплывающее окно вводить мой пароль. С сообщением: Authentication is needed to run '/usr/bin/env' as the super user

, Но это также возможно без ввести пароль?

0
ответ дан 7 December 2019 в 15:45

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

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