J'ai créé un script pour définir/désactiver le paramètre de proxy lorsque je bascule entre travail et domicile. Le script fonctionne parfaitement et maintenant je veux le lancer automatiquement chaque fois que je me connecte, alors je le mets dans mon fichier .profile (comme: source ~/bin/proxyscript.sh).
Cela fonctionne lorsque j'utilisais Ubuntu Gnome et que, lors de la connexion, je recevais un terminal qui me demandait le mot de passe Sudo. Depuis la version 16.10, j’ai installé une version propre d’Ubuntu Unity et le message d’erreur "Sudo: aucun tty présent et aucun programme askpass" n’a maintenant été indiqué lorsque je me connecte.
Dans le script, je fais quelque chose comme: service Sudo cntlm arrêter Sudo sed ..... /etc/cntlm.conf service Sudo. cntlm start
J'ai déjà regardé le fichier/etc/sudoers et ajouté ce qui suit sans obtenir un bon résultat: Défauts!/Usr/bin/sed! Requiretty Défauts!/Usr/sbin/service! Requiretty
racine ALL = (ALL: ALL) ALL jeroen ALL = NOPASSWD:/bin/sed,/usr/sbin/service
Je ne sais pas ce que je peux maintenant essayer de résoudre ce problème. Quelqu'un a une idée?
Merci.
Vous ne devez pas utiliser Sudo
dans un script. Vous pouvez utiliser policykit au lieu de Sudo
dans votre 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 mieux encore. . . Il suffit de faire la commande sed en premier, puis de redémarrer le service pour que vous n'ayez besoin d'entrer qu'un mot de passe deux fois.
#!/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
De plus, si vous rencontrez toujours des problèmes, je vous suggère d’exécuter le script à partir d ’" applications de démarrage "au lieu de votre fichier .profile
. Vous pouvez rechercher "les applications de démarrage dans votre tableau de bord"
J'ai changé mon script et remplacé le Sudo
par:
pkexec env DISPLAY=:0 XAUTHORITY=/home/$USER/.Xauthority sed 'some sed stuff'
Cela a fonctionné, merci mchild!
Maintenant, je reçois un popup pour entrer mon mot de passe. Avec le message: Authentication is needed to run '/usr/bin/env' as the super user
Mais est-il également possible sans entrer un mot de passe?