Erro de script do Network Manager dispatcher.d

0

Eu escrevi um script em "/etc/NetworkManager/dispatcher.d" para abrir a caixa de diálogo de preferências do Firefox sempre que me conecto a uma rede específica (faculdade wifi), porque tenho que habilitar o proxy.

O script está retornando com "código de erro 1" no logger. Se eu comentar a linha "firefox --preferences", o script é executado e o texto "FIREFOX SCRIPT EXECUTED" é exibido no logger. Como faço para corrigir isso? Aqui está o script:

#!/bin/sh -e

if [ -z "$1" ]; then
    echo "$0: called with no interface" 1>&2 
    exit 1;
fi


case "$2" in
    up|vpn-up)
    if [ "$CONNECTION_UUID" = "6e7f613f-5563-48f7-892d-655e95c0b834" ]; then
        firefox -preferences
        logger -s "FIREFOX SCRIPT EXECUTED"
    fi
    ;;
   down|vpn-down)
    ;;
   hostname)
   # Do nothing
   exit 0
       ;;
   hostname|dhcp4-change|dhcp6-change)
       # Do nothing
   ;;
   *)
    echo "$0: called with unknown action \'$2'" 1>&2
    exit 1
    ;;
esac
    
por manic.coder 12.02.2014 / 07:53

1 resposta

0

O primeiro problema é que a chamada de firefox --preferences interrompe o script. O segundo problema é que o script é executado como root, não como o usuário logado. Terceiro: o Firefox precisa do ambiente dos usuários e do número de exibição.

Altere a parte "para cima" no script da seguinte forma:

case "$2" in
    up|vpn-up)
    if [ "$CONNECTION_UUID" = "6e7f613f-5563-48f7-892d-655e95c0b834" ]; then
        export HOME=/home/user
        export DISPLAY=:0
        nohup sudo -u user firefox --preferences &
        logger -s "FIREFOX SCRIPT EXECUTED"
    fi
    ;;
    
por chaos 12.02.2014 / 09:28