Curso de Introducción a Unix - por F.C.

PERMISOS

Todos los ficheros en UNIX tienen un propietario y además están asociados a un grupo. Aunque un usuario puede pertenecer a varios grupos, no puede estar trabajando simultáneamente en más de uno en la misma shell. Los ficheros sólo pueden tener un grupo, que por lo general será el grupo en que el usuario estaba trabajando en el momento de crearlo.

Los permisos se establecen para tres tipos de usuarios: el propietario, los miembros del grupo y el resto de usuarios. Solamente el propietario puede modificar los permisos de un fichero.

Por otra parte todos los ficheros en UNIX tienen asociados tres tipos de permisos:
r Lectura 
w Escritura
x Ejecución

Para poder verlos podemos usar el comando ls con la opción -l

-rw-r--r--   1 fcabrera agn        23845 Oct  2  1997 text3
drwxr-xr-x   5 fcabrera agn          512 Feb 17 10:19 unix

El primer caracter de cada línea nos da información sobre el tipo de fichero. En este caso el primero sería un fichero normal y el segundo un directorio.

Después hay nueve caracteres. Los tres primeros corresponden a los permisos del propietario del fichero, que se indica en la tercera columna (fcabrera). Los tres siguientes corresponden a los permisos del grupo, que se indica en la cuarta columna (agn). Los tres últimos corresponden a los permisos del resto de usuarios.

Los tres caracteres para el propietario, grupo u otros representan los permisos de lectura (r) escritura (w) y ejecución (x) por este orden. Si se tiene permiso aparece la letra correspondiente y si no el signo -.

El significado de los permisos es diferente para ficheros y directorios:

Permiso         Fichero               Directorio

   r            Leer el ficheo        Ver el nombre de los 
                                      ficheros que contiene


   w            Escribir en el        Crear, renombrar o borrar 
                                      un fichero del directorio

   x           Ejecutar un programa   Situarnos en él
               o  shell script        Leer un fichero
                                      Escribir en un fichero
                                      Ejecutar un fichero.
                                      Crear, renombrar o borrar
                                      un fichero del directorio

Comandos relacionados con grupos

Antes de pasar a ver como se modifican los perimisos es conveniente entender como funcionan los grupos y algunos comandos relacionados con estos. En un sistema UNIX pueden haber definidos varios grupos. Para ver cuales son estos grupos podemos usar el comando:
dispgid

Para ver a que grupo pertenecemos ejecutamos:
groups
y si queremos saber a que grupo pertenece otro usuario:
groups username

También podemos cambiar el grupo al que pertenece un fichero propio siempre que pertenezcamos al grupo al que queramos cambiarlo.
chgrp group file

Cuando entramos en la cuenta estamos en un grupo por defecto. Si queremos cambiar a otro grupo al que pertenezcamos usamos el comando:
newgrp group
Para volver al grupo anterior tecleamos:
exit
Si queremos saber en que grupo estamos trabajando en un determinado momento usamos el comando:
id

Modificación de permisos

Para cada fichero hay tres números, asociados a los permisos del propietario, grupo y otros. Este número se obtiene sumando los valores asociados a los permisos que tenga el fichero. Estos valores son:

    r  w  x
    4  2  1

Así pues, un fichero con sólo permiso de lectura tendría el valor 4, lectura y escritura 6, etc.

Para dar los permisos que queramos a un fichero existe el comando chmod con el que asignamos un número a los permisos de propietario, grupo y otros. Por ejemplo:

                     propietario  grupo   otros
    chmod 640 file1       rw-     r--     ---
    chmod 754 file1       rwx     r-x     r--
    chmod 664 file1       rw-     rw-     r--

Este comando puede usarse de otro modo sin hacer uso directamente de los números por ejemplo:
chmod go+rw filename
da permisos de lectura y escritura al grupo y otros (u, g, o representan propietario grupo y otros respectivamente). Si utilizamos el signo menos quitamos estos permisos.

Se pueden modificar también los permisos que tienen por defecto los ficheros cuando se crean. Normalmente un directorio se crea con permisos 777 y un fichero 666. El comando umask permite modificar estos valores. Por ejemplo umask 022 significa que hay que restar este valor al que los permisos tienen por defecto, es decir en este caso los permisos por defecto al crear directorios y ficheros serían respectivamente 755 y 644.

Para que se ejecute cada vez que entremos en una sesión podemos incluir el comando en el fichero .cshrc (.tcshrc).