Red Hat Linux 7.0: The Official Red Hat Linux Getting Started Guide
Anterior | Capítulo 15. Usted se encuentra aquí | Siguiente

# Propiedades y permisos

Al principio de este capítulo se ha presentado este ejemplo para la ejecución del comando cd:

    [newuser@localhost newuser]$ cd /root
    bash: /root: Permission denied
    [newuser@localhost newuser]$

Esto es un ejemplo de las características de seguridad de Linux. Linux, como UNIX, es un sistema multiusuario y los permisos para tener acceso a los ficheros presentan una solución para proteger la seguridad del sistema de cualquier daño.

Una manera de tener acceso es por medio del comando su de root, porque quien conoce la clave de root tiene el acceso completo al sistema.

    [newuser@localhost newuser]$ su
    Password: your root password
    [root@localhost newuser]# cd /root
    [root@localhost /root]#

Entrar en el sistema como superusuario no es siempre la cosa mejor -- por que es bastante sencillo hacer errores en importantes ficheros de configuración.

Todos los ficheros y los directorios pertenecen a la persona que los ha creado. Hemos creado el fichero `sneakers.txt` en nuestro directorio de login, por ello `sneakers.txt` nos "pertenece".

Esto quiere decir que podemos especificar quien puede leer o escribir un fichero. Además en el caso de que un fichero sea ejecutable es posible especificar quien tiene el derecho a ejecutarlo.

Leer, escribir y ejecutar son tres parámetros muy importantes en permisos.

Cada usuario del sistema está incluido en un grupo, podemos también especificar que grupos de usuarios tienen acceso a nuestros ficheros.

Tomamos en consideración el fichero `sneakers.txt` con el comando ls utilizando la opción -l (long) (vea Figura 15-16).

    [newuser@localhost newuser]$ ls -l sneakers.txt
    -rw-rw-r--    1 newuser newuser     150 Mar 19 08:08 sneakers.txt

Con esta opción se visualizarán algunos detalles añadidos. Podemos ver quien puede leer (r) y escribir (w) el fichero, el propietario (newuser) y a qué grupo de usuarios pertenece (newuser).

| su grupo por defecto
| Recuerde que, por defecto, el grupo corresponde al nombre del usuario.

Figura 15-16. Permisos para `sneakers.txt`

Entre el nombre del grupo y el nombre del fichero hay informaciones relativas al tamaño del fichero, a la fecha y a la hora de creación.

¿Qué sentido tienen las letras y los guiones que se encuentran en la parte izquierda? Es más sencillo explicar el sentido utilizando un ejemplo:

    -rw-rw-r--

Hay 10 columnas. La primera columna representa el tipo de fichero. Las restantes 9 son repartidas en grupos de 3 con 3 distintas clases de permisos.

Estos tres grupos se refieren respectivamente al propietario del fichero, al grupo y "al resto del mundo", o sea todos los demás usuarios y grupos además del propietario (newuser) y del grupo (newuser).

En detalle:

     -    (rw-)   (rw-)  (r--)    1 newuser newuser
     |      |       |      |
    type  owner   group  others

El primer elemento, que especifica el tipo de fichero, puede tener uno entre los siguientes valores:

- `d` -- el fichero es un directorio

- `-` -- un fichero regular (excepto directorios y enlaces)

- `l` -- un enlace simbólico a un fichero

Después del primer carácter, en los tres grupos que siguen es posible especificar uno entre los siguientes valores:

- `r` -- indica que el fichero es accesible para la lectura

- `w` -- indica que el fichero es accesible para escribir

- `x` -- indica que el fichero es un ejecutable (si es un programa)

Cuando aparece un guión en uno de estos campos, quiere decir que un permiso entre los que vimos no ha sido concedido.

Mire otra vez la primera columna del fichero `sneakers.txt` y lea sus permisos. (vea Figura 15-17)

    [newuser@localhost newuser]$ ls -l sneakers.txt
    -rw-rw-r--    1 newuser newuser     150 Mar 19 08:08 sneakers.txt
    [newuser@localhost newuser]$

Figura 15-17. Un vistazo a los permisos

El propietario del fichero, newuser, tiene los permisos para escribir y leer el fichero; el fichero no es un programa, entonces newuser no tiene el permiso de ejecutarlo. El grupo, newuser, tiene los permisos para escribir y leer `sneakers.txt`. Para la notación relativa al permiso de ejecución , no hay aquí el permiso de ejecución para el grupo newuser.

Los últimos tres caracteres se refieren a los usuarios que no son `newuser` y tampoco pertenecen al grupo newuser. Esos usuarios pueden leer el fichero, pero no pueden escribirlo o ejecutarlo.

Podemos utilizar el comando chmod para cambiar los permisos de los ficheros.

En el fichero `sneakers.txt` podemos cambiar los permisos por medio del comando chmod.

En el fichero original están presentes los siguientes permisos:

    -rw-rw-r--    1 newuser newuser     150 Mar 19 08:08 sneakers.txt

Puesto que usted es el propietario del fichero -- o ha entrado en el sistema como superusuario -- podemos cambiar los permisos utilizando todas las combinaciones.

Por el momento, el propietario (usted) y los usuarios del grupo (newuser) pueden leer y escribir el fichero

Quien esté fuera de nuestro grupo, sólo puede leer el fichero (`r--`).

