3 votos

Ejecutando ProtonVPN al iniciar sesión a través de /etc/profile.d

Tengo un script simple para ejecutar mi VPN al iniciar sesión. El guión se encuentra en

/etc/profile.d/connectVPN.sh

 #!/bin/bash
protonvpn c -f > /home/myUserName/Desktop/out.txt
 

El contenido del archivo de salida:

 [!] The program was not executed as root.
[!] Please run as root.
 

ls -l /etc/profile.d/connectVPN.sh

 -rwxr-xr-x 1 root root 59 Dec 23 15:22 /etc/profile.d/connectVPN.sh
 

La VPN no se inicia ya que el script no se ejecuta como root. ¿Cómo puedo solucionar esto?

ls -lF /home/MyUserName/Desktop/out.txt

 -rw-rw-r-- 1 measure measure 74 Dec 29 22:27 Desktop/out.txt
 

0voto

AtomiX84 Puntos 364

usted puede intentar usar sudo sin contraseña para el protón de comandos para el usuario desea ejecutar el VPN;

editando el archivo /etc/sudoers.d/ carpeta de agregar un archivo (de cualquier nombre es bueno, como protones) con la siguiente entrada (suponiendo que el nombre de usuario es: la medida y la ruta de acceso de protonvpn es /bin/protonvpn):

measure NOPASSWD: /bin/protonvpn

NOTA: modifique la ruta de acceso del ejecutable y/o nombre de usuario si no es correcto

a continuación, modifique /etc/profile.d/connectVPN.sh de:

#!/bin/bash
protonvpn c -f > /home/myUserName/Desktop/out.txt

a:

#!/bin/bash
sudo /bin/protonvpn c -f > /home/myUserName/Desktop/out.txt

y vuelve a intentarlo.

Personalmente, si no es un problema de la VPN de inicio en el arranque del sistema, estoy sugiriendo que manejarlo con systemd.


EDITAR A continuación y con el ejemplo de cómo administrar una secuencia de comandos con systemd una vez que la red está conectado:

[Unit]
Description=Protonvpn

[Service]
Type=idle
# as root the sudo command can be removed.
ExecStart=/usr/bin/sudo /bin/protonvpn c -f > /home/myUserName/Desktop/out.txt
# with the following user and group you need the sudoers.d file
# if you want to run it as root user change user and group with root
User=measure
Group=measure
Restart=always
RestartSec=30

[Install]
# this make the trick, script will be executed only once the 
# connection to a network has been established
WantedBy=network-online.target

Fuente: Esta entrada de blog para la secuencia de comandos de systemd

guardar previamente el código en un archivo en: /etc/systemd/system/ y hacerlo ejecutable:

sudo chmod +x /etc/systemd/system/protonvpn.service

vuelva a cargar el systemd para descubrir nuevo servicio:

systemctl daemon-reload

Habilitar el servicio para que se inicie en el momento de arranque:

sudo systemctl enable protonvpn

Prueba con:

sudo systemctl start protonvpn

y para la última comprobación compruebe que el servicio se inicie el VPN normalmente también @reboot

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: