8
Instrucciones detalladas para aprender a manejar correctamente los permisos de los archivos en sistemas Linux / Unix, con el comando chmod. Para cambiar los permisos de un archivo o directorio del servidor, tienes que utilizar el comando chmod. En general, cualquier comando de linux o unix tiene una ayuda, que puedes ver invocando al comando, seguido con el parámetro -help. Algo como esto: chmod --help Este comando en concreto tiene varias sintaxis permitidas. De entre ellas por ejemplo puedes utilizar: chmod [opciones] modo-en-octal fichero Las opciones podemos indicarlas o no, según queramos. Opciones típicas son: -R para que mire también en los subdirectorios de la ruta. - v para que muestre cada fichero procesado - c es como -v, pero sólo avisa de los ficheros que modifica sus permisos El modo en octal es un número en base 8 (octal) que especifique el permiso. Los números en octal se especifican empezando el número por un 0. Por ejemplo, 0777 es indica todos los permisos posibles para todos los tipos de usuario. 0666 indica que se dan permisos de lectura y escritura, pero no de ejecución. 0766 indica que se dan permisos de lectura y escritura, pero sólo tienen permiso de ejecución para los usuarios que son dueños del archivo. 0755 indica permisos para lectura y ejecución, pero escritura sólo para el usuario que es dueño del archivo. Por ejemplo: chmod 0777 archivo.txt Asigna todos los permisos al archivo archivo.txt chmod 0666 * Asigna permisos de lectura y escritura, no de ejecución a todos los archivos y directorios del directorio donde ejecutamos el comando. chmod -R 0644 * Esto da permisos a todos los archivos y directorios del directorio donde se invoca el comando y de todos los directorios que cuelgan de él. Los permisos asignados son de lectura a todos los usuarios, de escritura sólo al dueño del archivo y de ejecución a nadie. Otro modo de trabajo con chmod Luego también se pueden asignar permisos de otra manera, utilizando otra posible sintaxis de chmod, que tal vez resulte más útil si no queremos tratar con los valores en octal. chmod [opciones] modo[,modo]… fichero

chmod.pdf

Embed Size (px)

Citation preview

Page 1: chmod.pdf

Instrucciones detalladas para aprender a manejar correctamente los permisos de los archivos en sistemas Linux /

Unix, con el comando chmod.

Para cambiar los permisos de un archivo o directorio del servidor, tienes que utilizar el comando chmod.

En general, cualquier comando de linux o unix tiene una ayuda, que puedes ver invocando al comando, seguido con el

parámetro -help. Algo como esto:

chmod --help

Este comando en concreto tiene varias sintaxis permitidas. De entre ellas por ejemplo puedes utilizar:

chmod [opciones] modo-en-octal fichero

Las opciones podemos indicarlas o no, según queramos. Opciones típicas son:

-R para que mire también en los subdirectorios de la ruta.

- v para que muestre cada fichero procesado

- c es como -v, pero sólo avisa de los ficheros que modifica sus permisos

El modo en octal es un número en base 8 (octal) que especifique el permiso. Los números en octal se especifican

empezando el número por un 0. Por ejemplo, 0777 es indica todos los permisos posibles para todos los tipos de usuario.

0666 indica que se dan permisos de lectura y escritura, pero no de ejecución. 0766 indica que se dan permisos de lectura

y escritura, pero sólo tienen permiso de ejecución para los usuarios que son dueños del archivo. 0755 indica permisos

para lectura y ejecución, pero escritura sólo para el usuario que es dueño del archivo.

Por ejemplo:

chmod 0777 archivo.txt

Asigna todos los permisos al archivo archivo.txt

chmod 0666 *

Asigna permisos de lectura y escritura, no de ejecución a todos los archivos y directorios del directorio donde

ejecutamos el comando.

chmod -R 0644 *

Esto da permisos a todos los archivos y directorios del directorio donde se invoca el comando y de todos los directorios

