Cómo usar el comando chmod en Linux
Chmod toma tres parámetros principales: r, w y x, que representan lectura, escritura y ejecución, respectivamente. Agregue o elimine combinaciones de parámetros para controlar los permisos de archivos y carpetas. Por ejemplo, chmod +rwx agrega permisos para leer, escribir y ejecutar scripts. Ejecutar chmod -wx elimina la capacidad de escribir y ejecutar.
chmod
usar comandos de linuxControle quién puede acceder a archivos, buscar directorios y ejecutar scripts. Este comando modifica los permisos de archivos de Linux, lo que puede parecer complicado a primera vista, pero en realidad es bastante simple una vez que comprende cómo funcionan.
chmod modificar permisos de archivo
En Linux, quién puede hacer qué con un archivo o directorio se controla a través de conjuntos de permisos. Hay tres conjuntos de permisos. Un conjunto es para el propietario del archivo, otro para los miembros del grupo del archivo y un conjunto final para todos los demás.
Los permisos controlan las acciones que se pueden realizar en un archivo o directorio. Permiten o impiden la lectura, modificación o ejecución del archivo (en el caso de scripts o programas). Para los directorios, los permisos controlan quién puedecd
Acceso a directorios y quién puede crear o modificar archivos en ellos.
tu usaschmod
orden de venir Establecer cada uno de estos permisos. a Comprobar qué permisos están configurados En un archivo o directorio, podemos usarls
.
Ver y comprender los permisos de archivo
nosotros podemos usar-l
(forma larga) opcionesls
Lista de permisos de archivo para archivos y directorios.
ls-l
En cada línea, el primer carácter identifica el tipo de entrada enumerada. Si es un guión (-
), entonces es un archivo.si es una cartad
, que es un directorio.
Los nueve caracteres siguientes representan la configuración de los tres grupos de permisos.
- Los tres primeros caracteres muestran los permisos del usuario propietario del archivo (permisos de usuario).
- Los tres caracteres del medio muestran los permisos de los miembros del grupo del archivo (permisos de grupo).
- Los últimos tres caracteres muestran permisos para cualquiera que no esté en las dos primeras categorías (otros permisos).
Hay tres caracteres en cada conjunto de permisos. Estos caracteres son indicadores que indican si uno de los permisos existe. Pueden ser guiones (-
) o letras. Si el carácter es un guión, significa que no se otorga el permiso.si el personaje esr
,w
ox
, el permiso ha sido concedido.
Las letras representan:
- r: Permiso de lectura. Los archivos se pueden abrir y ver su contenido.
- w: permiso de escritura. Este archivo se puede editar, modificar y eliminar.
- x: Permiso de ejecución. Si el archivo es un script o un programa, se puede ejecutar (ejecutar).
P.ej:
---
Significa que no se otorgan permisos en absoluto.rwx
Indica que se han concedido permisos completos. Los indicadores de lectura, escritura y ejecución están todos presentes.
En nuestra captura de pantalla, la primera línea comienza cond
. Esta línea se refiere a un directorio llamado «archivo». El propietario del directorio es «dave» y el nombre del grupo al que pertenece el directorio también se llama «dave».
Los siguientes tres caracteres son los permisos de usuario para el directorio. Estos indican que el propietario tiene permisos completos.,r
y personajesw
Todosx
existir. Esto significa que el usuario Dave tiene permisos de lectura, escritura y ejecución en el directorio.
El segundo conjunto de tres caracteres son los permisos de grupo, que sonr-x
. Estos indican que los miembros del grupo dave tienen permisos de lectura y ejecución en el directorio. Esto significa que pueden enumerar los archivos en el directorio y su contenido, y puedencd
(ejecutar) en ese directorio. No tienen acceso de escritura, por lo que no pueden crear, editar o eliminar archivos.
El último conjunto de tres caracteres también esr-x
. Estos permisos se aplican a las personas que no están sujetas a los dos primeros conjuntos de permisos. Estas personas (llamadas «Otros») tienen permisos de lectura y ejecución en el directorio.
Entonces, para resumir, los miembros del grupo y otros tienen permisos de lectura y ejecución. El propietario (un usuario llamado dave) también tiene permisos de escritura.
Para todos los demás archivos (excepto el archivo de script mh.sh), Dave y los miembros del grupo Dave tienen acceso de lectura y escritura a los archivos, mientras que todos los demás tienen acceso de solo lectura.
Para el caso especial del archivo de script mh.sh, el propietario dave y los miembros del grupo tienen permisos de lectura, escritura y ejecución, y otros solo tienen permisos de lectura y ejecución.
Comprensión de la sintaxis de permisos
necesitará usarchmod
Para establecer permisos, necesitamos decirle:
- Quién: Whowe está configurando permisos para.
- Qué: ¿Qué cambios estamos haciendo?¿Estamos agregando o quitando permisos?
- Cuál: ¿Qué permisos queremos establecer?
Usamos métricas para representar estos valores y formar breves «declaraciones de autoridad» comou+x
, donde «u» significa «usuario» (quién), «+» significa agregar (qué) y «x» significa permiso de ejecución (cuál).
Los valores de «quién» que podemos usar son:
- u: Usuario, es decir, el propietario del archivo.
- g: grupo, indicando los miembros del grupo al que pertenece el archivo.
- o: Otros, entendiendo por no sujetos a la
u
yg
persona con jurisdicción. - a: Todo, es decir, todo lo anterior.
Si no se utilizan, entonceschmod
se comporta como si usara «a
«Mismo.
Los valores de «qué» que podemos usar son:
- -: signo menos. Eliminar permisos.
- +: signo más. Permiso concedido. Este permiso se agregará a los permisos existentes. Si desea tener este permiso y solo este conjunto de permisos, utilice
=
opciones como se describe a continuación. - =: signo igual. Establezca permisos y elimine otros.
Los valores de «cuál» que podemos usar son:
- r: Permiso de lectura.
- w: permiso de escritura.
- x: Permiso de ejecución.
Establecer y modificar permisos
Digamos que tenemos un archivo en el que todos tienen permisos completos.
ls -l nuevo_archivo.txt
Queremos que el usuario dave tenga permisos de lectura y escritura, y que el grupo y otros usuarios solo tengan permisos de lectura. Podemos usar el siguiente comando:
chmod u=rw,og=r archivo_nuevo.txt
El uso del operador «=» significa que borramos todos los permisos existentes y luego establecemos los permisos especificados.
Comprobemos los nuevos permisos para este archivo:
ls -l nuevo_archivo.txt
Se eliminaron los permisos existentes y se establecieron nuevos permisos, como esperábamos.
¿Cómo puedo agregar permisos sin eliminar la configuración de permisos existente?También podemos hacerlo fácilmente.
Supongamos que tenemos un archivo de script que ha sido editado. Necesitamos hacerlo ejecutable para todos los usuarios. Sus permisos actuales son los siguientes:
ls -l nuevo script.sh
Podemos agregar permisos de ejecución para todos con el siguiente comando:
chmod a+x nuevo_script.sh
Si observamos los permisos, vemos que el permiso de ejecución ahora se otorga a todos, y los permisos existentes aún están allí.
ls -l nuevo script.sh
Podemos lograr el mismo efecto sin la «a» en la instrucción «a+x». Los siguientes comandos también funcionan bien.
chmod +x script_nuevo.sh
Establecer permisos para múltiples archivos
Podemos aplicar permisos a varios archivos al mismo tiempo.
Estos son los archivos en el directorio actual:
ls-l
Digamos que queremos eliminar los permisos de lectura para «otros» usuarios en un archivo con una extensión «.page». Esto lo podemos hacer con el siguiente comando:
chmod o *.página
Veamos cuál es el impacto:
ls-l
Como podemos ver, el permiso de lectura para los archivos «.page» se ha eliminado para los usuarios de la categoría «Otros». Ningún otro archivo se vio afectado.
Si queremos incluir archivos en subdirectorios, podemos usar-R
opciones (recursivas).
chmod -R o *.página
taquigrafía digital
otra forma de usarchmod
es proporcionar los permisos que desea otorgar al propietario, grupo y otros como tres dígitos. El número más a la izquierda representa los permisos del propietario. Los números en el medio representan los permisos de los miembros del grupo. El número más a la derecha representa los permisos de otros.
Los números que puede usar y lo que representan se enumeran aquí:
- 0: (000) Sin permiso.
- 1: (001) Permiso de ejecución.
- 2: (010) Permiso de escritura.
- 3: (011) Permisos de escritura y ejecución.
- 4: (100) Permiso de lectura.
- 5: (101) Permisos de lectura y ejecución.
- 6: (110) Permiso de lectura y escritura.
- 7: (111) Permisos de lectura, escritura y ejecución.
Cada uno de estos tres permisos está representado por un bit en el equivalente binario de un número decimal. Así que 5, que es 101 en binario, significa leer y ejecutar.2. El valor binario es 010, lo que significa permiso de escritura.
Con este método, puede establecer los permisos que desea tener;Estos permisos no se agregan a los permisos existentes. Por lo tanto, si los permisos de lectura y escritura ya están establecidos, deberá usar 7 (111) para agregar el permiso de ejecución. El uso de 1 (001) eliminará los permisos de lectura y escritura y agregará permisos de ejecución.
Agreguemos permiso de lectura a los archivos «.page» para otras clases de usuarios. También tenemos que configurar los permisos de usuario y grupo, por lo que debemos configurarlos como ya lo hemos hecho. Estos usuarios ya tienen permisos de lectura y escritura, que son 6 (110). Queremos que «otros» tengan permisos de lectura y, por lo que deben establecerse en 4 (100).
El siguiente comando logrará esto:
chmod 664 *.página
Esto establecerá los permisos que necesitamos para los usuarios, miembros del grupo y otros según lo que necesitamos. Los permisos para usuarios y miembros del grupo se han restablecido a sus permisos originales y se han restaurado los permisos de lectura para otros.
ls-l
opciones avanzadas
Si usted leer la página del manual porquechmod
Verá algunas opciones avanzadas relacionadas con los bits SETUID y SETGID y la eliminación restringida o el bit «pegajoso».
Para el 99% de los casos en los que necesitachmod
, las opciones descritas aquí cumplirán con sus requisitos.
comandos de linux | ||
documento | asfalto · fotovoltaica · gato · táctica · modo de cambio · grep · diferencia · sed · Arkansas · hombre · para empujar · ventana emergente · fsck · disco de prueba · número de serie · f.d. · pandoc · CD · $ruta · awk · participar · jq · doblar · Único · diarioctl · Cola · estado · ls · mesa de estabilidad · eco · menos · chgrp · Chon · Velocidad de rotación · Mirar · cuerda · escribe · cambiar nombre · compresión · abrir la cremallera · Montaña · desinstalar · Instalar · disco · mkfs · RM · Tabla de contenido · Sincronizar · paradero · gpg · seis · Nano · Tabla de contenido · Du · existir · reparar · intercambio · clon · arrancar · Srm | |
proceso | alias · Pantalla · óptimo · OK · agradable · Progreso · pista · sistema · multiplexor · chsh · historia · existir · lote · libre · cual · dmesg · Franco suizo · módulo de usuario · posdata · chroot · xargs · Terminal · dedo meñique · lsof · Estadísticas de máquinas virtuales · pausa · pared · Sí · matar · dormir · Sudo · demandar · tiempo · dirección de grupo · módulo de usuario · grupo · lshw · cierre · reiniciar · deténgase · cerrar · clave · lscpu · Lista de tareas cronometradas · fecha · antecedentes · fg | |
redes | estadísticas de la red · plano · pista de ruta · propiedad intelectual · SS · Quien es · fail2ban · bmón · excavar · dedo · mapa · FTP · ondulado · wget · Quién · quién soy · w · iptables · ssh-keygen · ufw |