logo

Comando Chmod en Linux/Unix con ejemplos

El comando chmod de Linux se utiliza para cambiar los permisos de acceso de archivos y directorios. Lo que representa modo de cambio . No puede cambiar el permiso de los enlaces simbólicos. Incluso, ignora los enlaces simbólicos que se encuentran en el recorrido recursivo del directorio.

En el linux sistema de archivos, cada archivo está asociado con un propietario particular y tiene acceso de permiso para diferentes usuarios. Las clases de usuarios pueden ser:

  • dueño
  • miembro del grupo
  • Otros (todos los demás)

Los permisos de archivos en Linux son los siguientes tres tipos:

  • leer (r)
  • escribir (w)
  • ejecutar (x)

Breve historia de Chmod

Primero, el comando chmod está representado en AT&T UNIX versión 1 con la llamada al sistema chmod. Las listas de control de acceso se incluyeron en varios sistemas de archivos además de estos modos más comunes para mejorar la flexibilidad porque los sistemas crecieron en tipos y número de usuarios.

La versión chmod organizada en GNU coreutils fue especificada por Jim Meyering y David MacKenzie. Este comando está presente como un paquete aislado para Microsoft Windows como un elemento de la colección de puertos Win32 nativos de UnxUtils de utilidades básicas similares a GNU Unix. Además, el comando chmod se envió al sistema operativo IBM i.

Veamos cómo cambiar el permiso del archivo usando el comando chmod.

Sintaxis:

clase vs objeto java

La sintaxis básica del comando chmod es la siguiente:

 chmod 

Las opciones generalmente implementadas son:

    -R:Significa recursivo, es decir, agregar objetos a subdirectorios.-EN:Significa detallado, muestra objetos modificados (los objetos no modificados no se muestran).

El objeto de destino se ve influenciado si se menciona un enlace simbólico. Los modos de archivo relacionados directamente con enlaces simbólicos no se utilizan normalmente.

El componente principal del permiso chmod:

Por ejemplo, rwxr-x---

Todos los grupos de tres personajes especifican permisos para todas las clases:

    rwx:Los tres caracteres situados más a la izquierda especifican permisos para el propietario del archivo (es decir, la clase de Usuario).rx:Los tres caracteres del medio especifican permisos para el grupo propietario del archivo (es decir, la clase Grupo).---:Los tres caracteres situados más a la derecha especifican permisos para la clase Otro. Los usuarios que no sean el propietario del archivo ni los miembros del grupo no pueden acceder al archivo.

Opciones:

El comando chmod admite las siguientes opciones de línea de comandos:

-c, --cambios: Es similar a la opción detallada, pero la diferencia es que se informa si se ha realizado un cambio.

-f, --silencio, --quieto: Se utiliza para suprimir los mensajes de error.

-v, --detallado: Se utiliza para mostrar un diagnóstico para cada archivo procesado.

--no-preservar-raíz: Se utiliza para no tratar el símbolo de barra invertida ('/'), especialmente (el valor predeterminado).

--preserve-root: Si se utiliza esta opción, no funcionará de forma recursiva en la barra invertida ('/').

--referencia=ARCHIVOR: Se utiliza para especificar el modo del RFILE o valores de MODO.

-R, --recursivo: Se utiliza para cambiar archivos y directorios de forma recursiva.

agregar a una matriz en java

--ayuda: Se utiliza para mostrar el manual de ayuda que tiene una breve descripción de las opciones de uso y soporte.

--versión: Se utiliza para mostrar la información de la versión.

Sintaxis de permiso de archivo

Si es un usuario nuevo, es posible que se confunda con los diferentes tipos de letras que se utilizan para configurar el permiso del archivo. Entonces, antes de continuar con el comando chmod, comprendamos la sintaxis de permisos de archivos.

Para establecer el permiso de un archivo o directorio, debemos especificar lo siguiente:

  • Quién: Quiénes somos. (usuario)
  • Qué: ¿Qué cambio vamos a realizar (como agregar o eliminar el permiso)?
  • Cual: ¿Cuál de los permisos?

La declaración de permiso se representa en indicadores como u+x, u-x. Donde 'u' representa 'usuario', '+' representa agregar, '-' representa eliminar, 'x' representa ejecutable (cuál).

cadena de longitud

El valor del usuario puede ser:

u: el propietario del archivo

g: miembro del grupo

o: otros

R: todos

Los tipos de permisos pueden ser r, w y x.

Configuración y actualización de los permisos

Para establecer el permiso de un archivo, ejecute una declaración de permiso con el comando chmod. Por ejemplo, queremos establecer permisos de lectura y escritura para todos los usuarios y grupos del archivo 'Demo.txt'. Tenemos que pasar la declaración de permiso 'u=rw,go=rw Demo.txt' con el comando chmod. Para mostrar el permiso del archivo, ejecute el siguiente comando:

 ls -l Demo.txt 

El comando anterior mostrará el permiso de archivo actual del archivo 'Demo.txt'.

Para cambiar el permiso, ejecute el siguiente comando:

 chmod u=rw,go=rw Demo.txt 

