GNU/Linux >> Tutoriales Linux >  >> Linux

Ejemplos de comandos básicos "chmod" en Linux

El comando de Linux para cambiar los permisos en un archivo o directorio es chmod, que nos gusta leer como modo de cambio de archivo. chmod tiene dos modos de funcionamiento:

  1. modo simbólico
  2. modo numérico/octal

Para cambiar el permiso usando el comando chmod de Linux, debemos seguir algunas reglas y sintaxis. Como discutimos anteriormente, podemos cambiar el permiso de forma numérica y alfabética, aquí he explicado ambos métodos con todos los trucos.

Forma alfabética

Para usar este método, debe recordar las siguientes reglas y alfabetos para un uso adecuado. Para cambiar el permiso del usuario, debe usar el alfabeto "u “. Así para el Grupo “g ” y para otros es “o “.

Al igual que Usuario, Grupo y Otros, debemos recordar algunos alfabetos para otorgar permisos de Lectura, Escritura y Ejecución. Al igual que para el permiso de Lectura, debe usar el alfabeto "r “, para escribir “w ” y para Ejecutar es “x “.

Entonces, la fórmula para asignar permisos usando el comando chmod se muestra a continuación:

  • u – Usuario
  • g – Grupo
  • o – Otros
  • r – Leer
  • w – Escribir
  • x – Ejecutar

Por ejemplo, si desea otorgar permiso de lectura y escritura al usuario/propietario y permiso de lectura al grupo y otros utilizando la forma alfabética, el comando sería:

# chmod u+rw,g+r,o+r file_name

Forma Numérica

Para usar este método, debe recordar las siguientes reglas y números para un uso adecuado.

  • 4 – Para dar permiso de lectura
  • 2 – Para dar permiso de escritura
  • 1 – Para dar permiso de ejecución

Por ejemplo, si desea otorgar permiso de lectura y escritura al usuario/propietario y permiso de lectura al grupo y otros de forma numérica, el cálculo del comando sería:

4+2 =6 :Esto agregará permiso de lectura y escritura al usuario/propietario.
4 :Esto agregará permiso de lectura al grupo.
4 :Esto agregará permiso de lectura a Otro.

Entonces el comando sería como:

# chmod 644 filename

Puede verificar el permiso de cualquier archivo usando el siguiente comando:

# ls -l file.txt 
-rw-rw-r-- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

Y use el siguiente comando para verificar el permiso de un directorio:

# ls -ld data/
drwxrwxr-x 2 geeklab geeklab 4096 Feb 20 06:18 data/

Ahora aquí la pregunta es:cómo identificar qué permisos se han asignado a un archivo o directorio. Es bastante simple. Arriba he dado dos ejemplos. Ahora identifiquemos el permiso de file.txt. Si observa que las propiedades del archivo comienzan con "-rw-rw-r–". Aquí podemos identificar qué permiso se asignó a file.txt.

La sección de permisos se divide en 10 bits de los cuales

”:El primer bit es responsable de identificar si se trata de un archivo, un directorio o un enlace simbólico. Consulte los siguientes símbolos:

Símbolos importantes:

  • :Permiso asignado a un Archivo
  • d :Permiso asignado a un Directorio
  • l :Permiso asignado a un enlace simbólico
  • Los bits 2, 3 y 4 son para el permiso del propietario.
  • Los bits 5, 6 y 7 son para el permiso del Grupo.
  • Los bits 8, 9 y 10 tienen el permiso de Otros.

Para dar permiso a cualquier archivo/directorio, debe usar "+ " Símbolo. Para eliminar el permiso de cualquier archivo/directorio, debe usar “ ” Símbolo.

Ejemplos del uso del comando chmod

Asignar permiso a un archivo

Aquí tengo un archivo llamado file.txt. Démosle permiso de lectura y escritura al usuario/propietario mediante el comando chmod.

$ chmod u+rw file.txt
$ ls -l file.txt 
-rw------- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

De forma numérica, use el siguiente comando:

$ chmod 600 file.txt

Asignar permiso a un directorio

El siguiente comando se puede usar para dar permiso a un directorio. Aquí tengo un directorio llamado datos. Entonces, demos permiso completo (lectura, escritura, ejecución) al usuario/propietario. Consulte el comando a continuación.

$ chmod u+rwx data/
$ ls -ld data/
drwx------ 2 geeklab geeklab 4096 Feb 20 06:18 data/

Forma Numérica:

$ chmod 700 data/

Eliminar permiso de un archivo/directorio

Elimine el permiso de un archivo/directorio usando el siguiente comando chmod de Linux. Aquí estoy eliminando el permiso de lectura y escritura del usuario/propietario.