que cuelgan de él. Los permisos asignados son de lectura a todos los usuarios, de escritura sólo al dueño del archivo y de

ejecución a nadie.

Otro modo de trabajo con chmod

Luego también se pueden asignar permisos de otra manera, utilizando otra posible sintaxis de chmod, que tal vez resulte

más útil si no queremos tratar con los valores en octal.

chmod [opciones] modo[,modo]… fichero

Page 2: chmod.pdf

Para ello tenemos que tener claros los distintos grupos de usuarios:

u: usuario dueño del fichero

g: grupo de usuarios del dueño del fichero

o: todos los otros usuarios

a: todos los tipos de usuario (dueño, grupo y otros)

También hay que saber la letra que abrevia cada tipo de permiso:

r: se refiere a los permisos de lectura

w: se refiere a los permisos de escritura

x: se refiere a los permisos de ejecución

Ejemplos

chmod o=rwx *

Asigna permisos de lectura, escritura y ejecución para los usuarios "otros" a todos los archivos de la carpeta

chmod a=rwx fichero.txt

Asigna todos los permisos a todos los usuarios para el archivo fichero.txt

chmod go= *

Quita todos los permisos para los usuario del grupo y los usuarios otros.

chmod u=rwx,g=rw,o= *

Da todos los permisos al dueño del fichero, a los del grupo del dueño le asigna permisos de lectura y escritura y a los

otros usuarios les quita todos los permisos.

Nota:un espacio después de la coma "," en los distintos modos de permisos que se indiquen hace fallar el

comando.

chmod a=r *

Da permisos únicamente de lectura a todos los tipos de usuario.

De un modo parecido a lo que acabamos de ver, también se pueden añadir o quitar permisos con los operadores + y -.

Para ello se indica el tipo de usuario y el permiso que se resta o añade. Algo como esto:

chmod a-wrx *

Esto quita todos los permisos a todos los tipos de usuario.

chmod a+r,gu+w *

Este comando asigna permisos de lectura a todos los usuarios y permisos de escritura al dueño del archivo y el grupo del

dueño.

Page 3: chmod.pdf

chmod u=w,a+r *

Este comando asigna permisos de escritura al usuario dueño y a todos los usuarios les añade permiso de lectura.

Page 4: chmod.pdf

1.- Estructura básica de permisos en archivos

Hay 3 atributos básicos para archivos simples: lectura, escritura y ejecutar.

>> Permiso de lectura (read)

Si tienes permiso de lectura de un archivo, puedes ver su contenido.

>> Permiso de escritura (write)

Si tienes permiso de escritura de un archivo, puedes modificar el archivo. Puedes agregar,

sobrescribir o borrar su contenido.

>> Permiso de ejecución (execute)

Si el archivo tiene permiso de ejecución, entonces puedes decirle al sistema operativo que lo

ejecute como si fuera un programa. Si es un programa llamado “foo” lo podremos ejecutar

como cualquier comando.

O un script (interprete) que necesita permiso de lectura y ejecución, un programa compilado

solo necesita ser lectura.

Los caracteres atribuidos a los permisos son:

r quiere decir escritura y viene de Read

w quiere decir lectura y viene de Write

x quiere decir ejecución y viene de eXecute

Usando chmod para cambiar los permisos

chmod (change mode) es el comando utilizado para cambiar permisos, se pueden agregar o

remover permisos a uno o mas archivos con + (mas) o – (menos)

Si quieres prevenirte de modificar un archivo importante, simplemente quita el permiso de

escritura en tu “archivo” con el comando chmod

$ chmod -w tuArchivo

si quieres hacer un script ejecutable, escribe

$ chmod +x tuScript

si quieres remover o agregar todos los atributos a la vez

Page 5: chmod.pdf

$ chmod -rwx archivo

$ chmod +rwx archivo

también puedes usar el signo = (igual) para establecer los permisos en una combinación

