GNU/Linux >> Tutoriales Linux >  >> Linux

Cambio de permisos de Linux

Este artículo describe cómo cambiar los permisos en un servidor en la nube de Linux® usando chmod comando.

¿Qué es el comando chmod?

En pocas palabras, chmod significa modo de cambio y se utiliza para establecer permisos de archivos o directorios en Linux. Los usuarios raíz usan chmod para determinar qué usuarios, grupos y otros pueden acceder a archivos o directorios.

Por lo general, usa el chmod comando en los siguientes formatos:

$ chmod (options) (permissions) (file name)
$ chmod (permissions) (file name)

El uso de opciones con chmod El comando es opcional. El segundo ejemplo recibe el uso más frecuente. Sin una opción presente, chmod modifica los permisos del archivo o directorio designado en el comando.

Permisos

En un sistema Linux, puede usar permisos para referirse al propietario del archivo o directorio (usuario), el grupo propietario del archivo o directorio (grupo) o cualquier otra persona que acceda al archivo o directorio (otros).

Indique estos permisos usando la siguiente notación:

  • caracteres alfanuméricos (r, w, x)
  • números octales (0-7)

Por ejemplo, tiene un archivo llamado example.txt y desea establecer los siguientes permisos:

  • El usuario puede leer, escribir y ejecutar el archivo.
  • Los miembros del grupo pueden leer y ejecutar, pero no escribir el archivo.
  • Cualquier otro solo puede leer el archivo.

La siguiente opción de comando establece los permisos deseados para example.txt :

$ chmod u=rwx,g=rx,o=r example.txt

Esta opción utiliza caracteres alfanuméricos para indicar los usuarios que pueden acceder al archivo, así como los permisos que desea establecer para estos usuarios designados.

  • La letra 'u' =usuario
  • La letra 'g' =grupo
  • La letra 'o' =otro
  • La letra 'r' =leer
  • La letra 'w' =escribir
  • La letra 'x' =ejecutar

El siguiente ejemplo muestra cómo Linux representa los permisos otorgados en el ejemplo anterior:

-rwxr-xr--

Las tres primeras letras (rwx) son los permisos del usuario. Los otros tres (r-x) representan los permisos del grupo, y los últimos tres (r–) representan los permisos de los demás.

A continuación, tenemos la opción octal para nuestro example.txt ejercicio:

$ chmod 754 example.txt

En este ejemplo, los números 7, 5 y 4 representan cada uno los permisos de usuario, grupo y otros. La posición del primer número determina el permiso del usuario, el segundo número determina los permisos del grupo y el tercer número asigna los permisos para los demás.

Estos números no se seleccionan al azar. La suma de los números 4, 2, 1 y 0 determina los permisos. Los números tienen las siguientes asignaciones:

  • 4 significa 'leer'
  • 2 significa 'escribir'
  • 1 significa 'ejecutar'
  • 0 significa 'ninguno'

Por lo tanto, en nuestro ejemplo anterior, el 7 se determina a partir de la combinación de leer (4), escribir (2) y ejecutar (1):4 + 2 + 1 =7. El 5 se obtiene al sumar leer (4), ninguno (0) y ejecutar (1):4 + 0 + 1 =5. Por último, el 4 es una combinación de lectura (4), ninguno (0) y ninguno (0):4 + 0 + 0 =4 .

Opciones

Por lo general, no necesita usar opciones en el chmod comando, pero en caso de que lo haga, puede usar las siguientes opciones con chmod :

  • -c , --changes :da una salida detallada para los cambios realizados
  • -f , --silent , --quiet :silencia la mayoría de los mensajes de error
  • -v , --verbose :genera un mensaje detallado para cada acción procesada
  • --no-preserve-root :Ignora la deferencia que normalmente se da por defecto al directorio / (raíz)
  • --preserve-root :No opera recursivamente en el directorio / (raíz)
  • --reference=RFILE :Establece permisos para que coincidan con los de RFILE, ignorando cualquier MODO específico
  • -R , --recursive :Los cambios realizados en archivos o directorios se aplican de forma recursiva
  • --help :Muestra el mensaje de ayuda, luego sale
  • --version :muestra la información de la versión y luego sale

Extras

Además de los permisos ya discutidos, el chmod El comando puede establecer otros tres permisos especiales en Linux.

  • SUID (Establecer ID de usuario)
  • SGID (establecer ID de grupo)
  • Broca adhesiva

SUID

Un s en el rwx del usuario conjunto de permisos, reemplazando el x , representa este permiso, como se muestra en el siguiente ejemplo:

$ chmod 4755 /usr/bin/passwd
$ ls -lh /usr/bin/passwd
-rwsr-xr-x.  1  root  root  28K  Mar  10  2020  /usr/bin/passwd

Las primeras tres letras en rwsr-xr-x representan los permisos del usuario. Tenga en cuenta que en lugar de un x hay un s en las tres ranuras de permisos del usuario. En lugar de mostrar x para ejecutar, hay un s en el lugar de ejecución. ¿Por qué es eso?

Nota: El 4 delante del conjunto habitual de permisos octales representa este permiso. Así que en lugar de 755 , el permiso está escrito como 4755 .