Considere el siguiente resultado:

Comando chmod de Linux

Según el resultado anterior, el permiso de acceso de 'Demo.txt' ha cambiado.

Configuración de permisos para varios archivos

Podemos establecer permisos para varios archivos a la vez usando el comando chmod. Para cambiar el permiso de archivo de varios archivos, especifique el patrón de archivo con el comando chmod. Por ejemplo, si queremos establecer permisos de lectura y escritura para todos los archivos de texto, especifique el archivo *. patrón txt con el comando chmod.

Para ver los permisos de todos los archivos de texto del directorio de trabajo actual, ejecute el siguiente comando:

 ls -l *.txt 

Enumerará todos los archivos de texto con su modo de permiso. Considere el siguiente resultado:

Comando chmod de Linux

Según el resultado anterior, muchos archivos solo tienen permiso de lectura para otros usuarios.

Para configurar el permiso de lectura y escritura para otros usuarios, ejecute el siguiente comando:

 chmod o+w *.txt 

Establecerá el permiso de lectura y escritura para otros usuarios de los archivos de texto. Considere el siguiente resultado:

Comando chmod de Linux

Taquigrafía numérica

Podemos usar valores numéricos en lugar de letras para especificar los permisos. Se utiliza un valor de tres dígitos para especificar el permiso. El dígito más a la izquierda representa al propietario (u) y el dígito del medio representa a los miembros del grupo (g). El dígito más a la derecha representa los demás (o).

La siguiente tabla representa los dígitos y sus permisos:

java comparable
Dígitos Permisos
000 Sin autorización
001 Permiso de ejecución
010 permiso de escritura
011 Permisos de escritura y ejecución.
100 Permiso de lectura
101 Leer y ejecutar permisos
110 Permisos de lectura y escritura
111 Permisos de lectura, escritura y ejecución.

Modos simbólicos

Además, el comando chmod acepta la notación simbólica más detallada, que permite cambiar modos específicos. El modo simbólico consta de tres elementos, que se combinan para formar una única cadena de texto:

 $ chmod [references] [operator] [modes] file... 

El programa chmod aplica un operador para definir cómo se deben organizar los modos de archivo. Los siguientes operadores están aprobados:

Operador Descripción
+ Agrega lo descrito a las clases descritas.
- Elimina el modo descrito de las clases descritas.
= Representa que los modos descritos deben crearse los mismos modos para las clases descritas.

Los modos representan qué permisos se eliminarán u otorgarán de las clases descritas. Existen principalmente tres modos comunes relacionados con los permisos comunes:

Nombre Modo Descripción
leer r Lee un archivo o enumera el contenido de un directorio.
escribir En Escribe en un directorio o archivo.
ejecutar X Recurre a un árbol de directorios o ejecuta un archivo.
ejecución especial X No es un permiso, sino que se puede utilizar en lugar de x. Utiliza los permisos de ejecución para directorios a pesar de sus permisos actuales y utiliza los permisos de ejecución para un archivo que tiene al menos un bit de permisos de ejecución establecido. Es útil si se usa con el operador '+' y sin configurar el permiso de ejecución, lo que sucedería si solo usáramos chmod -R a+rx ., mientras que podemos implementar chmod -R a+rx . con x más bien.

Se pueden describir múltiples modificaciones aislando múltiples modos simbólicos junto con comas. El comando chmod inspeccionará el máscara si no se especifica un usuario.

Modos especiales

Además, el comando chmod puede cambiar los modos especiales y permisos adicionales de un directorio o archivo. Los modos simbólicos aplican 's' para indicar los modos setgid y setuid y 't' para indicar el modo fijo. Un modo sólo se utiliza para las clases correctas, independientemente de si se mencionan otras clases o no.

Casi todos los sistemas operativos admiten numéricamente la especificación del modo especial, específicamente en octal, pero algunos no lo hacen. A estos sistemas sólo se les pueden aplicar los modos simbólicos.

Algunos ejemplos de la línea de comando:

Dominio Descripción
chmod a+r publicComments.txt Agregará el permiso de lectura para cada clase (es decir, grupo, propietario y otros).
chmod a-x comentarios públicos.txt Eliminará el permiso de ejecución para cada clase.
chmod a+rx visor.sh Agregará los permisos de ejecución y lectura para cada clase.
chmod u=rw, g=r, o=planinterno.txt Establecerá los permisos de escritura y lectura para el usuario, la lectura para el grupo y rechazará el acceso para otros.
chmod -R u+w, go-w documentos Incluirá el permiso de escritura en los documentos del directorio y cada uno de sus contenidos para el propietario y eliminará el permiso de escritura para otros y el grupo.
chmod y = rw acuerdos de grupo.txt Establecerá los permisos de escritura y lectura para el grupo y el usuario.
chmod 664 global.txt Establecerá los permisos de escritura y lectura para el grupo y el usuario y otorgará permiso de lectura a otros.
chmod 744 Show_myCV.sh Establecerá los permisos de ejecución, escritura y lectura para el usuario y otorgará permiso de lectura al grupo y a otros.