| Los permisos son necesarios
| Recuerde que los permisos de los ficheros son muy importantes para la seguridad. Cada vez permite a todo el mundo leer, escribir o ejecutar un fichero, puede ser que arriesga la seguridad del sistema. Como regla general, le aconsejamos evitar lo más posible los permisos de leer y escribir a los demás usuarios.

En nuestro ejemplo, suponga que quiere conceder a un grupo el permiso de escritura en un fichero, de forma que puedan leerlo, escribir en ello y grabarlo. Esto quiere decir que tendrá que cambiar los permisos en sección "otros".

Puesto que somos los propietarios del fichero, no tenemos que utilizar el comando su para cambiar los permisos. Es bastante teclear:

    ls -l sneakers.txt

visualiza las informaciones sobre el fichero:

    -rw-rw-r--    1 newuser newuser     150 Mar 19 08:08 sneakers.txt

Ahora inserte:

    chmod o+w sneakers.txt

Para controlar los resultados, podemos nuevamente listar los detalles relativos a los ficheros:

    -rw-rw-rw-    1 newuser newuser     150 Mar 19 08:08 sneakers.txt

Ahora, cualquiera puede leer o escribir el fichero (vea Figura 15-18).

Figura 15-18. Cambiar los permisos para `sneakers.txt`

Cuando ha tecleado o+w, ha elegido "añadir" los permisos de escritura para el fichero `sneakers.txt`.

Si quiere eliminar todos los derechos de acceso para el fichero `sneakers.txt` puede utilizar el comando chmod para eliminar los permisos de escribir y leer en esta manera:

    chmod go-rw sneakers.txt

esto será el resultado:

    -rw-------    1 newuser newuser    150 Mar 19 08:08 sneakers.txt

La opción go-rw, signifíca que "para el grupo y el resto del mundo, quiere quitar los permisos de lectura y escritura del fichero `sneakers.txt`."

Estos pasos le parecerán escritos en estilo estenográfico si quiere cambiar los permisos utilizando chmod, de hecho lo que tiene que saber son unos cuantos simbolos y letras que funcionan con el comando chmod.

Aquí tiene una lista de las opciones:

> Identities

> u -- es el usuario propietario del fichero

> g -- es el grupo al que el usuario pertenece

> o -- el resto del mundo (ni el propietario, ni su grupo)

> a -- todo el mundo (u, g, y o)

> Permisos

> r -- acceso de sola lectura

> w -- acceso de sola escritura

> x -- acceso de ejecución

> Acciones

> + -- añadir los permisos

> - -- quitar los permisos

> = -- quitar los permisos

¿Lo intentamos? Quite los permisos de `sneakers.txt` -- para todos los usuarios.

    chmod a-rw sneakers.txt

Ahora compruebe si es posible leer el fichero:

    [newuser@localhost newuser]$ cat sneakers.txt
    cat: sneakers.txt: Permission denied
    [newuser@localhost newuser]$

Funciona; no tenemos acceso al fichero. Puesto que el fichero nos pertenece, podemos cambiar los permisos según nuestros deseos. (Vea Figura 15-19)

    [newuser@localhost newuser]$ chmod u+rw sneakers.txt

    [newuser@localhost newuser]$ cat sneakers.txt
    buy some sneakers
    then go to the coffee shop
    then buy some coffee
    bring the coffee home
    take off shoes
    put on sneakers
    make some coffee
    relax!
    [newuser@localhost newuser]$

Figura 15-19. Quitar y volver a añadir los permisos

Aquí tiene unos ejemplos de parámetros que pueden utilizarse con chmod:

- g+w -- Añadir el acceso de escritura para un grupo

- o-rwx -- quitar los permisos para los demás

- u+x -- permitir al propietario del fichero su ejecución

- a+rw -- permitir a cualquiera leer y escribir en el fichero

- ug+r -- permitir al propietario o al grupo leer el fichero file

- g=rx -- conceder al grupo la lectura y la ejecución (sin escribir)

Añadiendo la opción -R, podemos cambiar los permisos para el árbol entero del directorio donde nos encontramos.

De todas formas hay una limitación, puesto que no podemos ejecutar un directorio como si fuera una aplicación. Cuando añade o quita los permisos de ejecución para un directorio, de verdad estamos concediendo (o quitando) los permisos de búsqueda en el interior de este directorio.

Para permitir a cualquiera tener el acceso de lectura y escritura al fichero `tigger` en su directorio de login, puede teclear:

    chmod -R a+rw tigger

Si no concede a otros el poder tener los permisos de ejecución para tigger, no sirve de mucho limitar el acceso en lectura y escritura, porque nadie puede entrar en el directorio - a menos que no conozca el exacto nombre del fichero.

Por ejemplo, teclee:

    chmod a-x tigger

para quitar todos los derechos de ejecución a todos los usuarios.

Aquí tiene lo que pasa cuando intenta acceder al directorio `tigger`:

    [newuser@localhost newuser]$ cd tigger
    bash: tigger: Permission denied
    [newuser@localhost newuser]$

Configurar nuestros derechos de acceso y los de los grupos.

    chmod ug+x tigger

Ahora, si controla su trabajo con el comando ls -dl verá que los demás no tienen acceso a tigger.

Anterior | Inicio | Siguiente
Insertar más comandos a la vez | Subir | Jugar con los números en chmod