Tengo para hoy un tutorial de como dar permisos a los archivos en linux por consola.
Espero que lo entendais pues sino este bolg no tendria ningún sentido.
CHMOD
Comando para cambiar los permisos a los archivos y directorios.Formato:
$ chmod [u/g/o][+/-/=][rwx] nombre_archivo [opciones]
u: Usuario. Solo modificará los permisos en el dueño del archivo.
g: Grupo. Modifica los permisos a todos los que pertenezcan al grupo del dueño del grupo.
o: Otros. Modifica al resto de usuarios existentes.
- : quita permisos
+: Da permisos
r : Read. permiso de lectura. Puedes o no ver su contenido
w: Write. Permiso de escritura. Puedes o no modificar, borrar, agregar su contenido.
x: Execute. Permiso de ejecución. Puedes o no ejecutar como un comando o un script.
=: Iguala permisos. Deja solo los permisos que pongamos y el resto los remueve
Opciones:
-R para que mire también en los subdirectorios de la ruta. Para directorios
-v para que muestre cada fichero procesado
-c es como -v, pero sólo avisa de los ficheros que modifica sus permisos
Veamos algunos ejemplo para entenderlo mejor os aconsejo que para practicar utiliceis archivos y directorios creado por vosotros en vuestra carpeta personal:
$ chmod g+w elArchivoEmilio
Da derecho de escritura al grupo del archivo llamado tuArchivo
-r--rw-r-- 1 wada tuArchivo 4096 abr 13 19:30 elArchivoEmilio
Al ejecutar "ls -l" podrás ver los permisos de los archivos como en la imagen superior.
La forma para interpretarlo es el siguiente:
El primer caracter "-" informa que es un archivo, los 3 siguientes pueden ser "-" "r" "w" "x" son los permisos del dueño (user), los 3 siguientes para el grupo (group) y 3 últimos son para el resto u otros (other)
En la imagen anterior vemos que el archivo solo tiene derecho de lectura para todos los usuarios y ahora derecho de escritura para el grupo.
Y si ejecutamos esto:
$ chmod u+x ArchivoEmilio
Da permiso de ejecución al dueño del archivo llamado ArchivoEmilio y con ls -l veras esto.
-r-xrw-r-- 1 wada users 4096 abr 13 19:30 ArchivoEmilio
Ejecutemos esto:
$ chmod -rwx ArchivoEmilio $ chmod +rwx ArchivoEmilio
La primera linea quita todos los permisos a un archivo, al no poner sobre quien presupone que es a todos U, G y O, mientras que en la segunda da todos y a todos, los permisos al archivo quedando así:
-rwxrwxr-x 1 wada users 4096 abr 13 19:30 ArchivoEmilio
Como puedes observar no da todos los derechos como se supone que se darian, es pos seguridad que no se le de derechos de escritura a todos, por eso si quieres hacerlo tendras que ponerlo esplicitamente.
Mas ejemplos
$ chmod =r ArchivoEmilio
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 ArchivoEmilio
nota esas 3 “r” son 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 archivoEmilio
Para remover los permisos de ejecución a grupos y otros basta con usar:
$ chmod g-x,o-x archivoEmilo
nuestro archivo quedara con estos permisos
-rwxr--r-- 1 wada users 4096 abr 13 19:30 archivoEmilio
si deseas remover a usuario el permiso de escritura:
$ chmod u-x archivoEmilio
-r-xr--r-- 1 wada users 4096 abr 13 19:30 archivoEmilio
Agregando y removiendo dos permisos a la vez:
$ chmod u-x+w archivoEmilio
-rw-r--r-- 1 wada users 4096 abr 13 19:30 archivoEmilio
¿muy simple verdad?
Veamos ahora 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
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 | 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-----------xFacil verdad.
Esto es todo, espero que lo tengamos ahora mucho mas claro.
Si teneis alguna duda, comentala.
Saludos.