exacta, este comando remueve los permisos de escritura y ejecución dejando solo el de

lectura

$ chmod =r archivo

Cuidado con editar los permisos de tus archivos, si los editas no olvides dejarlos como estaban

originalmente

2.- Estructura básica de permisos en directorios

En el caso de los directorios tenemos los mismo permisos, pero con un significado diferente.

>> Permiso de lectura en un directorio

Si un directorio tiene permiso de lectura, puedes ver los archivos que este contiene. Puedes

usar un “ls (list directory)” para ver su contenido, que tengas permiso de lectura en un

directorio no quiere decir que puedas leer el contenido de sus archivos si no tienes permiso

de lectura en esos.

>> Permiso de escritura en un directorio.

Con el permiso de escritura puedes agregar, remover o mover archivos al directorio

>> Permiso de ejecución en un directorio.

Ejecución te permite usar el nombre del directorio cuando estas accediendo a archivos en

ese directorio, es decir este permiso lo hace que se tome en cuenta en búsquedas realizadas

por un programa, por ejemplo, un directorio sin permiso de ejecución no seria revisado por

el comando find

3.- Usuarios, Grupos y Otros

Ahora conocemos los 3 permisos y como agregar o remover estos, pero estos 3 permisos

son almacenados en 3 lugares diferentes llamados.

Usuario (u) proviene de user

Grupo (g) proviene de group

Otros (o) proviene de other

Page 6: chmod.pdf

Cuando ejecutas

$ chmod =r archivo

Cambia los permisos en 3 lugares, cuando haces una lista de directorios con “ls -l” veras

algo parecido a.

-r--r--r-- 1 wada users 4096 abr 13 19:30 archivo

nota esas 3 “r”s para los 3 diferentes tipos de permisos

donde:

x-------------x-------------x

| permisos | pertenece |

x-------------x-------------x

| rwx------ | usuario |

| ---r-x--- | grupo |

| ------r-x | otros |

x-------------x-------------x

podemos remover permisos para cada dueño; supongamos que tenemos un archivo:

-rwxr-xr-x 1 wada users 4096 abr 13 19:30 archivo

Para remover los permisos de ejecución a grupos y otros basta con usar:

$ chmod g-x,o-x archivo

nuestro archivo quedara con estos permisos

Page 7: chmod.pdf

-rwxr--r-- 1 wada users 4096 abr 13 19:30 archivo

si deseas remover a usuario el permiso de escritura:

$ chmod u-x archivo

-r-xr--r-- 1 wada users 4096 abr 13 19:30 archivo

Agregando y removiendo dos permisos a la vez:

$ chmod u-x+w archivo

-rw-r--r-- 1 wada users 4096 abr 13 19:30 archivo

¿muy simple verdad?

4.- chmod en octal

La representación octal de chmod es muy sencilla

Lectura tiene el valor de 4

Escritura tiene el valor de 2

Ejecución tiene el valor de 1

Entonces:

x-----x-----x-----------------------------------x

| rwx | 7 | Lectura, escritura y ejecución |

| rw- | 6 | Lectura, escritura |

| r-x | 5 | Lectura y ejecución |

| r-- | 4 | Lectura |

| -wx | 3 | Escritura y ejecución |

| -w- | 2 | Escritura |

| --x | 1 | Ejecución |

| --- | 0 | Sin permisos |

Page 8: chmod.pdf

x-----x-----x-----------------------------------x

Por lo tanto:

x------------------------x-----------x

|chmod u=rwx,g=rwx,o=rx | chmod 775 |

|chmod u=rwx,g=rx,o= | chmod 760 |

|chmod u=rw,g=r,o=r | chmod 644 |

|chmod u=rw,g=r,o= | chmod 640 |

|chmod u=rw,go= | chmod 600 |

|chmod u=rwx,go= | chmod 700 |

x------------------------x-----------x