chmod | |
---|---|
Tipo de | programa para cambiar permisos de archivos y directorios |
Desarrollador | Proyecto GNU |
Escrito en | C |
Sistema operativo | similar a Unix |
Primera edición | 3 de noviembre de 1971 |
ultima versión | 8.5 (23 de abril de 2010) |
Licencia | GPLv3+ |
Sitio web | gnu.org |
chmod (del inglés change mode ) es un comando para cambiar los permisos de archivos y directorios que se utilizan en los sistemas operativos similares a Unix . Incluido en el estándar POSIX , en Coreutils .
Sintaxis:
chmod [opciones] modo[,modo] archivo1 [archivo2 ...]Opciones:
El comando nunca cambia los permisos de los enlaces simbólicos ; sin embargo, para cada enlace simbólico especificado en la línea de comando, cambia los permisos del archivo asociado. El comando ignora los enlaces simbólicos encontrados durante el procesamiento recursivo de directorios.
El argumento de permisos del comando chmod se puede escribir en dos formatos: numérico y de caracteres.
Los derechos se escriben en una línea para tres tipos de usuarios a la vez:
En forma numérica, se establecen derechos absolutos para un archivo o directorio, mientras que en forma simbólica, se pueden establecer derechos individuales para diferentes tipos de usuarios.
Ejemplo: numéricamente, establezca los permisos en rwxr-xr-x:
nombre de archivo chmod 755
dueño | Grupo | descansar | |
---|---|---|---|
valor octal | 7 | 5 | 5 |
notación de caracteres | rwx | receta | receta |
designación de tipo de usuario | tu | gramo | o |
Así, los derechos "755" se escriben en forma simbólica como "rwxr-xr-x". Al mismo tiempo, para comprender la esencia de establecer derechos en los sistemas Unix, es útil conocer la representación de los números en el sistema numérico binario .
binario | octales | simbólico | permisos de archivo | derechos de directorio |
---|---|---|---|---|
000 | 0 | --- | No | No |
001 | una | --X | actuación | leyendo las propiedades del archivo |
010 | 2 | -w- | entrada | No |
011 | 3 | -wx | grabación y ejecución | todo excepto obtener nombres de archivo |
100 | cuatro | r-- | lectura | leer nombres de archivos |
101 | 5 | receta | leyendo y ejecutando | acceso de lectura a archivos/sus propiedades |
110 | 6 | rw- | Lee y escribe | leer nombres de archivos |
111 | 7 | rwx | todos los derechos | todos los derechos |
Algunos permisos solo tienen sentido en combinación con otros. De los primeros cuatro elementos (que no dan derecho a leer el archivo), solo se suele utilizar “---” para los archivos, es decir, una denegación total de acceso al archivo para este tipo de usuario. Para los directorios de la lista completa, generalmente solo se usan 0, 5 y 7: denegar, leer y ejecutar, y acceso completo.
Al sumar estos códigos para tres tipos de usuarios, puede obtener una entrada numérica o simbólica. Por ejemplo, chmod 444 {filename} : 400+40+4=444 - todos tienen acceso de solo lectura (idéntico a "r--r--r--").
Además de los permisos estándar 'rwx', el comando chmod también controla los bits SGID, SUID y T. Si se establecen los atributos SUID o SGID, el archivo se puede ejecutar con permisos de propietario o grupo, respectivamente.
Para SUID, el peso es 4000 y para SGID, es 2000. Estos atributos son significativos cuando se establece el bit de ejecución correspondiente y se denotan con la letra "s" en notación simbólica: "rw s rwxrwx" y "rwxrw s rwx ”, respectivamente.
Ejemplo: chmod 4555 {nombre de archivo} : todos tienen derecho a leer y ejecutar, pero el archivo se iniciará para su ejecución con derechos de propietario.
Establecer el SGID para un directorio hará que cada nuevo archivo creado pertenezca al mismo grupo que el propio directorio, en lugar del grupo principal del propietario, como sucede de forma predeterminada. SUID para un directorio no tiene sentido [1] .
el bit adhesivo o el indicador de eliminación restringida (t-bit) solo se usa con directorios. Cuando el bit t para un directorio no está configurado, un archivo en ese directorio puede ser eliminado (renombrado) por cualquier usuario con acceso de escritura a ese directorio. Al configurar el t-bit en un directorio, cambiamos esta regla de tal manera que solo el propietario de este archivo puede eliminar (renombrar) un archivo. Siguiendo la codificación anterior, el t-bit tiene un peso de 1000.
Nota: El permiso de escritura (w) brinda al usuario la capacidad de escribir o modificar un archivo, mientras que el permiso de escritura del directorio brinda la capacidad de crear nuevos archivos o eliminar archivos de ese directorio. Si se puede escribir en un directorio (w), entonces un archivo dentro de ese directorio se puede eliminar incluso si el archivo no tiene permiso de escritura . (Según el concepto de sistema de archivos POSIX).
En forma simbólica, el uso del comando le permite agregar, establecer o eliminar permisos en archivos o directorios de manera más flexible:
$ chmod [referencias][operador][modos] archivo ...Las referencias definen los usuarios cuyos derechos se cambiarán. Las referencias se definen por una o más letras:
referencia | clase | Descripción |
---|---|---|
tu | usuario | Propietario del archivo |
gramo | grupo | Usuarios en el grupo de propietarios de archivos |
o | otros | Otros usuarios |
a | todos | Todos los usuarios (o ugo) |
El operador define la operación que realizará chmod:
operador | Descripción |
---|---|
+ | agregar ciertos permisos |
- | eliminar ciertos derechos |
= | establecer ciertos permisos |
Modos define qué permisos se establecerán, agregarán o eliminarán:
modo | Nombre | Descripción |
---|---|---|
r | leer | leer un archivo o contenido de un directorio |
w | escribe | escribir en un archivo o directorio |
X | ejecutar | ejecutar un archivo o leer el contenido de un directorio |
X | ejecución especial | ejecutar si el archivo es un directorio o ya tiene permiso de ejecución para algún usuario |
s | setuid/gid | los atributos establecidos SUID o SGID le permiten ejecutar el archivo para su ejecución con los derechos del propietario del archivo o del grupo, respectivamente |
t | pegajoso | al configurar el t-bit en un directorio, cambiamos esta regla de tal manera que solo el propietario de este archivo puede eliminar un archivo |
Establecer permisos "rwxr-xr-x" (0755) para un archivo:
chmod u=rwx,g=rx,o=rx nombre de archivoConfigure los permisos de ejecución para el propietario del archivo, elimine los permisos de ejecución del grupo, elimine los permisos de escritura y ejecución de otros usuarios:
chmod u+x,gx,o-wx nombre de archivoEstablezca permisos de lectura recursiva para todos los usuarios:
chmod -R a+r directorioElimine recursivamente los atributos SUID y SGID:
chmod -R us, directorio gsLos valores por defecto son:
Los valores son diferentes para archivos y directorios porque el indicador "ejecutar" afecta a los archivos y directorios de manera diferente. Para archivos ejecutables, "ejecutar" significa ejecutarlos, para directorios, el derecho a leer el archivo (si hay un derecho de lectura en él) y sus atributos de archivo con un nombre conocido (sin el derecho a leer, no puede obtener el nombre de los archivos en el directorio).
El siguiente comando aplicará reglas recursivamente a todos los archivos en el directorio "/home/test", así como a todos los archivos en todos los subdirectorios:
# buscar /inicio/prueba -tipo f -exec chmod 644 {} \;El siguiente comando aplicará reglas recursivamente a todos los directorios en el directorio "/home/test", así como a todos los directorios en todos los subdirectorios:
# encontrar /inicio/prueba -tipo d -exec chmod 755 {} \;Puede lograr el mismo resultado sin usar find (tenga en cuenta la X mayúscula):
# chmod -R go=rX,u=rwX /inicio/prueba