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.
[[email protected] 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.
[[email protected] ~]# ls -ld /var/www/students/
drwxr-xr-x. 4 root root 40 Jan 9 22:03 /var/www/students/
[[email protected] ~]# 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
[[email protected] ~]#
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.
[[email protected] ~]# chown -R drterryt:professors /var/www/students/
[[email protected] ~]# ls -ld /var/www/students/
drwxr-xr-x. 4 drterryt professors 40 Jan 9 22:03 /var/www/students/
[r[email protected] ~]# 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
[[email protected] ~]#
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 .
[[email protected] ~]# chgrp students /var/www/students/assignments/ && chmod
736 /var/www/students/assignments/
[[email protected] assignments]# ls -ld /var/www/students/assignments/
drwx-wxrw-. 2 drterryt students 44 Jan 9 23:14 /var/www/students/assignments/
[[email protected] 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 :
[[email protected] assignments]$ whoami
drterryt
[[email protected] assignments]$ ls -ld /var/www/students/assignment
drwx-wxrw-. 2 drterryt students 44 Jan 9 23:14 /var/www/students/assignments/
[[email protected] 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
[[email protected] 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 |
[[email protected] 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
[[email protected] umask_tests]$ whoami
adama
[[email protected] umask_tests]$ umask
0022
[[email protected] umask_tests]$
Ahora, cambiemos la umask de nuestro usuario actual y creemos un nuevo archivo y directorio.
[[email protected] umask_tests]$ umask 077
[[email protected] umask_tests]$ touch mynewfile.txt
[[email protected] umask_tests]$ mkdir myNewDir
[[email protected] 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
[[email protected] centos]# su adama
[[email protected] centos]$ umask
0022
[[email protected] 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.