sábado, 4 de noviembre de 2017

Permisos en linux 1

En este tutorial quiero hablaros un poco sobre lo que conozco en cuanto a los permisos en linux.

Introducción

En linux, los archivos y los directorios pueden ser leídos, modificados y ejecutados por tres grandes "grupos".
Estos grupos serían el propietario, el grupo y otros. Por otros se entiende cualquiera que no sea propietario ni esté en el grupo del fichero/directorio.

Permisos básicos

Siendo un usuario normal (no administrador), voy a crear un archivo y mirar sus permisos.
Si crease como administrador, tanto el usuario como el grupo serian root.






La parte que nos interesa es la última de todas: -rw-rw-r--

El primer carácter (-), indica si es un directorio (d), un archivo (-), un link (l), un archivo de bloques especiales (b), un archivo de caracteres especiales (c) o un archivo especial de tubería (p), en este caso es un fichero.

Los siguientes 9 caracteres van separados de 3 en 3, los 3 primeros son los permisos del propietario, los siguientes del grupo y los últimos de otros, se podría resumir en esta imagen.



El carácter r significa lectura, el carácter w escritura, y el carácter x ejecución.
Podemos ver entonces, que el propietario de Archivo_normal (dns-server) puede leer y escribir en él (al no ser un programa, no tiene la x ya que no hay nada que ejecutar).
El grupo tiene los mismos permisos que propietario, pero otros solo puede leer y no modificar.


Asignación de permisos

Hay dos formas de asignar permisos, una en la que tienes que saber una tabla de memoria (o tenerla a mano) y la otra, más sencilla pero más larga. Aunque ambas son igual de válidas.

La primera forma es indicar que permisos queremos ponerle a cada uno (o a todos a la vez).
Usando el comando $ chmod [OPCIONES] [PERMISOS] fichero/directorio .
Donde opciones, indicamos a quién le damos o quitamos permisos (u, g, o), y donde permisos indicamos si quitamos o ponemos (+ para añadir y - para quitar) y que permisos (r, w, x).


Como podemos ver en la imagen, el usuario ha perdido el permiso para modificar Archivo_normal.
Eso se debe a que al hacer chmod u-w Archivo_normal, hemos dicho que a usuario se le "reste" el permiso de modificar. Funciona así con grupo y con otros.



Si en vez de usar u, g, o en chmod usamos a, estamos diciendo all (todos). También podemos poner un permiso al lado del otro para que se aplique, en vez de hacer un chmod para cada permiso, podemos escribir +rwx para añadir los tres a la vez.

Otra manera de conseguir el mismo efecto que usando la opción a, es añadiendo los tres grupos.

En este caso, en vez de usar la opción a, se han usado las de usuario, grupo y otros.


También podemos añadir y quitar permisos a la vez a diferentes grupos si separamos por comas.


De esta forma, a usuario le quitamos permisos de modificar, al grupo le damos permisos de lectura y ejecución, y a los demás (otros) le quitamos el de permiso para modificar.




La segunda forma para añadir permisos, es mediante números.
Esta tabla indica como se agrupan los números.







Fuente de la imagen: bytelearning.blogspot.com.es


Si por ejemplo, queremos que usuario tenga todos los permisos (7), que grupo pueda leer y escribir, pero no ejecutar (6) y otros solo puedan leer (4), entonces escribiríamos $ chmod 764 Archivo_normal.




También podemos cambiar los permisos de forma recursiva usando -R (recomiendo no hacer en ningún caso un cambio de permisos recursivo en / ).


En esta foto, cambiamos los permisos de forma recursiva de todo lo que hay en Carpeta, dando todos los permisos a todos los grupos.




En el próximo tutorial de permisos, hablaré sobre los permisos especiales y la máscara de permisos.

Un saludo y hasta la próxima!

miércoles, 1 de noviembre de 2017

Comandos básicos de linux: cd

En la clase de hoy enseñaré a usar el comando cd, así como algunos de sus atributos.

Comando

