5) ¿Y que hay de los permisos?.¿Cómo los cambio?.Cada archivo o carpeta se considera propiedad de un usuario o un grupo (usualmente al grupo principal al cual el usuario pertenece).Existe un conjunto de permisos asociados a cada archivo o carpeta el cual determina que acciones puede ejercer un usuario en particular sobre esos archivos o carpetas
Una forma de ver la propiedad y permisos de un archivo o carpeta es mediante el comando 'ls' con la opción "-l".Quedando así el comando "compuesto" 'ls -l'.Por ejemplo,si "carrera" es un archivo en la carpeta actual entonces:
CODE
ls -l carrera
podría dar el resultado:
CODE
-rw-r--r-- 1 jose family 0 Feb 12 05:15 carrera
Esto muestra que el archivo "carrera" es propiedad del usuario "jose" y grupo "family".Los permisos son mostrados por secuencia de diez caracteres al inicio de la línea: "-rw-r--r--".
El primer caracter es "-" para un archivo y "d" para una carpeta ("d" representa a un directorio,como se llama usualmente a una carpeta en Unix).
los próximos tres caracteres ("rw-") indican los permisos para el propietario del archivo ("jose").
Los siguientes tres caracteres ("r--") indican los permisos para algun usuario que no es el propietario del archivo pero que está en el grupo que posee el archivo ("family").
los últimos tres caracteres ("r--") indican los permisos para un usuario que no es el propietario del archivo ni pertenece al grupo que posee el archivo (llamado con frecuencia "other").
Estos tres caracteres indican "read","write" y "execute" (lectura,escritura y ejecución respectivamente) que se aplican al usuario en cuestión..
Una "r" indica que el archivo puede leerse,mientras que la falta de permisos de lectura se indican con un "-".
Una "w" indica que el archivo permite escritura,mientras que la falta de permisos de escritura se indican con un "-". Es necesario tener permisos de escritura sobre una carpeta si se desea agregar o eliminar archivos de esa carpeta.Nótese que se puede eliminar un archivo read-only (de sólo lectura) de una carpeta si se tienen permisos de escritura sobre esa carpeta.
Una "x" indica que el archico es ejecutable,mientras que la falta de permisos de ejecución se indican con un "-". Solamente archivos de programa (tales como aplicaciones y scripts) son usualmente ejecutables:los documentos no lo son.Aplicado a una carpeta esto significa la habilidad de recorrer la carpeta o hacer un 'cd' a esa carpeta.
En particular,si se quiere que alguien tenga acceso a un archivo en una carpeta dada,ese usuario debe tener permisos de "búsqueda" ("x") sobre todas las carpetas a lo largo de la ruta desde el nivel más alto del drive hasta la carpeta donde está contenido el archivo.Luego,este archivo por sí mismo debe tener permisos de "read" ("lectura") para ese usuario.Finalmente,si se quiere que algún usuario sea capaz de ver cuáles archivos están en una carpeta en particular,esa carpeta debe tener permisos de lectura para ese usuario.
Para conocer los permisos de una carpeta,necesitas emplear la opción "-d" de 'ls' al igual que la opción "-l".Por ejemplo:
CODE
ls -ld miCarpeta
Usar solamente 'ls -l' en una carpeta te mostrará información de los archivos en esa carpeta pero no la información sobre la carpeta misma.
Cambiando la propiedadPara cambiar la propiedad de una archivo o carpeta usas el comando 'chown'.Este comando necesita ser ejecutado con privilegios de 'root' (por lo que necesita que anteceda la acción 'sudo' precedido de contraseña.Sólamente los usuarios con cuenta de Administrador pueden usar 'sudo'. Como ejemplo,para cambiar la propiedad del archivo "carrera" al usuario "jose" del grupo "family" usarías el comando:
CODE
sudo chown jose:family carrera
Un comando similar funcionaría para cambiar la propiedad de una carpeta pero con frecuencia se desea cambiar la propiedad de una carpeta y su contenido.Para hacer esto,se hace uso de la opción "-R" al cambiar la propiedad.Por ejemplo:
CODE
sudo chown -R jose:family miCarpeta
Cambiando permisosPara cambiar los permisos de un archivo o carpeta usas el comando 'chmod'.Existen varias maneras diferentes de usar este comando (ver 'man chmod') pero la forma más fácil es usar los "modos simbólicos" donde puedes especificar cuáles secciones de permisos (propietario,grupo,other) quieres cambiar.Para esto están "+","-" o "=" (para agregar,remover o ajustar permisos) y luego el tipo de permisos que quieres modificar.Se usa 'u' para indicar que el cambio se aplica a la sección "propietario" de los permisos,'g' para indicar que se aplica a la sección de "grupo" y 'o' para indicar que se aplica a la sección "other".
A manera de ejemplo,para cambiar los permisos del archivo "carrera" para que los usuarios en el grupo al que le pertenece el archivo tengan permisos de escritura:
CODE
chmod g+w carrera
Por supuesto,si el archivo "carrera" no posee tu propiedad,se requiere anteceder el comando con 'sudo' y proporcionar tu contraseña:
CODE
sudo chmod g+w carrera
Si deseas hacer al archivo "carrera" ejecutable (p.e. si es un script) por el propietario del archivo y para los usuarios en el grupo al que pertence el archivo:
CODE
chmod ug+x carrera
Si deseas que el archivo tenga propiedad de escritura para el propietario y el grupo:
CODE
chmod ug+w carrera
Si deseas que el archivo se pueda leer,escribir y ejecutar por el propietario y el grupo:
CODE
chmod ug+rwx carrera
Si deseas que el archivo lo puedan leer todos (propietario,grupo y otros):
CODE
chmod ugo+r carrera
si deseas remover los permisos de lectura y escritura para el grupo y "other" ("otros"):
CODE
chmod go-rw carrera
Puedes usar la operación "=" para colocar los permisos a la manera exacta que quieres sean -sin importar cuáles sean los permisos actuales.Por ejemplo,para que el archivo "carrera" se pueda leer y escribir por el propietario,pero solamente se pueda leer por un grupo y "other":
CODE
chmod u=rw,go=r carrera
Si quieres que el archivo se pueda leer,escribir y ejecutar por el propietario,pueda ser leído y ejecutable por el grupo pero solo leído por "other":
CODE
chmod u=rwx,g=rx,o=r carrera
Por comandos similares se cambian los permisos de una carpeta.Pero con frecuencia se quiere tambien cambiar los permisos de una carpeta y todo su contenido.Para hacer esto se usa la opción "-R" de 'chmod'. Por ejemplo,para dar acceso a escritura de la carpeta "miCarpeta" y todo su contenido,para el propietario y grupo:
CODE
sudo chmod -R ug+w miCarpeta
El simbolo especial "X" (nayúscula) es útil cuando se emplea la opción "-R" para asegurar que una carpeta y todas sus subcarpetas tengan el permiso usual de ejecución.Se desea que las carpetas tenagn permisos de ejecución pero no que que los archivos en esas carpetas se vuelvan ejecutables (debido a que los permisos de ejecución no son deseables para los archivos a menos que sean aplicaciones o scripts).Por ejemplo:
CODE
chmod -R ugo+X miCarpeta
Valores numéricos para los permisos.También es posible asignar permisos usando valores numéricos.Esto es algunas veces más conciso que usando los "modos simbólicos" previos.
El permiso de lectura (read) tiene asignado un valor numérico de 4
El permiso de escritura (write) tiene asignado un valor numérico de 2
El permiso de ejecución (execute) tiene un valor asignado de 1
la suma total de estos valores resulta en el valor numérico del permiso.Por ejemplo,un permiso con valor de 4 indica un permiso de solo lectura;un permiso con valor de 6 indica permisos de escritura y lectura;y un permiso de valor 7 indica permisos de lectura,escritura y ejecución,Un permiso de valor 5 indica permisos de lectura y ejecución (pero no de escritura).
Lo anterior se aplica a cada sección de permisos (propietario,grupo y otros -"other"-) por lo que, un valor de permiso de 644 indica que el propietario posee permisos de lectura y escritura,mientras que el grupo y "other" solo permisos de lectura.
Un valor de permiso de 755 indicaque el propietario posee permisos de escritura,lectura y ejecución mientras que el grupo y "other" tienen permisos de lectura y ejecución pero no de escritura.
Los siguientes comandos son equivalentes.El escribir cualquiera de ellos cambiarán los permisos del archivo "carrera" como de lectura,escritura y ejecución por el propietario,de lectura y ejecución por el grupo,pero solo de lectura por "other":
CODE
chmod u=rwx,g=rw,o=r carrera
chmod 754 carrera