Debe usar esta opción con precaución porque este permiso en particular le permite a un usuario ejecutar un programa binario como si fuera el propietario de ese programa aunque no lo sea. El ejemplo más conocido de esto es el passwd comando.

En el caso de passwd , el usuario puede ejecutar el programa aunque el programa binario sea propiedad de root. Sin embargo, debido a que passwd está configurado como SUID de forma predeterminada, siempre se ejecuta como usuario raíz.

Si un usuario regular tiene permisos SUID en otros programas binarios, podría ejecutar comandos como root sin tener root permisos Permite una escalada anormal de privilegios que generalmente requiere sudo privilegios de acceso.

Los permisos SUID pueden afectar una precaución integrada en el sistema operativo Linux en forma de archivos binarios únicamente. No afecta a los scripts.

SGID

Un s en el rwx del grupo conjunto de permisos, reemplazando el x en t r-x segmento, representa el permiso SGID, como se muestra en el siguiente ejemplo:

$ chmod 2755 /usr/bin/screen
$ ls -lh /usr/bin/screen
-rwxr-sr-x.  1  root  screen  465K  Feb  10  2020  /usr/bin/screen

Este s está en el segundo grupo de tres permisos, que descubrimos que son los permisos del grupo anteriormente cuando se escriben en estilo alfanumérico. En la representación octal, un 2 delante de los otros tres números octales de permiso denota este permiso. En lugar de 755 , escribe esto como 2755 .

Al igual que SUID, los permisos SGID solo funcionan en binarios. No funcionan en scripts. En cuanto a lo que hace SGID, permite a los miembros del grupo sin privilegios ejecutar un binario como si fueran el usuario root.

Por lo general, puede usar este permiso en directorios donde los miembros del grupo necesitan tener acceso dentro del directorio compartido por el grupo. Todos los archivos creados en este directorio tienen el mismo propietario del grupo, sin importar qué miembro del grupo haya creado el archivo.

Pedacito pegajoso

Un t en el rwx de los demás conjunto de permisos, reemplazando el x , representa este permiso, como se muestra en el siguiente ejemplo:

$ chmod 1777 /tmp
$ ls -lhd /tmp
drwxrwxrwt.  8  root  root  4.0K  Nov  6  14:42  /tmp

Observe el t en el último grupo de tres letras. El equivalente octal de la t es un 1 delante de los tres octales de permiso. En lugar de 777 , escribe esto como 1777 .

¿Qué hace este bit pegajoso? Por lo general, utiliza este permiso en un tmp directorio, y su función es evitar que los usuarios eliminen archivos propiedad de otros usuarios. Por lo general, si un grupo tiene acceso de escritura a un directorio, cualquier usuario dentro de ese grupo puede eliminar cualquier archivo dentro de ese directorio. El permiso de bits pegajosos detiene eso. Solo el creador del archivo puede eliminarlo.

Como práctica recomendada, debe establecer el permiso de bits adhesivos en cualquier directorio cuyo otro permiso sea octal 7 (lectura, escritura, ejecución). En nuestro 754 ejemplo, desea utilizar el permiso de bit fijo si los octales son 757 donde 7 es el tercer octal (que representa el permiso de los demás).

Hoja de referencia de permisos para archivos y directorios

A continuación se muestra una hoja de referencia rápida que explica cada parte del resultado de ejemplo:

-rwxrw-r--  rack  space  123G  Feb  03  15:36  example.txt
  • - :El - al principio te dice que se trata de un archivo. A d al principio indica un directorio.
  • rwx :Las tres primeras letras representan los permisos del propietario del archivo y significan que el propietario puede leer, escribir y ejecutar el archivo ejemplo.txt.
  • rw- :Las segundas tres letras representan los permisos del grupo y significan que los miembros del grupo pueden leer y escribir en el archivo, pero no pueden ejecutarlo.
  • r-- :Las tres terceras letras representan los permisos de los demás y significan que cualquier persona que no sea el propietario o que no pertenezca al grupo al que pertenece el archivo solo puede leer el archivo. No pueden escribir en el archivo ni ejecutarlo.
  • rack :el propietario del archivo.
  • space :El propietario del grupo.
  • 123G :El tamaño del archivo en gigabytes. Una M denotaría megabytes, y una K denotaría kilobytes.
  • Feb 03 15:36 :Indica la fecha y la hora en que se modificó el archivo por última vez.
  • example.txt :El nombre del archivo. Si enumera esto como '/example', es el nombre del directorio.

Linux
  1. Permisos de Linux 101

  2. ¿Qué es Umask en Linux?

  3. Permisos de Linux:una introducción a chmod

  4. Cómo usar el comando chmod (Modo de cambio) en Linux

  5. Comando chmod de Linux

Cómo cambiar recursivamente los permisos de archivos en Linux

Cómo cambiar permisos en Linux

Comando Chmod en Linux

Comando Chmod:cómo cambiar los permisos de archivo en Linux

Aprenda el uso del comando chmod (modo de cambio) en Linux

Ejemplos de comandos chmod de Linux