Éste comando sirve para navegar entre directorios.








Para entrar en un directorio, hay que escribir $ cd DIRECTORIO . Al ser case sensitive (hay diferencia entre escribir con minúsculas o mayúsculas), no será lo mismo Carpeta_1 que carpeta_1.

Si se desea entrar en un directorio con espacios, hay que hacerlo usando la barra invertida \.









Es decir, al final de cada palabra (donde empieza el espacio) añadimos la barra \. Si autocompletan el nombre usando el tabulador, la propia terminal añadirá una barra / , aunque no es necesaria ponerla.


Atributos


Atributo ..

El atributo .. hace que volvamos a la carpeta anterior.

También podemos indicar los "niveles" que queremos ir hacia la carpeta anterior añadiendo / en función del número de carpetas que haya.







Atributo -

El atributo -  hace que volvamos a la última carpeta en la que estuvimos (no necesariamente tiene que ser la que se encuentra por encima de la actual).













En este caso, primero he entrado en Carpeta_1, y desde ahí dentro, he usado ../ para indicarle a la terminal que quiero ir un "nivel" hacia atrás, y una vez desde ahí entrar en Carpeta_2.
Usando el atributo - , se ha podido volver desde la Carpeta_2 a Carpeta_1.



Atributo ~

El símbolo ~ , se hace apretando las teclas Alt Gr + 4. Éste comando permite ir, desde cualquier directorio, hasta nuestro directorio home.



Y hasta aquí la clase de hoy, el próximo día hablaré de los permisos en linux.

Un saludo y hasta la próxima!






lunes, 30 de octubre de 2017

Comandos básicos de linux: ls

En este primer post, voy a explicar el funcionamiento del comando ls y algunos de sus atributos.


Comando

Muestra el contenido que hay en un directorio.




De color azul, muestra las carpetas Carpeta_1 y Carpeta_2.
De color blanco, muestra el documento Documento.

Podríamos hacer $ ls Carpeta_1 para ver el contenido de Carpeta_1 sin tener que entrar en ella.

Atributos

Atributos l y h

Con el atributo -l , veremos el contenido ordenado como una lista y con información adicional (voy a usar este atributo durante todo el tutorial ya que permite ver la salida de una forma más clara).


#1 Esto son los permisos de lectura, escritura y ejecución. De momento no profundizaré en los permisos, los explicaré en detalle en otra entrada. Lo único que explicaré ahora es el primero de los caracteres: d significa que es un directorio, - que es un archivo y l que es un link.

#2 Indica el número de links o directorios dentro del directorio.

#3 Usuario propietario del directorio o archivo.

#4 Grupo propietario del directorio o archivo.

#5 El tamaño (en bytes) de la carpeta o archivo, haciendo un $ ls -lh veremos el tamaño en k, M o G.


#6 Fecha de la última modificación.

#7 Nombre del directorio o archivo.


Atributos a y A

El atributo -a permite ver los directorios y archivos ocultos (los que tienen un punto al inicio del nombre), incluyendo el punto y el doble punto.







El atributo A permite ver los directorios y archivos ocultos, pero ignorando el punto y el doble punto.



Atributos r y R

El atributo -r invierte el orden de la salida.


El atributo -R en cambio, muestra los directorios y archivos de forma recursiva.



Atributo S

Este atributo permite ordenar el contenido en un directorio por tamaño, empezando por el mayor.

O también podemos verlo de una forma más clara con el atributo -h ya visto anteriormente.









Atributos u y t

El atributo -t permite ordenar la salida por la última fecha de modificación.


El atributo -u es parecido al anterior, ordena por la última fecha de acceso. Para usarlo, es necesario usar también el atributo anterior, quedando -tu.


Como veréis, la hora de los directorios y archivos es distinta que con el comando anterior, esto es porqué al añadir -u, deja de ser la hora de la última modificación y pasa a ser la hora del último acceso.




Y hasta aquí el tutorial de hoy, en el próximo hablaré sobre el comando cd.

Un saludo y hasta la próxima!