Sunday, 5 August 2018

Consejos y trucos, artículos básicos sobre configuraciones que ayudan a un mejor desempeño de nuestros SO's. Cada proceso ha sido personalmente comprobado.


 

En este blog continuamos con la parte de comandos referentes a los archivos, así que sigamos aprendiendo acerca de los maravillosos y geniales comandos Linux.

El cajón de los comandos Linux es una guía de referencia rápida para todos los usuarios Linux que desean aprender los comandos de este gran SO. Los comandos se dividen en 15 categorías, lo cual nos permite tener un mayor entendimiento acerca de que comando utilizar en una específica situación. El agradecimiento total al creador de esta guía +Bobbin Zachariah.

Esta guía puede ser utilizada ya sea para usuarios nuevos o avanzados, proveyendo el mejor esfuerzo para dar a conocer los comandos Linux más relevantes. 

Así que empecemos con la 1ra parte de los comandos referentes a los permisos de los archivos.

La seguridad en Linux comienza con los permisos de archivos. Básicamente los permisos para los archivos y directorios juegan un rol vital en la seguridad de un sistema. Cuando creas un archivo o directorio en Linux, trae sus permisos por defecto. Existen tres niveles de permisos de archivos: El dueño, miembros del grupo y otros. El comando chmod lo utilizamos para cambiar estos permisos. Asi que en este artículo aprenderemos a cambiar los permisos de los archivos con el comando chmod.

Información básica acerca de permisos de archivos.

Los permisos determinan como los usuarios accesan a los recursos del sistema. La seguridad del sistema se configura por el UID (User ID), el GID (Group ID tanto primario como secundario), y los permisos en el objeto al que está tratando de accesar. Estos permisos le pueden permitir a un usuario poder ver un archivo pero no modificarlo o de abrir y modificar el archivo. Estos permisos se asignan a cada uno de los tres tipos de permisos por cada archivo o directorio en el sistema:


  • Dueño del usuario: Esta es la cuenta de usuario que ha sido asignada para ser el dueño del archivo o directorio. Por defecto, se le asigna al usuario que ha creado el archivo o directorio.
  • Dueño del grupo: Este es el grupo al que le ha sido asignado pertenencia sobre el archivo o directorio. Los permisos asignados a un grupo aplican para todos los usuarios que son miembros de ese grupo. Por defecto, es el grupo primario del usuario que ha creado el archivo.
  • Otros: Se refiere a todos los demás usuarios que han entrado exitosamente al sistema. Los permisos asignados a este tipo de entidad aplican a todas estas cuentas.


Existen tres tipos de permisos:
  • Leer (r): Permite a un usuario poder abrir y ver un archivo pero no le permite modificarlo o guardarlo y en los directorios solo permite enlistar el contenido.
  • Escribir (w): Permite a un usuario poder abrir, modificar y guardar un archivo. Y en la parte de los directorios permite a los usuarios añadir o eliminar archivos de el.
  • Ejecutar (x): Permite a un usuario correr un archivo ejecutable y tambien entrar al directorio.
Para obtener información más detallada acerca de los permisos de los archivos y directorios corremos el comando ls -l...



Utilizaremos la segunda línea como ejemplo para explicar lo básico.

La primera columna nos indica el modo para cada archivo y directorio el cual puede señalarse con la letra d para un directorio y el - para un archivo normal o l para un enlace simbólico. Esto solo nos puede indicar si la entrada está asociada con un archivo o directorio.

  • Los primeros tres caracteres son los permisos asignados a la entrada del dueño (rw-). Si el archivo fuera un ejecutable, el permiso para ejecutar (x) lo habria reemplazado al -.
  • Los tres siguientes caracteres son los permisos asignados al grupo dueño (r--).
  • Los últimos tres caracteres son los permisos asignados a otros (r--), refiriéndose a cualquier usuario legítimamente autenticado en el sistema pero sin ser dueño o ser parte del grupo dueño.
El - para cada uno de los tres caracteres indica que ya no hay (más) permisos para ser añadidos ahi.

La tercera columna indica al usuario dueño del archivo (likhriss-team) y la cuarta indica al dueño del grupo (likhriss-team).

1. Modo simbólico para cambiar permisos.

Los permisos (formas de acceso) pueden ser cambiados con el comando chmod utilizando también algunos operadores (+,- o =) para asignar los permisos (r,w o x) a un usuario específico (g,o,u, o a). El comando acepta ya sea un modo de acceso octal o simbólico. Hablaremos acerca del modo de acceso octal mas adelante aunque es importante saber que es el preferido por los linuxeros. De cualquier forma hay usuarios que prefieren utilizar la forma simbólica porque usualmente le modifican un modo ya existente en vez de reemplazarlo completamente.

El modo simbólico es utilizado como chmod entity=permissions filename. Las especificaciones del modo simbólico tiene 3 partes, hecho de caracteres individuales y utiliza una letra para identificar la parte:


  • Entidad: Usuario dueño= u, el grupo dueño= g, otros= o, y todo = a.
  • Operación: + para añadir, - para remover, o = para asignar(Remover los otros permisos existentes)
  • Imponer permisos: r= leer, w= escribir, y x= ejecutar.
Aqui hay algunos ejemplos para que entendamos mejor.

chmod +x: Añadir que se ejecuten permisos para todas las entidades de usuarios, grupos y otros. Se utiliza para hacer un script o un programa ejecutable para poder correrlo.




Ahora podemos correr el script.



u +x: Añadir permisos de ejecución solo para el usuario.




go -w: Remover permisos de escritura de un grupo y otras clases.




a =rw: Permitir leer y escribir, pero no ejecutar permisos para todos.




g -x, o -rx: Remover permisos de ejecución para el grupo y remover los permisos de leer y ejecutar para los otros.


NOTA: No usar el espacio despues de la coma de lo contrario dara error.


Como pueden ver es posible hacer combinaciones para manipular varias entidades a la vez.

Hay que tener en mente que cuando utilizas el modo simbólico, los permisos que no especifiques se quedan como estaban antes de ejecutar el comando chmod.

2. Método numérico (octal) para cambiar permisos.

Finalmente, también podemos usar permisos numéricos con chmod. Esta es la forma más utilizada comúnmente para configurar permisos para archivos y directorios. Para hacer esto, corremos este comando chmod numeric_permission filename. Cada permiso es representado por un número y el permiso para una entidad en específico se representa por un conjunto de tres columnas.




En el diagrama de arriba

Al "Usuario" le damos el permiso (421), en donde el usuario puede leer, escribir y ejecutar.

Al "Grupo" le damos el permiso (420), en donde los miembros del grupo pueden leer y escribir.

A los "Otros" les damos el permiso (400), en donde los otros solo pueden leer.

En el método numérico todos los permisos se cambian al mismo tiempo.

Por ejemplo:

755: Establecemos el permiso para el usuario para que pueda leer+escribir+ejecutar, fijamos el permiso de leer+ejecutar para los miembros de un grupo y los permisos de leer+ejecutar para los otros.



476: Fijar el permiso para que el usuario solamente pueda leer, fijar los permisos de leer+escribir+ejecutar para el grupo y para los otros fijar el permiso de leer+escribir.



500: Fijar los permisos para leer+ejecutar al usuario, no fijar permisos para el grupo ni para los otros.



Cuando utilizamos el metodo numerico, siempre debemos especificar tres valores (Usuario, grupos y otros).