Administrador de Linux - Gestión de archivos / carpetas

Para introducir los permisos que se aplican a directorios y archivos en CentOS Linux, veamos el siguiente resultado del comando.

[centos@centosLocal etc]$ ls -ld /etc/yum* 
drwxr-xr-x. 6 root root 100 Dec  5 06:59 /etc/yum 
-rw-r--r--. 1 root root 970 Nov 15 08:30 /etc/yum.conf 
drwxr-xr-x. 2 root root 187 Nov 15 08:30 /etc/yum.repos.d

Note - Los tres tipos de objetos principales que verá son

  • "-" - un guión para archivo simple

  • "d" - para un directorio

  • "l" - para un enlace simbólico

Nos centraremos en los tres bloques de salida para cada directorio y archivo:

  • drwxr-xr-x: raíz: raíz
  • -rw-r - r--: raíz: raíz
  • drwxr-xr-x: raíz: raíz

Ahora analicemos esto para comprender mejor estas líneas:

re Significa que el tipo de objeto es un directorio
rwx Indica los permisos de directorio aplicados al propietario
rx Indica los permisos de directorio aplicados al grupo.
rx Indica los permisos de directorio aplicados al mundo.
raíz La primera instancia, indica el propietario del directorio.
raíz La segunda instancia, indica el grupo al que se aplican los permisos de grupo.

Es importante comprender la diferencia entre propietario , grupo y mundo . No comprender esto puede tener grandes consecuencias en los servidores que alojan servicios en Internet.

Antes de dar un ejemplo del mundo real, primero comprendamos los permisos que se aplican a directorios y archivos .

Eche un vistazo a la siguiente tabla y luego continúe con las instrucciones.

Octal Simbólico Permanente. Directorio
1 X Ejecutar Ingrese al directorio y acceda a los archivos
2 w Escribir Eliminar o modificar los archivos de un directorio
4 r Leer Enumere los archivos dentro del directorio

Note- Cuando los archivos deben ser accesibles para leer en un directorio, es común aplicar permisos de lectura y ejecución . De lo contrario, los usuarios tendrán dificultades para trabajar con los archivos. Si deja la escritura deshabilitada, se asegurará de que los archivos no se puedan: cambiar de nombre, eliminar, copiar o modificar los permisos.

Aplicar permisos a directorios y archivos

Al aplicar permisos, hay que comprender dos conceptos:

  • Permisos simbólicos
  • Permisos octales

En esencia, cada uno es la misma pero una forma diferente de hacer referencia y asignar permisos de archivo. Para obtener una guía rápida, estudie y consulte la siguiente tabla:

Leer Escribir Ejecutar
Octal 4 2 1
Symbolic r w X

Al asignar permisos usando el octalmétodo, utilice un número de 3 bytes como: 760. El número 760 se traduce en: Propietario: rwx; Grupo: rw; Otro (o mundo) sin permisos.

Otro escenario: 733 se traduciría en: Propietario: rwx; Grupo: wx; Otro: wx.

Hay un inconveniente de los permisos que utilizan el método Octal. Los conjuntos de permisos existentes no se pueden modificar. Solo es posible reasignar todo el conjunto de permisos de un objeto.

Ahora podría preguntarse, ¿qué hay de malo en reasignar siempre permisos? Imagine una estructura de directorio grande, por ejemplo / var / www / en un servidor web de producción. Queremos quitar de forma recursiva el bit w o write en todos los directorios de Otro. Por lo tanto, obligando a que se agregue de manera proactiva solo cuando sea necesario para las medidas de seguridad. Si reasignamos todo el conjunto de permisos, eliminamos todos los demás permisos personalizados asignados a cada subdirectorio.

Por tanto, provocará un problema tanto para el administrador como para el usuario del sistema. En algún momento, una persona (o personas) necesitaría reasignar todos los permisos personalizados que fueron eliminados al reasignar todo el conjunto de permisos para cada directorio y objeto.

En este caso, querríamos usar el método simbólico para modificar los permisos:

chmod -R o-w /var/www/

El comando anterior no "sobrescribe los permisos" sino que modifica los conjuntos de permisos actuales. Así que acostúmbrese a utilizar las mejores prácticas

  • Octal solo para asignar permisos
  • Simbólico para modificar conjuntos de permisos

Es importante que un administrador de CentOS sea competente con los permisos Octal y Simbólicos, ya que los permisos son importantes para la integridad de los datos y de todo el sistema operativo. Si los permisos son incorrectos, el resultado final serán datos confidenciales y todo el sistema operativo se verá comprometido.

Con eso cubierto, veamos algunos comandos para modificar permisos y miembros / propietarios de objetos:

  • chmod
  • chown
  • chgrp
  • umask

chmod: Cambiar bits de permiso del modo de archivo

Mando Acción
-C Como verboso, pero solo informará los cambios realizados
-v Detallado, genera los diagnósticos para cada solicitud realizada
-R Aplica de forma recursiva la operación en archivos y directorios

chmod nos permitirá cambiar los permisos de directorios y archivos usando conjuntos de permisos octales o simbólicos . Usaremos esto para modificar nuestra asignación y cargar directorios.

chown: Cambiar propietario y grupo del archivo

