9.14 Solo puedo usar internet como root. ¿Qué hago para poder hacerlo como usuario?

Imagen de ElSanto

Hay dos formas de hacerlo. La forma "buena", sería usando el programa sudo el cual permite ejecutar como usuario algunos programas que sólo podrían funcionar como root. Esto supondría que cada vez que uno quisiera conectarse a internet debería introducir un password, lo cual es útil en caso de que otros tuvieran acceso a nuestro ordenador. Para lo configuración de sudo consultar man sudo.

La forma "mala", y digo mala porque es más insegura en caso de que otros tengan acceso a nuestra máquina, consistiría en poner pppd "suid root" lo cual posibilita que un usuario normal tuviera acceso al programa de una forma similar que root.

Para esto último, habría que empezar por localizar pppd. Suele estar en el directorio /usr/sbin. Luego haría falta echar un vistazo para ver que permisos tiene. Esto se hace con la orden ls -l pppd y debe arrojar algo parecido a esto.

  -rws--x--x   1 root   ppp     70336   May 18  1996 pppd

Lo que se persigue es que la tercera letra sea una 's', como en el ejemplo. Si el programa no está "suid root", la tercera letra será una 'x'. Entonces en este caso habría que hacer chmod 4711 pppd para conseguirlo.

Los scripts de /etc/ppp necesitarían también acceso libre para los usuarios así que habría que hacer chmod 755 /etc/ppp y chmod a+r /etc/ppp/*. El efecto secundario que esto tiene es que cualquier usuario del sistema puede leer las claves de acceso a nuestro proveedor de internet. Existe la posibilidad de limitar la conexión a internet (y a los scripts de conexión y claves de acceso), leer la sección ¿Cómo se cambian los permisos de ficheros y directorios?

NOTA: Aún así, es posible que no seamos capaces de conectar con internet como usuario normal. Una posible causa de fallo sería intentar conectar a internet escribiendo pppd en vez de /usr/sbin/pppd. Para root funciona la primera, pero para el resto de usuarios no. El motivo es que el PATH (el conjunto de directorios en los que Linux busca un ejecutable) es diferente para root que para los usuarios normales. Los usuarios normales no tienen /usr/sbin dentro del PATH así que deberán hacer /usr/sbin/pppd para conectarse a internet o hacer un enlace simbólico a /usr/sbin/pppd desde otro directorio que sí esté en el PATH de usuario (como por ejemplo /usr/bin), o hacernos un script (pequeño programa) que se limite a ejecutar /usr/sbin/pppd. Para el enlace simbólico bastaría hacer: ln -s /usr/sbin/pppd /usr/bin/pppd