Я сделал сценарий для устанавливания/сбрасывания установки прокси для того, когда я переключаюсь между работой и домой. Сценарий работает отлично, и теперь я хочу выполнить его каждый раз автоматически, когда я вхожу в систему так, я поместил его в свой .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
Я не знаю то, что я теперь могу попытаться решить эту проблему. Кто-либо какая-либо идея?
Спасибо.
Вы не должны использовать 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
файл. Можно искать "приложения запуска в тире"
Я изменил свой сценарий и заменил 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
, Но это также возможно без ввести пароль?