Permisos en Linux

Leave a Comment

En Linux cada fichero y directorio tiene asociados permisos de lectura, escritura y ejecución.

Los permisos en ficheros se pueden representar mediante letras o en octal (valor entre paréntesis):
  • r - Permiso de lectura. ( 4 )
  • w - Permiso de escritura. ( 2 )
  • x - Permiso de ejecución. ( 1 )
La representación en octal es la suma de los permisos de cada campo, es decir, si posee permiso de lectura y escritura tendrá el valor 4+2+0=6.

Los permisos en directorios son un poco diferentes:
  • r - Permite al usuario mostrar los archivos contenidos dentro del directorio.
  • w - Permite al usuario crear, eliminar y renombrar archivos así como modificar las propiedades del directorio.
  • x - Permite al usuario acceder al directorio y a los archivos que contiene.
En los permisos podemos distinguir tres campos:
  • Propietario: rwx
  • Grupo: rwx
  • Otros: rwx
Importante: Si carece de alguno aparecerá el carácter “-” indicando que no tiene dicho permiso.

Ejemplo
Suponemos los siguientes permisos de un archivo: rwx r-- r-x. En octal: 745
El propietario podrá leer, escribir y ejecutar dicho archivo, el grupo sólo leerlo y otros podrán leerlo y ejecutarlo. La representación en octal sería:
  • Propietario: 4+2+1=7
  • Grupo: 4+0+0=4
  • Otros: 4+0+1=5
Caso práctico


Para experimentar un poco podemos abrir un terminal y utilizar la orden “ls” que lista los archivos y directorios del directorio actual. Además añadiremos la opción “-l” para obtener información adicional. En mi caso:

$ ls -l

drwxrwxrwx.  1 pirobtumen pirobtumen          6 nov 17 22:03 Documentos

Para analizar los permisos nos fijamos en la cadena “drwxrwxrwx”. Según lo que hemos aprendido podemos descomponerlo en diferentes partes: d / rwx / rwx / rwx.
La ‘d’ inicial nos indica que es un directorio. Los permisos serían:
  • Propietario: rwx -> 4 + 2 +1 = 7
  • Grupos: rwx -> 4 + 2 +1 = 7
  • Otros: rwx -> 4 + 2 +1 = 7
Ahora vamos a crear un archivo nuevo con la orden “touch”:
$ touch prueba.txt

Analizamos sus permisos:
$ ls -l prueba.txt

-rw-rw-r--. 1 pirobtumen pirobtumen 0 ene 30 12:36 prueba.txt

E incluso podemos modificarlos con la orden “chmod”:
$ chmod 705 prueba.txt
*Nota: el valor 705 son los permisos en octal.

Comprobamos sus nuevos permisos:
$ ls -l prueba.txt
-rwx---r-x. 1 pirobtumen pirobtumen 0 ene 30 12:36 prueba.txt

También podemos usar la orden “chmod” de la forma:
$ chmod <id_campo><operador><tipo_permiso> <archivo>
  • id_campo puede ser propietario (u), grupo (g) u otros (o).
  • operador puede ser (+) para añadir o (-) para eliminar permisos.
  • tipo_permiso será lectura (r), escritura (w) o ejecución (x).
Para más información podéis buscar en internet o en el manual “$man chmod”, así como “touch” o “ls”.

Licencia:
Licencia Creative Commons
Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.

Linux - mpi : no se encontró la orden

4 comments
Los sistemas linux, como Ubuntu o Fedora, normalmente vienen con muchas aplicaciones y librerías, entre ellas está OpenMPI.
Si usas Ubuntu probablemente no necesitarás esto porque el directorio donde están los ejecutables de OpenMPI ya viene incluido en la variable de entorno 'PATH'.

¿ Cómo se si están incluidos o no?

Muy sencillo, abre una terminal y ejecuta
mpicc
o mpirun o cualquier otra orden de mpi.
Si obtienes el mensaje " ... : No se encontró la orden... " tienes que añadirlo al PATH.

¿ Cómo puedo añadirlo ?

Primero abre un terminal ( o usa el que abriste antes ) y ejecuta:
find /usr -name "mpirun"
Aquí estamos buscando el ejecutable "mpirun" que sabemos que es parte de la librería. Yo obtengo la siguiente salida:
/usr/lib64/openmpi/bin/mpirun
Normalmente siempre están en el directorio '/usr/lib64/openmpi/bin' si tu sistema es de 64bits o solamente "lib" si no lo es.
Ahora sólo tienes que añadirlo con:
export PATH=$PATH:/usr/lib64/openmpi/bin/
Si usas la orden 'export' tendrás que ejecutarla por cada terminal que abras o reinicies. Si no quieres tener que hacerlo cada vez hay que incluirlo en el archivo ".bashrc".

Abre una terminal y ejecuta:
cd ~
gedit .bashrc
Yo uso gedit, tú puedes usar tu editor favorito.

Y añadimos al final la orden 'export' usada anteriormente:

Linux - Command mpi not found

1 comment
Linux systems, such as Ubuntu or Fedora, usually come with a lot of libraries or applications, and OpenMPI is among them.
If you use Ubuntu you probably won't need this because it includes the openmpi binaries folder in the environment variable 'PATH'.

How I know if I it's included or not?


It's quite simple, open a terminal and run:
mpicc
or mpirun or any other mpi command.
If you obtain the message " ... : Command not found... " you have to add it to PATH.

How can I add it?

First open a terminal ( or use the one you opened before ) and run:
find /usr -name "mpirun"
Here we are looking for the executable "mpirun" which we know it's part of the library. I obtain the following output:
/usr/lib64/openmpi/bin/mpirun
Normally it is always under '/usr/lib64/openmpi/bin' if your system is 64bits or only "lib" if not.
Now you only have to add it:
export PATH=$PATH:/usr/lib64/openmpi/bin/
If you use the export command you have to use it for every terminal you open / restart. If you don't want to do this only add it to your ".bashrc" file.

Open a terminal and run:
cd ~
gedit .bashrc
Use gedit or other text editor you like.

And at the end of the file add the previous export command: