Permisos

De doc.ubuntu-es
(Diferencias entre revisiones)
Saltar a: navegación, buscar
Línea 106: Línea 106:
 
utilizamos sudo cuando queremos cambiar los permisos de un archivo del que no somos propietarios (tened cuidado en esta situación pues cualquier metedura de pata puede afectar a partes importantes del sistema)
 
utilizamos sudo cuando queremos cambiar los permisos de un archivo del que no somos propietarios (tened cuidado en esta situación pues cualquier metedura de pata puede afectar a partes importantes del sistema)
  
     user@host:/home/user$ ls -l /usr/local/bin/archivo
+
     usuario@host:/home/usuario$ ls -l /usr/local/bin/archivo
 
     -rw-r--r--  1 root root 550 2005-11-13 19:45 /usr/local/bin/archivo
 
     -rw-r--r--  1 root root 550 2005-11-13 19:45 /usr/local/bin/archivo
     user@host:/home/user$
+
     usuario@host:/home/ usuario$
  
     user@host:/home/user$ sudo chmod o+x /usr/local/bin/archivo
+
     usuario@host:/home/ usuario$ sudo chmod o+x /usr/local/bin/archivo
  
     user@host:/home/user$ ls -l /usr/local/bin/archivo
+
     usuario@host:/home/ usuario$ ls -l /usr/local/bin/archivo
 
     -rw-r--r-x  1 root root 550 2005-11-13 19:45 /usr/local/bin/archivo
 
     -rw-r--r-x  1 root root 550 2005-11-13 19:45 /usr/local/bin/archivo
     user@host:/home/user$
+
     usuario@host:/home/ usuario$
 +
 
  
  

Revisión de 16:01 17 oct 2007

Para brindar algo de privacidad y protección cada archivo o directorio tiene asociados permisos diferentes para el propietario, para el grupo y para los demás usuarios. En el caso de archivos los permisos que pueden darse o quitarse son: (r) lectura, (w) escritura y (x) ejecución. En el caso de directorios los permisos son: (r) para listar los archivos, (w) para escribir, crear o borrar archivos y (x) para acceder a archivos del directorio. [1].

Desde un administrador de archivos, puede ver los permisos de un archivo con el botón derecho del mouse cuando el puntero está sobre el archivo, escogiendo la opción apropiada del menú que aparece. Desde un intérprete de comandos puede emplear el comando ls con la opción -l. Un ejemplo del resultado de este comando se presenta a continuación:

 drwxr-xr-x    5 juan     users        4096 Feb 21 06:31 textos
 -rw-r-----    1 juan     users       62561 May 13 18:13 ev.tar.gz
 lrwxrwxrwx    1 juan     users          12 Nov 12  2000 a -> /etc/hosts

La primera línea presenta un directorio (la d al principio de la línea lo indica), la segunda presenta un archivo (el guión inicial lo indica) y la tercera un enlace. El nombre del directorio es textos tiene 5 archivos, fue modificado por última vez el 21 de Febrero del año en curso a las 6:31AM, el propietario es juan, el grupo es users y el tamaño es 4096 bytes. En realidad el tamaño cobra sentido sólo en el caso de archivos como ev.tar.gz cuyo tamaño es 62561 bytes. Los tres caracteres rwx que siguen a la d inicial indican los permisos para el propietario, los tres siguientes r-x indican los permisos para el grupo y los tres siguientes r-x indican los permisos para el resto de usuarios. Como el orden de estos permisos es siempre el mismo (primero lectura r, después escritura w y después ejecución x), resulta que el archivo ev.tar.gz no es ejecutable, que puede ser leído por el propietario y el grupo pero no por los demás usuarios, además puede ser escrito sólo por juan. Del enlace podemos destacar que se llama a, que enlaza al archivo /etc/hosts y que su tamaño y permisos reales los heredará de /etc/hosts.

Los permisos de un archivo pueden ser modificados por el propietario o por el administrador del sistema con el comando chmod que espera dos parámetros: cambio por realizar al permiso y nombre del archivo por cambiar. Los permisos se pueden especificar en octal o con una o más letras para identificar al usuario (u para el usuario, g para el grupo, o para los demás usuarios y a para todos), un +, un - o un = y después letras para identificar los permisos (r, w o x). Por ejemplo:

  chmod og+x sube.sh

Da a los demás usuarios y al grupo permiso de ejecución del archivo sube.sh que debe estar en el directorio desde el cual se da el comando.

  chmod a-w deu.txt

Quita el permiso de escritura en el archivo deu.txt tanto al propietario, como al grupo, como a los demás usuarios. Este mismo resultado puede obtenerse con el comando chmod -w deu.txt. Cuando no se especifican usuarios chmod toma por defecto todos los usuarios.

  chmod u=rxw,g=rx,o= textos

Cambia permisos del archivo (o directorio) textos, el usuario puede leer, ejecutar y escribir, el grupo puede leer y ejecutar mientras que los demás usuarios no tienen permisos.

El propietario de un archivo puede ser modificado sólo por el administrador del sistema con el programa chown. Un usuario que pertenezca a varios grupos puede cambiar el grupo de uno de sus archivos a alguno de los grupos a los que perteneza con el program chgrp, por ejemplo

  chgrp estudiantes tarea1.txt

Cambiará el grupo del archivo tarea1.txt a estudiantes. Los grupos a los cuales un usuario pertenece son mostrados por el programa groups.

Chmod con Números

   Uso: chmod {opciones} {nombre de archivo}
Opciones Definición
#-- Propietario
-#- Grupo
--# Otros
1 ejecutar
2 escribir
4 leer

Propietario, Grupo y Otros está representado por tres números. Para obtener el valor de las opciones para determinar el tipo de acceso necesarios para el archivo hay que agregarlos a continuación.

Por ejemplo si deseas que un archivo tenga estos permisos -rw-rw-rwx debes hacer lo siguiente:

Propietario Grupo Otros
Leer y escribir leer y escribir leer, escribir y ejecutar
4 +2 = 6 4 +2 = 6 4 +2 +1 = 7
    Usuario @ anfitrión: / home / usuario $ chmod 667 archivo

Otro ejemplo, si quieres que un archivo tenga estos permisos: --w-r-x--x debes utilizar lo siguiente:

Propietario Grupo Otros
Escribir leer y ejecutar ejecutar
2 4 +1 = 5 1
   Usuario @ anfitrión: / home / usuario $ chmod 251 archivo


Aquí hay algunos ejemplos de uso de chmod (prueba en tu sistema). Primero creamos algunos archivos vacíos:

   Usuario @ anfitrión: / home / usuario $ touch archivo1 archivo2 archivo3 archivo4
   Usuario @ anfitrión: / home / usuario $ ls -l
   Total de 0
  -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo1
  -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo2
  -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo3
  -rw-r--r-- 1 usuario usuario 0 Nov 19 20:13 archivo4

Añadimos permiso de ejecución al propietario

   Usuario @ anfitrión: / home / usuario $ chmod 744 archivo1
   Usuario @ anfitrión: / home / usuario $ ls -l archivo1
   -rwxr--r-- 1 usuario usuario 0 Nov 19 20:13 archivo1

Añadimos a Otros permiso de escritura y ejecución

   Usuario @ anfitrión: / home / usuario $ chmod 647 archivo2
   Usuario @ anfitrión: / home / usuario $ ls -l archivo2
   -rw-r--rwx  1 usuario usuario 0 Nov 19 20:13 archivo2

Eliminamos permiso de lectura al grupo:

   Usuario @ anfitrión: / home / usuario $ chmod 604 archivo3
   Usuario @ anfitrión: / home / usuario $ ls -l archivo3
   -rw----r--  -- 1 usuario usuario 0 Nov 19 20:13 archivo3

Añadimos permiso de lectura, escritura y ejecución a todo el mundo:

   Usuario @ anfitrión: / home / usuario $ chmod 777 file4
   Usuario @ anfitrión: / home / usuario $ ls -l file4
   -rwxrwxrwx 1 usuario usuario 0 Nov 19 20:13 file4
   Usuario @ anfitrión: / home / usuario $

chmod con sudo

utilizamos sudo cuando queremos cambiar los permisos de un archivo del que no somos propietarios (tened cuidado en esta situación pues cualquier metedura de pata puede afectar a partes importantes del sistema)

   usuario@host:/home/usuario$ ls -l /usr/local/bin/archivo
   -rw-r--r--  1 root root 550 2005-11-13 19:45 /usr/local/bin/archivo
   usuario@host:/home/ usuario$
   usuario@host:/home/ usuario$ sudo chmod o+x /usr/local/bin/archivo
   usuario@host:/home/ usuario$ ls -l /usr/local/bin/archivo
   -rw-r--r-x  1 root root 550 2005-11-13 19:45 /usr/local/bin/archivo
   usuario@host:/home/ usuario$



Fuentes:

Herramientas personales