Mando Acción
-C Como verboso, pero solo informará los cambios realizados
-v Detallado, genera los diagnósticos para cada solicitud realizada
-R Aplica de forma recursiva la operación en archivos y directorios

chown puede modificar tanto la propiedad del usuario como el grupo de objetos. Sin embargo, a menos que necesite modificar ambos al mismo tiempo, generalmente se usa chgrp para grupos.

chgrp: Cambiar la propiedad de grupo del archivo o directorio

Mando Acción
-C Como verboso, pero solo informará los cambios
-v Detallado, genera los diagnósticos para cada solicitud realizada
-R Recursivamente, aplica las operaciones en archivos y directorios.

chgrp cambiará el propietario del grupo al suministrado.

Práctica del mundo real

Cambiemos todas las asignaciones del subdirectorio en / var / www / Students / para que el grupo propietario sea el grupo de estudiantes . Luego asigne la raíz de estudiantes al grupo de profesores. Más tarde, haga que el Dr. Terry Thomas sea el propietario del directorio de estudiantes , ya que tiene la tarea de estar a cargo de toda la academia de Ciencias de la Computación en la escuela.

Como podemos ver, cuando se crea, el directorio se deja bastante crudo.

[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 root root 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -l /var/www/students/ 
total 0 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 assignments 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 uploads 

[root@centosLocal ~]#

Como administradores, nunca queremos dar nuestras credenciales de root a nadie. Pero al mismo tiempo, debemos permitir que los usuarios puedan hacer su trabajo. Permitamos que el Dr. Terry Thomas tome más control de la estructura de archivos y limite lo que los estudiantes pueden hacer.

[root@centosLocal ~]# chown -R drterryt:professors /var/www/students/ 
[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 drterryt professors 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -ls /var/www/students/ 
total 0 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 assignments 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 uploads

[root@centosLocal ~]#

Ahora, cada directorio y subdirectorio tiene un propietario de drterryt y el grupo propietario son los profesores . Dado que el directorio de tareas es para que los estudiantes entreguen el trabajo asignado, eliminemos la capacidad de enumerar y modificar archivos del grupo de estudiantes .

[root@centosLocal ~]# chgrp students /var/www/students/assignments/ && chmod 
736 /var/www/students/assignments/

[root@centosLocal assignments]# ls -ld /var/www/students/assignments/ 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[root@centosLocal assignments]#

Los estudiantes pueden copiar asignaciones al directorio de asignaciones . Pero no pueden enumerar el contenido del directorio, copiar archivos actuales o modificar archivos en el directorio de asignaciones . Por lo tanto, solo permite a los estudiantes enviar tareas completadas. El sistema de archivos CentOS proporcionará un sello de fecha de cuándo se entregaron las asignaciones.

Como propietario del directorio de asignaciones :

[drterryt@centosLocal assignments]$ whoami 
drterryt

[drterryt@centosLocal assignments]$ ls -ld /var/www/students/assignment 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[drterryt@centosLocal assignments]$ ls -l /var/www/students/assignments/ 
total 4 
-rw-r--r--. 1 adama  students  0 Jan  9 23:14 myassign.txt 
-rw-r--r--. 1 tammyr students 16 Jan  9 23:18 terryt.txt

[drterryt@centosLocal assignments]$

Podemos ver que el propietario del directorio puede enumerar archivos, así como modificarlos y eliminarlos.

Comando umask: proporciona los modos predeterminados para los permisos de archivos y directorios a medida que se crean

umask es un comando importante que proporciona los modos predeterminados para los permisos de archivos y directorios a medida que se crean.

Los permisos de umask utilizan lógica unaria negada.

Permiso Operación
0 Leer, escribir, ejecutar
1 Lee y escribe
2 Leer y ejecutar
3 Solo lectura
4 Leer y ejecutar
5 Escribir solamente
6 Ejecutar solo
7 no permisos
[adama@centosLocal umask_tests]$ ls -l ./ 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt

[adama@centosLocal umask_tests]$ whoami 
adama

[adama@centosLocal umask_tests]$ umask 
0022

[adama@centosLocal umask_tests]$

Ahora, cambiemos la umask de nuestro usuario actual y creemos un nuevo archivo y directorio.

[adama@centosLocal umask_tests]$ umask 077

[adama@centosLocal umask_tests]$ touch mynewfile.txt

[adama@centosLocal umask_tests]$ mkdir myNewDir

[adama@centosLocal umask_tests]$ ls -l 
total 0 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt 
drwx------. 2 adama students 6 Jan 10 00:35 myNewDir 
-rw-------. 1 adama students 0 Jan 10 00:35 mynewfile.txt

Como podemos ver, los archivos recién creados son un poco más restrictivos que antes.

umask para usuarios debe cambiarse en:

  • /etc/profile
  • ~/bashrc
[root@centosLocal centos]# su adama 
[adama@centosLocal centos]$ umask 
0022 
[adama@centosLocal centos]$

Generalmente, la umask predeterminada en CentOS estará bien. Cuando tenemos problemas con un valor predeterminado de 0022 , generalmente es cuando diferentes departamentos pertenecientes a diferentes grupos necesitan colaborar en proyectos.

Aquí es donde entra en juego el rol de un administrador del sistema, para equilibrar las operaciones y el diseño del sistema operativo CentOS.