domingo, 2 de marzo de 2014

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)
Comparte este articulo
  • Comparte con Facebook
  • Comparte con Twitter
  • Comparte con Google+
  • Comparte con Stumble Upon
  • Comparte con Evernote
  • Comparte con Blogger
  • Comparte con Email
  • Comparte con Yahoo Messenger
  • More...

0 comentarios:

Publicar un comentario