Articulo de referencia

chmod

Plan 9: [[MIT License]]"},"website":{"wt":""}},"i":0}}]}"> chmod es un comando de shell para cambiar los permisos de acceso y los indicadores de modo especial de los archivos (i...

chmodes un comando de shell para cambiar los permisos de acceso y los indicadores de modo especial de los archivos (incluidos archivos especiales como directorios ). El nombre es una abreviatura de change mode , donde mode se refiere a los permisos y los indicadores en conjunto. [ 1 ] [ 2 ]

El comando se originó en la versión 1 de AT&T Unix y fue exclusivo de los sistemas operativos Unix y similares a Unix hasta que se portó a otros sistemas operativos como Windows (en UnxUtils ) [ 3 ] e IBM i . [ 4 ]

En los sistemas operativos Unix y similares , una llamada al sistema con el mismo nombre que el comando, chmod() , proporciona acceso a los datos de control de acceso subyacentes. El comando expone las capacidades de la llamada al sistema a un usuario de shell.

A medida que crecía la necesidad de mejorar los permisos del sistema de archivos , se añadieron listas de control de acceso [ 5 ]chmod a muchos sistemas de archivos para ampliar los modos controlados a través de .

La implementación chmodincluida en GNU coreutils fue escrita por David MacKenzie y Jim Meyering. [ 6 ]

Usar

Aunque la sintaxis del comando varía ligeramente según la implementación, generalmente acepta un único valor octal (que especifica todos los bits de modo de cada archivo) o una lista de especificadores simbólicos separados por comas (que describe cómo cambiar los bits de modo existentes de cada archivo). Los argumentos restantes son una lista de rutas a los archivos que se van a modificar. [ 7 ]

El cambio de permisos solo está permitido para el superusuario (root) y el propietario del archivo.

If a symbolic link is specified, the target of the link has its mode bits adjusted. Permissions directly associated with a symbolic link file system entry are typically not used.

Options

Optional, command-line options may include:

  • -R recursive; include contained files and subdirectories of specified directories
  • -v verbose; log changed file names

Octal notation

Given a numeric permissions argument, the chmod command treats it as an octal number,[a] and replaces all the mode bits for each file. (Although four digits are specified, leading 0 digits can be elided.)[8]

There are twelve standard mode bits, comprising three special bits (setuid, setgid, and sticky), and three permission groups (controlling access by user, group, and other) of 3 bits each (read, write, and exec/scan); each permission bit grants access if set (1) or denies access if clear (0).

As an octal digit represents a 3-bit value, the twelve mode bits can be represented as four octal digits. chmod accepts up to four digits and uses 0 for left digits not specified (as is normal for numeric representation). In practice, three digits are commonly specified since the special modes are rarely used and the user class is usually specified.

In the context of an octal digit, each operation bit represents a numeric value: read: 4, write: 2 and execute: 1. The following table relates octal digit values to a class operations value.

The command stat can report a file's permissions as octal. For example:

$ stat-c%afindPhoneNumbers.sh 754

The reported value, 754 indicates the following permissions:

  • user class: read, write, and execute; 7 => (4 + 2 + 1)
  • group class: read and execute; 5 => (4 + 1)
  • others class: read only; (4)

A code permits execution if and only if it is odd (i.e. 1, 3, 5, or 7). A code permits read if and only if it is greater than or equal to 4 (i.e. 4, 5, 6, or 7). A code permits write if and only if it is 2, 3, 6, or 7.

Symbolic notation

The chmod command accepts symbolic notation that specifies how to modify the existing permissions.[9] The command accepts a comma-separate list of specifiers like: [classes]+|-|=operations

Las clases asignan permisos a los usuarios. Un especificador de cambio puede seleccionar una clase incluyendo su símbolo, varias incluyendo el símbolo de cada clase sin delimitador, o todas las clases sin especificar un símbolo; al usar el último método, los bits de la máscara umask permanecerán sin cambios. [ 10 ] Los especificadores de clase incluyen:

Como la propiedad es clave para el control de acceso, y dado que la especificación simbólica utiliza la abreviatura o , algunos piensan erróneamente que significa propietario , cuando, de hecho, es una abreviatura de otros .

Los operadores de cambio incluyen:

Las operaciones se pueden especificar de la siguiente manera:

La mayoría de chmodlas implementaciones admiten la especificación de los modos especiales en octal, pero algunas no, lo que requiere el uso de la notación simbólica.

El lscomando puede informar los permisos de archivo en una notación simbólica similar a la utilizada con chmod. ls -linforma los permisos en una notación que consta de 10 letras. La primera indica el tipo de entrada del sistema de archivos, como un guion para un archivo regular y una 'd' para un directorio. A continuación, hay tres conjuntos de tres letras que indican los permisos de lectura, escritura y ejecución agrupados por usuario, grupo y otras clases. Cada posición es un guion para indicar la falta de permiso o la abreviatura de una sola letra del permiso para indicar que está concedido. Por ejemplo:

$ ls -l findPhoneNumbers.sh -rwxr-xr-- 1 dgerman staff 823 16 de diciembre 15:03 findPhoneNumbers.sh

El especificador de permisos -rwxr-xr--comienza con un guion, que indica que findPhoneNumbers.shse trata de un archivo regular, no de un directorio. Las siguientes tres letras rwxindican que el usuario propietario puede leer, escribir y ejecutar el archivo dgerman. Las siguientes tres letras r-xindican que los miembros del staffgrupo pueden leer y ejecutar el archivo. Y las últimas tres letras r--indican que el archivo es de solo lectura para los demás usuarios.

Ejemplos

Agrega permisos de escritura a la clase de grupo de un directorio, permitiendo que los usuarios del mismo grupo agreguen archivos:

$ ls -ld dir # antes de drwxr-xr-x 2 jsmitt northregion 96 Apr 8 12:53 shared_dir $ chmod g+w dir $ ls -ld dir # después de drwxrwxr-x 2 jsmitt northregion 96 Apr 8 12:53 shared_dir

Eliminar el permiso de escritura para todas las clases, impidiendo que cualquier persona escriba en el archivo:

$ ls -l ourBestReferenceFile -rw-rw-r-- 2 tmiller northregion 96 Apr 8 12:53 ourBestReferenceFile $ chmod a-w ourBestReferenceFile $ ls -l ourBestReferenceFile -r--r--r-- 2 tmiller northregion 96 Apr 8 12:53 ourBestReferenceFile

Establezca los permisos para las clases de usuario y grupo para que solo tengan permisos de lectura y ejecución , sin permiso de escritura , impidiendo que cualquier persona agregue archivos:

$ ls -ld referenceLib drwxr----- 2 ebowman northregion 96 8 de abril 12:53 referenceLib $ chmod ug = rx referenceLib $ ls -ld referenceLib dr-xr-x--- 2 ebowman northregion 96 8 de abril 12:53 referenceLib

Habilitar lectura y escritura para la clase de usuario, mientras que para el grupo y otros solo se permite la lectura :

$ chmod u = rw,go = r sample $ ls -ld sample drw-r--r-- 2 oschultz warehousing 96 Dec 8 12:53 sample

Para establecer de forma recursiva el acceso al directorio docs/ y a los archivos que contiene:

chmod -R u+w docs/

Para configurar usuarios y grupos para solo lectura y escritura, y configurar otros para solo lectura:

chmod 664 file

Para configurar el usuario con permisos de lectura, escritura y ejecución únicamente, y el grupo y otros con permisos de solo lectura:

chmod 744 file

Para configurar el bit de permanencia además de los permisos de usuario, grupo y otros:

chmod 1755 file

Para configurar el UID además de los permisos de usuario, grupo y otros:

chmod 4755 file

Para configurar el GID además de los permisos de usuario, grupo y otros:

chmod 2755 file

Véase también

Notas

  1. ↑ ¿ Por qué octal en lugar de decimal? Aunque hoy en día se usa poco, durante el desarrollo inicial de UNIX, el sistema octal era muy útil porque los grupos repetitivos de 3 bits eran comunes en la estructura física de las computadoras de la época, y estos bits eran más fáciles de leer y comprender cuando se codificaban como dígitos octales, al igual que los grupos de 4 bits son más fáciles de agrupar en dígitos hexadecimales. La expresión numérica de los permisos del sistema de archivos en octal es uno de los pocos vestigios de esa época.

Referencias

  1. Los modos/permisos se muestran al listar archivos en formato largo.
  2. "Tutorial para chmod" . catcode.com . Archivado del original el 20 de mayo de 2000. Consultado el 26 de agosto de 2008 .
  3. "Adaptaciones nativas para Win32 de algunas utilidades GNU" . unxutils.sourceforge.net . Archivado del original el 9 de febrero de 2006. Consultado el 9 de agosto de 2025 .
  4. IBM . "IBM System i Versión 7.2 Programación Qshell" (PDF) . IBM . Archivado (PDF) del original el 18 de septiembre de 2020. Recuperado el 5 de septiembre de 2020 .
  5. "Administración del sistema AIX 5.3" . Centro de conocimiento de IBM . IBM. Archivado del original el 4 de marzo de 2016. Consultado el 30 de agosto de 2015 .
  6. "chmod(1): cambia los bits del modo de archivo - página man de Linux" . linux.die.net . Archivado del original el 9 de enero de 2019. Consultado el 6 de enero de 2019 .
  7. "Página de manual de chmod con ejemplos y calculadora - Linux - SS64.com" . ss64.com . Archivado del original el 12 de febrero de 2003. Consultado el 12 de septiembre de 2020 .(Tenga en cuenta que "delimitado por espacios" es una característica del intérprete de comandos , no de chmod en sí).
  8. Esto difiere del lenguaje “C”, donde el0prefijo para los números octales es un vestigio de su período inicial.
  9. "Referencia de comandos de AIX 5.5" . Centro de conocimiento de IBM . IBM. Archivado del original el 4 de marzo de 2016. Consultado el 30 de agosto de 2015 .
  10. "Enmascaramiento de permisos con umask, chmod, permisos octales 777" . teaching.idallen.com . Archivado del original el 22 de febrero de 2020. Consultado el 9 de marzo de 2020 .
  • chmod(1): cambiar modos de archivo Manual de comandos generales de FreeBSD   
  • chmod(1) Manual del programador de Plan 9 , Volumen 1 
  • chmod(1) Manual de comandos generales de Inferno 
  • chmod— página del manual de GNU coreutils .
  • Manual de GNU "Configuración de permisos"
  • CHMOD-Win 3.0 Convertidor gratuito de ACL de Windows a CHMOD.
  • Tutorial para principiantes con ejemplo práctico en línea.

Obtenido de " https://en.wikipedia.org/w/index.php?title=Chmod&oldid=1361052839 "