Compartir:



Puertos en Linux: Permisos



En un sistema tipo UNIX, los periféricos se representan mediante un fichero, en el directorio /dev , por lo tanto para poder acceder y comunicarnos con el periférico es necesario que dispongamos de los permisos adecuados. Es común encontrarse que nuestro usuario no tenga acceso a los puertos. Para hacer un ejemplo practico, en mi caso tengo una placa Arduino Nano, que se conecta por el puerto USB, y la misma no es reconocida por el IDE. Primero identifico que fichero tiene asociado, conecto la placa y ejecuto el siguiente comando:

$ dmesg | tail

Imagen terminal dmesg tail

El comando dmesg, devuelve los mensajes del Kernel, y tail solo me muestra los últimos cambios. Se ve que el fichero asociado es ttyUSB0, podemos ver los permisos del mismo de la sig manera:

$ls -l /dev/ttyUSB0

Imagen de ls - /dev/ttyusb0

Solo el usuario root, y los pertenecientes al grupo “dialout” tienen permisos para abrir y escribir, mientras que el resto de los usuarios no tiene ningun permiso. Lo que podemos hacer es agregar nuestro usuario a tal grupo con el siguiente comando(como superusuario):

# usermod -G dialout <usuario>

Listo ya podemos jugar con el puerto.

Otra opcion podria ser cambiar los permisos del archivo para el resto de los usuarios:

# chmod o+rw /dev/ttyUSB0

Pero esto lo tendríamos que realizar cada vez que conectemos el periférico. La primer opción es un cambio permanente(hasta que salgamos del grupo)

Ariel Sperduti avatar

Full Stack web development, Ingeniero Electronico

Ir Arriba!