$ chmod u-rw file.txt 
$ ls -l file.txt 
----rw-r-- 1 geeklab geeklab 0 Feb 20 07:18 file.txt

Dar permiso a todos

Puede usar el siguiente comando para dar permiso a todos. Aquí estoy asignando permiso completo a todos para acceder a file.txt. Hay dos métodos para hacer lo mismo.

Método 1

$ chmod a+rwx file.txt 
$ ls -l file.txt 
-rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

Método 2
También puede usar el siguiente comando chmod de Linux para hacer lo mismo.

$ chmod ugo+rwx file.txt 
$ ls -l file.txt 
-rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

Forma Numérica :

$ chmod 777 file.txt 

Asigne diferentes permisos a Usuario, Grupo y Otros usando el comando chmod de Linux único

Aquí estoy quitando el permiso de ejecución del usuario/propietario y agregando el permiso de ejecución al grupo y otros usando un solo comando.

$ chmod u-x,g+x,o+x file.txt
$ ls -l file.txt 
-rw-rwxrwx 1 geeklab geeklab 0 Feb 20 09:40 file.txt

Asignar permiso a un archivo tomando como referencia cualquier otro archivo

Puede copiar el permiso de un archivo a otro. Aquí tengo un archivo llamado a1.txt cuyo permiso es algo así como “-rw-r–r– “.

$ ls -l a1.txt 
-rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:21 a1.txt

Ahora quiero asignar el mismo permiso a mi otro archivo llamado a2.txt. Puede hacerlo usando el comando chmod de Linux con el argumento –referencia. Consulte el comando a continuación.

$ chmod --reference=a1.txt a2.txt 
$ ls -l a2.txt 
-rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:22 a2.txt

Asignar permiso recursivamente

Tengo un directorio llamado datos, en el que tengo tantos archivos y quiero darles permiso a todos a la vez en lugar de manualmente uno por uno. Para que pueda usar el comando chmod de Linux con el argumento -R. Esto te ayudará a dar permiso de forma recursiva.

$ chmod -R ugo+rwx data/

Forma Numérica :

$ chmod -R 777 data/

Asignar permiso con salida detallada

Puede obtener resultados después de asignar permisos a cualquier archivo/directorio utilizando el comando chmod de Linux con el argumento -v. Consulte el comando a continuación.

$ chmod -v 777 file.txt 
mode of 'file.txt' changed from 0664 (rw-rw-r--) to 0777 (rwxrwxrwx)

Asignar permiso con salida (Este comando dará salida solo si hay algún cambio)

El comando chmod con el argumento -c también hace lo mismo que la salida Verbose (es decir, -v). Pero mostrará la salida solo si hay algún cambio en el permiso. Si está asignando el mismo permiso, no mostrará ningún resultado.

$ chmod -c 755 file.txt 
mode of 'file.txt' changed from 0777 (rwxrwxrwx) to 0755 (rwxr-xr-x)

Asignación de permisos ignorando/resolviendo errores

Para evitar errores o rectificar errores durante la asignación de permisos, puede usar el comando chmod de Linux con el argumento -f. Consulte el comando a continuación.

$ chmod -f 755 file.txt 

Para ayuda con el comando chmod

Para obtener más opciones y argumentos del comando chmod, puede usar el siguiente comando.

$ chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
  or:  chmod [OPTION]... OCTAL-MODE FILE...
  or:  chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.
With --reference, change the mode of each FILE to that of RFILE.

  -c, --changes          like verbose but report only when a change is made
  -f, --silent, --quiet  suppress most error messages
  -v, --verbose          output a diagnostic for every file processed
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's mode instead of MODE values
  -R, --recursive        change files and directories recursively
      --help     display this help and exit
      --version  output version information and exit

Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.

GNU coreutils online help: [http://www.gnu.org/software/coreutils/]
Full documentation at: [http://www.gnu.org/software/coreutils/chmod]
or available locally via: info '(coreutils) chmod invocation'

Comprobar la versión del comando chmod

Puede usar el comando chmod de Linux con el argumento –version para comprobar la versión del comando chmod instalado.

$ chmod --version
chmod (GNU coreutils) 8.25
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later [http://gnu.org/licenses/gpl.html].
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie and Jim Meyering.


Linux
  1. Comando mv en Linux:7 ejemplos esenciales

  2. Ejemplos de comandos de cola de Linux

  3. Ejemplos de comandos ln en Linux

  4. Ejemplos de comandos gzip en Linux

  5. Ejemplos de comandos de archivo en Linux

Ejemplos de comandos chmod de Linux

Ejemplos de comandos cat de Linux

Ejemplos de comandos gzip de Linux

Ejemplos de comandos dumpe2fs en Linux

Ejemplos de comandos fsck en Linux

Ejemplos de comandos mkfs en Linux