Está en la página 1de 31

1 File Ownerships and Permissions Captulo 1 Propiedades de Archivos regulares y Permisos Conceptos clave

Los archivos tienen usuario propietario, un grupo propietario, y una serie de permisos. Tres tipos de permisos: lectura (r), escritura (w) y ejecucin (x) Tres clases de acceso: (u)suario, (g)rupo propietario, y (o)tro Ver la propiedad y los permisos de archivo: ls -l Modificar la propiedad y permisos:chmod, chgrp, y chown

Usuarios propietarios, Grupos propietarios y Permisos Linux es un entorno multiusuario y como tal, personas muy diferentes pueden estar trabajando al mismo tiempo con una serie de archivos sencillos. Se espera que algunos de estos archivos sean compartidos, de tal manera que muchas personas puedan verlos y modificarlos. Por ejemplo, alguien puede estar haciendo la lista de regalos para un cumpleaos prximo. Entre ms gente pueda leer este archivo, mejor. Sin embargo, puede que haya otros archivos que se quieran mantener en privado. Por ejemplo, muy poca gente querr que alguien le lea su diario, otros querrn tener un archivo de lectura para todos en el sistema, y permitirle a unos pocos modificarlo. Cada archivo en Linux tiene tres propiedades que permiten a los usuarios controlar quin tiene acceso al archivo y cmo: un usuario propietario, un grupo propietario y una serie de permisos otorgados. Cuando un usuario crea un archivo, ste se convierte en el propietario del archivo del usuario y por lo general, el grupo primario del usuario, se convierte en el propietario del archivo de grupo. Un usuario no puede cambiar el archivo del usuario propietario, pero el usuario tiene algunas habilidades para cambiar el grupo propietario. Los bits de permisos definen la forma como las tres clases diferentes de usuarios pueden usar el archivo: el propietario del archivo, los miembros del grupo que poseen el archivo y cualquier otro usuario. Considere el siguiente listado largo del directorio /var/gigs. Figure 1. Listado largo de directorio /var/gigs.
[student@station student]$ ls -l /var/gigs/ total 28 -rw-rw-r-1 elvis elvis 129 Jan 13 14:48 atlanta -rw-r--r-1 blondie music 142 Jan 13 14:46 boston -rw-rw-r-1 elvis music 143 Jan 13 14:48 chicago -rwxr-x--1 root music 55 Jan 13 15:25 generate_report.sh -rw-rw-r-1 root music 2057 Jan 13 14:47 los_angeles -rw-rw-r-1 elvis music 142 Jan 13 14:47 san_francisco -rw-rw-r-1 blondie blondie 135 Jan 13 14:47 springfield

La ltima columna es el nombre del archivo, mientras que la tercera y cuarta columnas, indican los propietarios del archivo de usuario y grupo, respectivamente. En las

2 File Ownerships and Permissions siguientes secciones veremos cmo utilizar la primera columna para determinar los permisos del archivo. Los tres tipos de permisos: lectura (r), escritura (w), y ejecucin(x) Al decidir quin puede tener acceso al archivo, un usuario puede distinguir entre tres tipos de permisos. Alguien puede ver un archivo si tiene permisos de lectura, pero deber tener permisos de escritura para modificarlo. Los permisos de ejecucin, permiten que alguien utilice el archivo como un comando. Para iniciar una aplicacin o ejecutar un script, el archivo que contenga la aplicacin o el script deber ser ejecutable. Los archivos normales de datos no usan el tipo de permiso ejecutable. Table 1. Permisos de Archivos Regulares Lectura(r) escritura (w) ejecucin (X)

Ver el archivo Modificar el archivo Usar el archivo como comando Las tres clases de acceso: (u)suario, (g)rupo propietario, y (o)tro. Cada archivo tiene una serie de permisos de lectura(r), escritura(w), y ejecucin(X) para las tres clases diferentes de acceso de archivo. El propietario del archivo utiliza el primer grupo. Los miembros del grupo propietario del archivo utilizan el segundo y todos los dems que no estn incluidos en las dos categoras anteriores utilizan el ltimo. Los permisos de un archivo se presentan, por lo general, con una serie de nueve caracteres, tales como rwxr-xr-x. Las primeras tres letras representan los permisos del "usuario", las siguientes tres, los permisos del "grupo", y las ltimas tres el permiso del "otro". Una letra indica que el permiso correspondiente se ha activado, mientras que si aparece un guin esto significa que no se tiene permiso. Figure 1. Permisos para las tres clases de acceso de archivo

Cuando alguien trata de acceder a un archivo, Linux hace las siguientes preguntas en este orden: 1. El usuario es propietario del archivo? Si lo es entoces utiliza los permisos de usuario. 2. El usuario es miembro del grupo que dueo del archivo? Si lo es entonces se utilizan los permisos de grupo. 3. De lo contrario, se utilizan los otros permisos.

3 File Ownerships and Permissions Ejemplos Archivos recin creados Considere el siguiente verso que elvis est componiendo:
[elvis@station elvis]$ echo "Haba una vez un hombre peruano" > /tmp/limerick [elvis@station elvis]$ ls -l /tmp/limerick -rw-rw-r-1 elvis elvis 32 Jan 14 13:42 /tmp/limerick

Observe que por defecto, elvis posee el archivo y como propietario de archivo tiene permisos de escritura y de lectura. Los otros usuarios slo pueden leer el archivo (debido a que Red Hat Enterprise Linux utiliza el esquema del grupo privado de usuario, el usuario elvis es tambin el nico miembro del grupo elvis). Como elvis tiene permisos para escribir, puede modificar el archivo aadiendo la prxima lnea del verso:
[elvis@station elvis]$ echo "que todo le importaba un pepino" >> /tmp/lime rick

Otros usuarios como blondie, sin embargo, solo pueden leer el archivo. Cuando blondie trata de sobrescribir el archivo con su propio verso, se da cuenta que no tiene los permisos apropiados.
[blondie@station blondie]$ cat /tmp/limerick Haba una vez un peruano, que todo le importaba un pepino. [blondie@station blondie]$ echo "Haba una vez un argentino " > /tmp/limer ick -bash: /tmp/limerick: Permission denied

Archivos compartidos por un grupo Considere los siguientes usuarios, y sus respectivas membresas de grupo: user blondie blondie,music elvis bob elvis,music,wrestle,physics,emperors bob hogan hogan,wrestle grupos

La siguiente es una lista de archivos en el directorio /tmp:


[elvis@station elvis]$ ls -l /tmp total 28 -rw------1 bob bob -rw-rw-r-1 elvis music -rw-rw-r-1 elvis elvis

136 Jan 14 15:58 diary 142 Jan 14 15:58 gigs 70 Jan 14 13:42 limerick

4 File Ownerships and Permissions


-rw-rw----rw-------rw-r----1 blondie 1 blondie 1 hogan blondie blondie wrestle 134 Jan 14 15:59 lyrics 29 Jan 14 16:00 lyrics.old 146 Jan 14 15:58 routines

El arhivo diary de bob slo lo puede leer y escribir Bob. Elvis es el propietario del archivo gigs, pero cualquiera que pertenezca al grupo music puede leer o escribir en este archivo. Cualquier msico, puede aadir (o borrar) un evento en la programacin y cualquiera puede leer el archivo para saber cundo tocan los msicos. En contraste, blondie ha estado trabajando en el archivolyrics, el cual no est an listo para compartir. Aunque el archivo tiene permiso de escritura, es de propiedad del grupo de blondie. Como Red Hat implementa el esquema de grupo privado de l usuario, la usuaria blondie debera ser la nica miembro del grupo blondie. Los permisos en lyrics tienen el mismo efecto de aquellos en lyrics.old. Hulk Hogan ha estado trabajando en routines para una funcin de lucha libre. Para no tomar a otros luchadores (wrestlers en ingls) por sorpresa, ha dejado un archivo de slo lectura para todos los miembros del grupo wrestle. Observe que otros luchadores pueden leer el archivo, pero no pueden cambiar ninguna de las rutinas. El que no sea miembro del grupo de wrestlers no tiene acceso al archivo. Archivos ejecutables Los archivos que se deben interpretar como comandos necesitan tener permisos de ejecucin.
[elvis@station elvis]$ ls -l /bin/ls /usr/bin/mozilla -rwxr-xr-x 2 root root 67884 Sep 2 07:21 /bin/ls -rwxr-xr-x 1 root root 5607 Oct 3 13:58 /usr/bin/mozilla

El comando ls es ejecutable por cualquiera. Observe que el permiso de lectura no se necesita para ejecutar el comando, pero permite a los usuarios ver el contenido del archivo (a menudo binario). Los permisos de lectura para mozilla, por ejemplo, permiten a los usuarios observadores darse cuenta de que el comando es realmente un script de texto navegable. Enlaces simblicos A pesar de que los enlaces simblicos tienen permisos, los permisos son siempre rwxrwxrwx. Las decisiones de acceso "fracasan" de a cuerdo al archivo al que se refiere el enlace simblico.
[elvis@station elvis]$ ls -l /bin/view /bin/vi -rwxr-xr-x 1 root root 451628 Aug 27 19:09 /bin/vi lrwxrwxrwx 1 root root 2 Sep 11 11:32 /bin/view -> vi

El comando view, el cual es en realidad un enlace simblico, tendra los mismos permisos que: rwxr-xr-x.

5 File Ownerships and Permissions Ejercicios en lnea Exploracin de permisos en archivos recin creados Lab Exercise Objetivo:Examinar la conducta predeterminada de los archivos recin creados Tiempo estimado:10 minutos Cree un subdirectorio en el archivo/tmp con el mismo nombre de su nombre de usuario. Por ejemplo, si su nombre de usuario es elvis, cree el directorio /tmp/elvis. A este directorio se le llamar /tmp/nombre de usuario. Haga una lista corta de propsitos para el ao entrante en su editor de texto preferido o simplemente desde la lnea de comandos. Almacene el archivo en su directorio recin creado como /tmp/nombredeusuario/resolutions.txt.
1. 2. 3. 4. 5. 6. 7. 8. [student@station student]$ nano /tmp/student/resolutions.txt ... (compose and save your text) ... [student@station student]$ cat /tmp/student/resolutions.txt keep room clean don't eat all of the pop tarts use less proprietary software [student@station student]$ ls -l /tmp/student/resolutions.txt -rw-rw-r-1 student student 77 Jan 15 07:12 /tmp/student/resolutions.txt

Convirtase en uno de sus usuarios de cuenta alterna. Puede reiniciar desde otra consola virtual, desde una conexin de red o sencillamente con ejecutar su - al usuario alterno.
9. [student@station student]$ su - student_a 10. Password: 11. [student_a@station student_a]$

12. Como el usuario alterno, confirme si puede ver el archivo. Trate de aadir un nuevo punto a la lista. Por qu no puede modificar el archivo como el usuario alterno?
13. 14. 15. 16. 17. [student_a@station student_a]$ cat /tmp/student/resolutions.txt keep room clean don't eat all of the pop tarts use less proprietary software [student_a@station student_a]$ echo "lose weight" >> /tmp/student/resolutions.txt 18. -bash: /tmp/student/resolutions.txt: Permission denied

Deliverables Question 1

6 File Ownerships and Permissions 1. Un archivo recin creado titulado /tmp/nombredeusuario/resolutions.txt, con permisos predeterminados.

Capitulo 2 Cambio de permisos de archivos: chmod Conceptos clave


El comando chmod se utiliza para modificar los permisos de archivo El primer argumento para chmod usa una sintaxis [ugoa]+/-[rwx] para describir cmo deberan cambiarse los permisos.

En la leccin anterior, aprendimos que los archivos tienen permisos de lectura (r), escritura(w) y ejecucin(x); y tres clases de acceso ((u)suario, (g)rupo, y (o)tro, los cuales definen la manera en que se puede utilizar el archivo. Los permisos son administrados por el comando chmod. Usualmente, en Linux, al permiso de archivo se le conoce como el "modo" del archivo. El nombre chmod es un atajo para cambiarmodo. Por ejemplo, cuando alguien crea un archivo, por defecto el archivo puede ser modificado por slo una persona, pero puede ser leble por todos en el sistema. Supongamos que elvis estuviera trabajando en la letra de una nueva cancin y no quisiera que nadie la leyera antes de haberla terminado. Primero creara el archivo y para no permitir a otros la lectura de ste, necesitara utilizar el comando chmod.
[elvis@station elvis]$ blue_suede [elvis@station elvis]$ [elvis@station elvis]$ -rw-rw-r-1 elvis [elvis@station elvis]$ [elvis@station elvis]$ -rw-rw---1 elvis echo "Well, it's one for the honey," > echo "Two for the snow," >> blue_suede ls -l blue_suede elvis 48 Jan 16 08:09 blue_suede chmod o-r blue_suede ls -l blue_suede elvis 48 Jan 16 08:09 blue_suede

Observe que en el primer uso del comando ls -l, el archivo tena permiso de lectura para todos. Sin embargo, despus del comando chmod, el comando ls -l muestra que otros ya no lo pueden leer. Cuando elvis haya decidido la letra de la cancin entonces puede restaurar la lectura del archivo para otros, utilizando una vez ms chmod.
[elvis@station elvis]$ blue_suede [elvis@station elvis]$ [elvis@station elvis]$ [elvis@station elvis]$ [elvis@station elvis]$ -rw-rw---1 elvis [elvis@station elvis]$ [elvis@station elvis]$ -rw-rw-r-1 elvis echo "Well, it's one for the money," > echo "Two for the show," >> blue_suede echo "Three to get ready," >> blue_suede echo "Now go, cat, go." >> blue_suede ls -l blue_suede elvis 48 Jan 16 08:10 blue_suede chmod o+r blue_suede ls -l blue_suede elvis 85 Jan 16 08:11 blue_suede

7 File Ownerships and Permissions El comando chmod le permite al usuario cambiar cualquier permiso asociado con un archivo. El primer argumento est compuesto por una secuencia de letras que especifican las clases de acceso, seguidas por los signos: ms, menos, o igual y por otra secuencia de letras que especifican el tipo de permiso a cambiar. Cualquier argumento subsecuente especifica una lista de archivos para aplicar los cambios. La sintaxis se resume en la siguiente tabla: Figure 1. Uso del comando chmod

abreviacin interpretacin u user g o a + = r w x Ejemplos Uso del comando chmod en archivos La siguiente tabla presenta varios ejemplos de cmo el comando chmod se puede utilizar para modificar permisos de un archivo llamadofoo, con los permisos predeterminados de rw-rw-r--. La primera columna es un ejemplo del uso del comando chmod y la ltima columna son los permisos que el archivo tendra despus de ejecutar el comando.
[elvis@station elvis]$ ls -l foo -rw-rw-r-1 elvis elvis 42 Jan 16 08:09 foo

grupo otro todos agregar borrar set leer escribir ejecutar

command

efecto

permisos resultantes
rw-rw---rw-r--r-rwxrwxr-rw-rw-rw-

chmod o-r foo suprime el permiso de lectura a otros chmod g-w foo suprime el permiso de escritura para el grupo chmod ug+x foo chmod o+w agrega permiso de ejecucin al usuario y grupo agrega permiso de escritura a otro

8 File Ownerships and Permissions command foo chmod go-rwx suprime el permiso de lectura, escritura y ejecucin a rw------foo grupo y otro chmod a-w foo suprime el permiso de escritura a todos chmod uo-r foo chmod go=rx foo suprime el permiso de lectura para el usuario y otro establece el permiso de lectura y ejecucin pero no de escritura para el grupo y otro
r--r--r--w-rw---rw-r-xr-x

efecto

permisos resultantes

Apesar de que las dos ltimas entradas funcionaran, por qu es difcil imaginar un uso para un archivo con cualquiera de los dos permisos resultantes? Ejercicios en lnea Hacer un Archivo Privado Lab Exercise Objetivo: Cambiar permisos en un archivo de tal manera que otros no puedan leerlo. Tiempo esperado: 10 minutos Cree el directorio /tmp/nombredeusuario, si no existe todava. Por ejemplo, si su nombre de usuario es elvis, cree el directorio /tmp/elvis. Cree una lista sencilla de propsitos en el archivo:
/tmp/nombredeusuario/resolutions.txt

Puede utilizar un editor de texto, su archivo del ejercicio anterior si todava est disponible, o simplemente cree uno nuevo como en el siguiente ejemplo.
1. 2. 3. 4. 5. 6. 7. [student@station student]$ cat > /tmp/student/resolutions.txt keep room clean don't eat all of the pop tarts use less proprietary software Ctrl-D [student@station student]$ ls -l /tmp/student/resolutions.txt -rw-rw-r-1 student student 77 Jan 16 17:52 /tmp/student/resolutions.txt

Observe que los permisos en un archivo creado recientemente, le permiten a todos los usuarios en el sistema leer el archivo. Asuma que quiere mantener sus propsitos en secreto. Modifique los permisos de archivos de tal forma que los otros no tengan acceso de lectura.

9 File Ownerships and Permissions


[student@station student]$ chmod o-r /tmp/student/resolutions.txt 9. [student@station student]$ ls -l /tmp/student/resolutions.txt 10. -rw-rw---1 student student 77 Jan 16 17:52 /tmp/student/resolutions.txt 8.

Al utilizar una de las cuentas alternas, confirme que otros usuarios en el sistema no pueden leer sus propsitos.
11. 12. 13. 14. [student@station student]$ su - student_a Password: [student_a@station student_a]$ cat /tmp/student/resolutions.txt cat: /tmp/student/resolutions.txt: Permiso negado

En qu difiere esto del ejercicio de la leccin anterior? 1. Un archivo /tmp/resolutions.txt, recin creado es leble nicamente por el propietario del archivo. Captulo 3 Cambio de Propiedad de Archivos con el comandochgrp y chown Conceptos clave

El comando chgrp cambia el grupo de propietarios El comando chown cambia los usuarios propietarios

Cambio de Propietarios de Grupo y Archivos con chgrp En la leccin anterior, aprendimos cmo modificar los permisos de un archivo y vimos un ejemplo de cmo crear un archivo privado: el propietario del archivo podra leer el archivo, pero nadie ms lo puede hacer. Qu sucedera si usted quisiera compartir el archivo con un grupo de personas pero no con todos? o qu pasara si quisiera modificarlo? En estas situaciones, usted hace uso del grupo propietario de archivo y de los permisos de grupo. En el cuaderno anterior, vimos cmo los usuarios de Linux pertenecen a una coleccin de grupos. Para repasar, cada usuario pertenece a un grupo primario y tambin a un nmero de grupos secundarios. Cuando se crea un archivo nuevo, el propietario del archivo del grupo es establecido como el grupo primario del creador. En Red Hat Enterprise Linux, ste sera usualmente el grupo privado del creador. Debido a que usted es el nico miembro, su grupo privado no es til para trabajar en colaboracin. Para compartir el archivo, debe cambiar el propietario del archivo de grupo. Esto se realiza con el comando llamadochgrp.

chgrp

GROUP ARCHIVO...

Cambio de propietario de ARCHIVO(s) a GRUPO

10 File Ownerships and Permissions El primer argumento especifica el nuevo grupo propietario de archivo, mientras que los argumentos subsecuentes listan los archivos cuyo propietario de grupo se va a cambiar. El propietario del grupo slo lo puede cambiar el usuario dueo del archivo, y el usuario debe ser un miembro del nuevo grupo de propietarios del archivo. En el siguiente ejemplo, el usuario ventura es un miembro del grupo wrestler y del grupo governor (aparte de su grupo privado, ventura). Primero, desea crear un plan de impuestos que otros gobernadores deberan poder leer pero no modificar y al cual nadie ms debera tener acceso. Para este fin, debe realizar los siguientes pasos: 1. Crear el archivo. 2. Cambiar el propietario del archivo de grupo al grupo governor utilizando el comando chgrp. 3. Cambiar permisos en el archivo desde los permisos predeterminados rw-rw-r-a rw-r----- utilizando el comando chmod.
[ventura@station ventura]$ id uid=2306(ventura) gid=2308(ventura) groups=2308(ventura),302(wrestle),305(govern or) [ventura@station ventura]$ echo "Raise tax on oatmeal" > taxplan.txt [ventura@station ventura]$ ls -l taxplan.txt -rw-rw-r-1 ventura ventura 21 Jan 16 09:55 taxplan.txt [ventura@station ventura]$ chgrp governor taxplan.txt [ventura@station ventura]$ ls -l taxplan.txt -rw-rw-r-1 ventura governor 21 Jan 16 09:55 taxplan.txt

Pueden intercambiarse los pasos dos y tres? Cambio de los propietarios de archivos con el comando chown En raras ocasiones, es necesario que el administrador cambie el usuario propietario del archivo. Esto se puede hacer utilizando chown, cuya sintaxis es casi idntica al del comando chgrp:

chown

USER ARCHIVO...

Cambie el propietario del (los) archivo(s) a USUARIO. El primer argumento es el nombre del nuevo usuario del archivo y los argumentos siguientes son los nombres de los archivos a cambiar. Slo el usuario administrativo, root, puede usar chown, si algn usuario pudiera cambiar el archivo del propietario, los permisos de acceso no tendran sentido. Como root es el nico que puede ejecutar el comando chown ste no se estudiar a fondo.

11 File Ownerships and Permissions Quin puede Modificar los Propietarios de archivos y los Permisos? En general, slo el propietario de un archivo puede cambiar los permisos o propiedades de archivo de un archivo. Adems, cuando se utiliza el comando chgrp, el archivo del nuevo propietario del grupo, debe ser uno de los grupos subscritos del usuario. El usuario administrativo, root, puede realizar cualquiera de estas operaciones. La tabla de abajo resume estas habilidades. Table 1. Quin puede Modificar las Propiedades de Archivos y los Permisos? Operacin chmod chgrp chown Usuarios autorizados root y el propietario del archivo root y el propietario de archivo (nicamente los grupos subscritos) slo root

Ejemplos Manejo de Archivos de Grupos Considere que al usuario ventura, quien es miembro de los grupos secundarios governor y wrestler (aparte de su grupo privado, ventura) le gustara compartir sus planes de lucha libre (wrestling) con el usuario hogan y con otros miembros del grupo wrestle. Sin embargo, para impedir el acceso a los que no son miembros del grupo wrestler, l ejecuta la siguiente secuencia de comandos.
[ventura@station ventura]$ echo "beat chest and scream." > /tmp/plans.txt [ventura@station ventura]$ ls -l /tmp/plans.txt -rw-rw-r-1 ventura ventura 23 Jan 20 07:16 /tmp/plans.txt [ventura@station ventura]$ chmod o-rw /tmp/plans.txt [ventura@station ventura]$ chgrp wrestle /tmp/plans.txt [ventura@station ventura]$ ls -l /tmp/plans.txt -rw-rw---1 ventura wrestle 23 Jan 20 07:16 /tmp/plans.txt

Pudo el usuario ventura haber usado el comando chmod o-r /tmp/plans.txt para lograr el mismo efecto en la secuencia anterior? Ahora al usuario hogan le gustara agregarse a los planes de ventura. Como miembro del grupo wrestle tiene permiso para hacerlo.
[hogan@station hogan]$ echo "throw large objects." >> /tmp/plans.txt [hogan@station hogan]$ cat /tmp/plans.txt beat chest and scream. throw large objects.

Orgulloso de su contribucin, a hogan le gustara poner los planes a la vista de todos. Para sto hace el archivo disponible para slo lectura para todod el mundo.

12 File Ownerships and Permissions


[hogan@station hogan]$ chmod o+r /tmp/plans.txt chmod: changing permissions of `/tmp/plans.txt': Operation not permitted

Aunque hogan es miembro del grupo wrestle, l no es el dueo del archivo. Quines son los nicos dos usuarios en el sistema que pueden cambiar el propietario del grupo del archivo? Ejercicios en lnea Compartir un archivo con un grupo Lab Exercise Objetivo: Crear un archivo compartido entre miembros de un grupo determinado. Tiempo estimado:15 minutos Especificaciones Al remplazar el nombre de usuario con su nombre de usuario, cree el directorio /tmp/nombre de usuario, si ste todava no existe. Por ejemplo, si su nombre de usuario es student cree el directorio /tmp/student. Haga una lista de mercado en su editor de texto preferido, o simplemente desde la lnea de comandos. Grabe el archivo como /tmp/nombredeusuario/shopping.txt. Cambie el propietario del grupo del archivo a wrestle.
[student@station student]$ nano /tmp/student/shopping.txt ... (compose and save your text) ... [student@station student]$ chgrp wrestle /tmp/student/shopping.txt 4. [student@station student]$ cat /tmp/student/shopping.txt 5. eggs 6. bacon 7. milk 8. M and M's 9. [student@station student]$ ls -l /tmp/student/shopping.txt 10. -rw-rw-r-1 student wrestle 26 Jan 16 10:48 /tmp/student/shopping.txt 1. 2. 3.

Recuerde que su primera cuenta alterna es tambin miembro del grupo wrestle. Convirtase en su primer usuario alterno (i.e. estudiante_a). Usted puede reiniciar la sesin desde la consola virtual, desde la conexin de red, o simplemente con el comando su - al usuario alterno.
11. 12. 13. 14. [student@station student]$ su - student_a Password: [student_a@station student_a]$ groups student_a wrestle physics

13 File Ownerships and Permissions Como el usuario alterno, confirme que puede ver el archivo. Tambin, observe que puede modificar el archivo agregando un artculo ms a la lista de mercado.
15. 16. 17. 18. 19. 20. [student_a@station student_a]$ cat /tmp/student/shopping.txt eggs bacon milk M and M's [student_a@station student_a]$ echo "wheaties" >> /tmp/student/shopping.txt 21. [student_a@station student_a]$ cat /tmp/student/shopping.txt 22. eggs 23. bacon 24. milk 25. M and M's 26. wheaties

Recuerde que su segunda cuenta alterna (i.e, estudiante_b) no es un miembro del grupo wrestle. Trate de convertirse en segundo usuario alterno y repita los pasos anteriores. Usted podr ver el archivo pero no modificarlo.
27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. [student@station student]$ su - student_b Password: [student_b@station student_b]$ groups student_b emperors [student_b@station student_b]$ cat /tmp/student/shopping.txt eggs bacon milk M and M's wheaties [student_b@station student_b]$ echo "chips" >> /tmp/student/shopping.txt 38. -bash: /tmp/student/shopping.txt: Permission denied

Question 1

1. El archivo /tmp/nombre de usuario/mercado.txt, de propiedad de su usuario primario, perteneciente al grupo propietario wrestle, es de escritura para los miembros del grupo wrestle y de slo lectura para los dems.

Captulo 4 Propiedad de Directorios y Permisos Conceptos clave


Como los directorios tambin son archivos, tienen un usuario propietario de archivo, un propietario de grupo y una serie de permisos. Los permisos de lectura permiten al usuario listar el contenido de un directorio. Los permisos de escritura le dan al usuario el derecho de agregar y borrar archivos.

14 File Ownerships and Permissions


Los permisos de ejecucin le dan derecho al usuario de acceder a un archivo dentro del directorio. Los permisos de directorio se pueden modificar con el comando chmod.

Permisos de Directorio Cuando alguien est usando un archivo dentro de Linux, generalmente puede estar leyendo su informacin, modificndola o tratando de ejecutar el archivo como un script o aplicacin. Por lo tanto, los tipos de permiso que ya hemos visto, a saber: lectura (r), escritura (w) y ejecucin (x), tienen muchas interpretaciones. Para Linux, un directorio es solo un tipo especial de archivo, por lo tanto, tambien tiene las mismas clases de permisos lectura (r), escritura (w) y ejecucin (x), un usuario propietario, un grupo propietario y las mismas clases de acceso ((u)suario, (g)rupo,y (o)tro). Sin embargo, es obvio que los directorios se utilizan de una manera diferente. Tendra sentido si abriramos un directorio en un editor tal como nano /home/elvis? Debido a que la gente usa directorios diferentes, los permisos de directorio tienen diferentes interpretaciones. Qu hace la gente con los directorios? Hacen la lista del contenido con el comando ls. Borran archivos desde ah, crean nuevos archivos dentro de ellos, y mueven archivos de un directorio a otro. Los permisos de directorio deberan dar derecho al propietario del directorio de controlar quin puede realizar estas operaciones. Linux considera que hacer la lista del contenido de un directorio, (como con el comandols) es anlogo a "leer" un directorio, y por lo tanto, una persona debe tener permisos de lectura (r) para listar su contenido. Agregar o suprimir un archivo desde un directorio se considera "escribir"el directorio y por lo tanto alguien debe tener permisos de escritura (w) para barajar los archivos dentro del directorio. No hay una analoga razonable para "ejecutar" un directorio, por eso Linux no trata de definir una conducta similar. En cambio, el permiso de ejecucin (x) controla la conducta de los directorios, lo que no tiene nada que ver con el comando de ejecucin. Este permiso se conoce como el permiso "buscar", pero como el tercer permiso ya ha sido llamado de "ejecucin", para los archivos regulares, se utiliza la misma palabra (y letra) para los directorios. Con el fin de referirse a cualquier archivo dentro de un directorio, (incluyendo subdirectorios), un usuario debe tener permisos de ejecucin (x). La primera fila de la siguiente tabla parece familiar. Esta repite cmo interpretar los permisos para archivos regulares. Se ha agregado una fila para directorios para comparar y contrastar la interpretacin del permiso de ambos tipos de archivo. Table 1. Permisos para archivos regulares y directorios Lectura(r) archivo Ver el archivo escritura (w) Modificar el ejecucin (X) Usar el archivo como comando

15 File Ownerships and Permissions Lectura(r) regular directorio lista el contenido del directorio escritura (w) archivo aade o borra archivos "busca" un archivo conocido dentro del directorio ejecucin (X)

Ejemplos Propiedades predeterminadas para los directorios nuevos Los archivos normales recin creados son de lectura para todos, pero slo el usuario y el grupo propietario del archivo pueden modificarlos. Cmo se manejan los directorios recin creados? Estudie el caso de nero, quien est recolectando informacin del censo de varias provincias. El decide crear un directorio llamado /tmp/censuspara guardar todos los datos.
[nero@station nero]$ mkdir /tmp/census [nero@station nero]$ ls -ld /tmp/census/ drwxrwxr-x 2 nero nero 4096 Jan 16 15:33 /tmp/census/

(Por qu nero necesit agregar la opcin -d al comandols?) Observe que los permisos predeterminados para los directorios recin creados son rwxrwxr-x. Estos permisos tienen las siguientes implicaciones: 1. Cualquiera puede buscar archivos dentro del directorio. 2. Todos pueden listar los archivos dentro del directorio. 3. Solo el propietario de directorio (o miembros de un grupo propietario) puede aadir o borrar archivos dentro del directorio. Por ejemplo, julius decide que le gustara hojear la informacin que tiene nero sobre el censo. Observe que julius puede navegar los directorios y los archivos dentro de los directorios, pero debido a los permisos por defecto de un directorio, l no puede agregar ni suprimir nuevos archivos. A causa de los permisos predeterminados de archivo, l puede ver, pero no modificar el contenido de los archivos.
[julius@station julius]$ ls -al /tmp/census/ total 20 drwxrwxr-x 2 nero nero 4096 Jan 16 15:48 . drwxrwxrwt 23 root root 4096 Jan 16 15:45 .. -rw-rw-r-1 nero nero 42 Jan 16 15:48 egypt.dat -rw-rw-r-1 nero nero 42 Jan 16 15:48 gaul.dat -rw-rw-r-1 nero nero 42 Jan 16 15:47 iberia.dat [julius@station julius]$ rm /tmp/census/iberia.dat rm: remove write-protected regular file `/tmp/census/iberia.dat'? y rm: cannot remove `/tmp/census/iberia.dat': Permission denied [julius@station julius]$ echo "110 CE 42" > /tmp/census/thrace.dat -bash: /tmp/census/thrace.dat: No such file or directory [julius@station julius]$ cat /tmp/census/gaul.dat

16 File Ownerships and Permissions


110 CE 45430 120 CE 53200 130 CE 55820 [julius@station julius]$ echo "140 CE 583420" >> /tmp/census/gaul.dat -bash: /tmp/census/gaul.dat: Permission denied

Directorios de inicio En Red Hat Enterprise Linux, un directorio de inicio no sigue los permisos predeterminados.
[nero@station drwx-----[nero@station total 120 drwx-----drwx-----drwx-----drwx-----... nero]$ ls -ld ~ 3 nero nero nero]$ ls -l /home/ 3 3 3 3 alice augustus austin blondie alice augustus austin blondie 4096 Jan 16 16:04 /home/nero

4096 4096 4096 4096

Jan Jan Jan Jan

15 14 14 14

08:04 15:22 15:22 13:46

alice augustus austin blondie

En Red Hat Enterprise Linux, los directorios de inicio estn "protegidos". Por defecto, slo el usuario propietario de un directorio de inicio tiene permisos de buscar.
[nero@station nero]$ ls -l ~augustus ls: /home/augustus: Permission denied

Ha notado que la mayora de nuestros ejercicios que involucran a varios usuarios entrando a un archivo han utilizado el directorio /tmp/nombredeusuario en lugar del directorio de inicio del usuario? Por qu razn no hemos utilizado el directorio de inicio del usuario? Creacin de un directorio ~/pub Ahora a Nero le gustara hacer pblica su informacin sobre el censo. Usualmente, en Red Hat Enterprise Linux, hay slo dos lugares en donde los usuarios pueden crear archivos, el directorio /tmp y ~ (el directorio de inicio del usuario). En el primer ejemplo, nero escoge crear un directorio censusdentro de /tmp. Sin embargo, en Red HatEnterprise Linux, el directorio /tmp es "barrido.". Si en 10 das no se ha tenido acceso a un archivo dentro de /tmp, ste se borra del sistema. Nero necesita buscar un sitio mejor. Con el fin de crear un sitio accesible al pblico permanente para sus datos del censo, nero escoge crear un subdirectorio pblico dentro de su directorio de inicio. Convencionalmente, un subdirectorio como tal en Linux, se llama pub. Como las siguientes secuencias lo mostrarn, compartir archivos desde el directorio de inicio del usuario, no es tan fcil como crear un directorio leible (r) o ejecutable (x) por todo el mundo.

17 File Ownerships and Permissions Primero, nero crea el directorio ~/puby copia en l la informacin del censo desde /tmp/census.
[nero@station [nero@station [nero@station total 20 drwxrwxr-x drwx------rw-rw-r--rw-rw-r--rw-rw-r-nero]$ mkdir pub nero]$ cp /tmp/census/* pub nero]$ ls -al /home/nero/pub/ 2 4 1 1 1 nero nero nero nero nero nero nero nero nero nero 4096 4096 42 42 42 Jan Jan Jan Jan Jan 16 16 16 16 16 16:13 16:12 16:13 16:13 16:13 . .. egypt.dat gaul.dat iberia.dat

Recuerde que "."siempre se refiere al directorio actual en este caso/home/nero/pub. Recuerde que ".." siempre se refiere al directorio padre actual en este caso /home/nero. Nero revisa concienzudamente los permisos en el directorio y los archivos recin creados. En /home/nero/pub encuentra los permisos de rwxrwxr-x, lo que implica que otros pueden buscar una lista de archivos desde el directorio. Los archivos mismos de datos tienen permisos de rw-rw-r--, es decir que otros tienen acceso a los archivos. Como todo parece estar en orden, le dice a julius dnde encontrar la informacin. Interesado en los datos, julius trata de tener acceso a los archivos. Infortunadamente, no todo sale bien:
[julius@station julius]$ cat /home/nero/pub/egypt.dat cat: /home/nero/pub/egypt.dat: Permission denied

Qu ha olvidado nero? Recuerde que para tener acceso al archivo dentro de un directorio, incluyendo los subdirectorios, un usuario debe haber buscado permisos para el directorio. Los permisos en /home/nero/pub estn correctos, pero observe los permisos en /home/nero (".." en la lista de arriba o listados de nuevo a continuacin):
[nero@station nero]$ ls -ld /home/nero/ drwx-----4 nero nero 4096 Jan 20 14:05 /home/nero/

Si julius pudiera tener acceso al archivo /home/nero/pub, todo estara bien. Pero como julius no tiene los permisos de bsqueda para /home/nero, no puede tener acceso a /home/nero/pub. Para crear un directorio accesible al pblico dentro de un directorio de inicio, el usuario debe permitir a la gente buscar en su directorio de inicio. Nero arregla el problema en la siguiente secuencia de comandos.
[nero@station nero]$ chmod o+x /home/nero/ [nero@station nero]$ ls -al /home/nero/pub total 20 drwxrwxr-x 2 nero nero 4096 Jan 16 16:13 . drwx-----x 4 nero nero 4096 Jan 16 16:14 .. -rw-rw-r-1 nero nero 42 Jan 16 16:13 egypt.dat -rw-rw-r-1 nero nero 42 Jan 16 16:13 gaul.dat -rw-rw-r-1 nero nero 42 Jan 16 16:13 iberia.d

18 File Ownerships and Permissions Ahora, otros tienen permisos de ejecucin (x) en /home/nero. julius trata de nuevo de examinar el archivo. Como los permisos en /home/nero/pub le dan acceso de lectura(r) y ejecucin (x) a otros, julius busca archivos y obtiene un listado de directorio.
[julius@station julius]$ cat /home/nero/pub/egypt.dat 110 CE 45430 120 CE 53200 130 CE 55820 [julius@station julius]$ ls /home/nero/pub egypt.dat gaul.dat iberia.dat

En contraste, el directorio de inicio de nero, /home/nero, tiene ahora permisos de rwx----x, permitindole a julius slo permisos de ejecucin(x). Por lo tanto, si julius ya sabe que un archivo est en el directorio (porque, por ejemplo, nero le dijo que ste estaba all), julius puede obtenerlo, no obstante, julius no puede navegar el contenido de un directorio con el comando ls.
[julius@station julius]$ ls /home/nero ls: /home/nero: Permiso negado

Proteccin de subdirectorios de inicio Es frecuente que los usuarios permitan a otros usuarios el acceso a sus directorios de inicio (considere, el ejemplo anterior). Al permitir a otros ejecutar (x), pero no lee(r) en su directorio de inicio, otros usuarios deben saber que un directorio existe dentro del directorio de inicio para tener acceso a ste. Debido a que otros usuarios no pueden usar el comando ls para descubrir el contenido de su directorio de inicio, los directorios de inicio de los usuarios permanecen siendo privados y slo las partes que ellos quieran exponer estarn disponibles a otros usuarios. Aunque el no aadir permisos de lectura (r) al directorio de inicio brinda alguna proteccin contra otros usuarios que estn navegando, sta no es infalible. Otros usuarios pueden an "adivinar" el contenido de un directorio del cul tienen permisos para ejecutar (x) pero no de lectura (r). Por ejemplo, los usuarios usualmente crean un directorio llamado ~/mail, para almacenar mensajes. Suponga que nero le ha dado a otros permiso de ejecucin (x) a su directorio de inicio (como en el ejemplo anterior), y ms tarde crea un directorio ~/mail. Si elvis fuera a adivinar si dicho directorio existe, los permisos por defecto en ~nero/maille permitiran navegar sus contenidos. Esto se muestra en la siguiente transcripcin:
[nero@station drwx-----x [nero@station [nero@station [nero@station total 12 drwxrwxr-x drwx-----x -rw-rw-r-nero]$ 3 nero nero]$ nero]$ nero]$ 2 nero 4 nero 1 nero ls -ld ~ nero 4096 Jan 20 16:41 /home/nero mkdir mail cal 2002 > mail/sent ls -al mail nero nero nero 4096 Jan 20 16:41 . 4096 Jan 20 16:41 .. 2027 Jan 20 16:41 sent

19 File Ownerships and Permissions


[elvis@station elvis]$ cat ~nero/mail/sent 2002 January Su Mo Tu We Th 1 2 3 6 7 8 9 10 13 14 15 16 17 20 21 22 23 24 27 28 29 30 31 February Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 March Su Mo Tu We Th Fr 1 3 4 5 6 7 8 10 11 12 13 14 15 17 18 19 20 21 22 24 25 26 27 28 29 31

Fr 4 11 18 25

Sa 5 12 19 26

Sa 2 9 16 23 30

...

Cul es la leccin que nero debe aprender? Si usted permite a otros el acceso a su directorio de inicio como es frecuente el caso, debe considerar los permisos que hay en los subdirectorios recin creados. Por defecto, si alguien puede adivinar el nombre del directorio, tambin ser capaz de navegar un subdirectorio. La solucin de nero sera cancelar su subdirectoriomail.
[nero@station nero]$ chmod o-rx mail

Ejercicios en lnea Creacin de directorios pblicos para grupos distintos Lab Exercise Objetivo: Crear directorios accesibles a grupos dentro del directorio de inicio de un usuario Estimated Time: 30 mins. Especificaciones Su cuenta debera ser miembro de dos grupos secundarios, music y wrestle. aparte de su grupo privado. Adems, su primera cuenta alterna debe ser un miembro de los grupos wrestle y physics, mientras que su tercera cuenta alterna debera ser un miembro del grupo music.
[student@station student]$ groups student student : student wrestle music [student@station student]$ groups student_a student_a : student_a wrestle physics [student@station student]$ groups student_c student_c : student_c music

Desde dentro de su directorio de inicio, usted quisiera compartir informacin con otros msicos y luchadores, pero no le gustara que los msicos vieran la informacin de los

20 File Ownerships and Permissions luchadores y vice versa. Usted preferira que un grupo ni siquiera se diera cuenta de la existencia de otro directorio de grupo. Adopte el siguiente plan: 1. Permita que otros tengan acceso a archivos en su directorio de inicio otorgndoles permisos de "bsqueda". 2. Cree un sudirectorio pblicamente fcil de buscar, pero que no se pueda listar, en su directorio de inicio, ~/pub. 3. Cree dos subdirectorios de ~/pub, que se puedan buscar y listar slo para los miembros de los grupos music ywrestle, respectivamente: ~/pub/music y ~/pub/wrestle. Observe que usted necesitar tener en cuenta a los propietarios de grupo de los directorios como tambin los permisos. 4. Cree los archivos ~/pub/music/lyricsy ~/pub/wrestle/plan. Los miembros de los grupos music y wrestle deberan poder leer y escribir respectivamente. Cuando haya terminado, usted debera poder confirmar la conducta apropiada utilizando sus cuentas alternas (student_a y student_c).
[student_a@station student_a]$ ls /home/student/pub/wrestle plan [student_a@station student_a]$ cat /home/student/pub/wrestle/plan pin the other guy [student_a@station student_a]$ ls /home/student/pub ls: /home/student/pub: Permission denied [student_c@station student_c]$ ls ~student/pub/music lyrics [student_c@station student_c]$ cat ~student/pub/music/lyrics row, row, row your goat [student_c@station student_c]$ ls ~student/pub ls: /home/student/pub: Permission denied

Deliverables Question 1

1. Un directorio de inicio de bsqueda para todos y donde slo usted puede listarlo. 2. ~/pub, un directorio de bsqueda para todos y de listado slo para usted. 3. ~/pub/music, un directorio de bsqueda y que solo los miembros del grupo music pueden listar. 4. ~/pub/music/lyrics, un archivo de lectura y escritura para todos los miembros del grupo music. 5. ~/pub/wrestle, un directorio de bsqueda y que solo los miembros del grupo wrestle pueden listar. 6. ~/pub/wrestle/plan, un archivo de lectura y escritura para los miembros del grupo wrestle.

Ayudas

21 File Ownerships and Permissions La siguiente serie de comandos demuestra una solucin posible para hacer el directorio ~/pub/music.
[student@station student]$ ls -ld ~ drwx-----3 student student 4096 Jan 20 15:17 /home/student

[student@station student]$ chmod o+x ~ [student@station student]$ mkdir ~/pub [student@station student]$ chmod o-r ~/pub [student@station student]$ ls -al ~/pub total 8 drwxrwx--x 2 student student 4096 Jan 20 15:17 . drwx-----x 4 student student 4096 Jan 20 15:17 .. [student@station [student@station [student@station [student@station total 16 student]$ student]$ student]$ student]$ mkdir ~/pub/music chmod o-rx ~/pub/music/ chgrp music ~/pub/music ls -al ~/p

Proteccin de subdirectorios dentro del directorio de inicio Lab Exercise Objetivo: Proteger un subdirectorio recin creado dentro de su directorio de inicio, de una navegacin no intencionada. Estimated Time: 10 mins. Estos ejercicios asumen que otros ya tienen permisos de ejecucin (x) en su directorio de inicio. Cree un subdirectorio memos en su directorio de inicio y modifique sus permisos de tal manera que otros en el sistema no tengan acceso al directorio. Cree un archivo dentro del directorio y use una de las cuentas alternas para confirmar que otros usuarios no puedan acceder al archivo. Solucin:La siguiente serie de comandos demostr una solucin posible para las especificaciones anteriores (la salida asume que usted acaba de completar el ejercicio anterior).
[student@station student]$ ls -ld ~ drwx-----x 4 student student 4096 Jan 20 16:50 /home/student [student@station student]$ mkdir memos [student@station student]$ chmod o-rx memos/ [student@station student]$ ls -l total 8 drwxrwx--2 student student 4096 Jan 20 16:50 memos drwxrwx--x 4 student student 4096 Jan 20 15:18 pub [student@station student]$ echo "feed cat" > memos/todo [student_a@station student_a]$ ls ~student/memos ls: /home/student/memos: Permission denied [student_a@station student_a]$ cat ~student/memos/todo cat: /home/student/memos/todo: Permission denied

Deliverables

22 File Ownerships and Permissions Question 1

1. Un directorio llamado~/memos, que slo el propietario del directorio puede navegar.

Captulo 5 chmod Revisitado: Notacin octal Conceptos clave


El comando chmod puede usar un sintaxis octal alterna La sintaxis octal es a menudo ms rpida y ms motivante.

Por qu una sintaxis diferente? En las lecciones anteriores, el comandochmod se utiliz para modificar permisos de un archivo utilizando una sintaxis simblica como la siguiente:
[student@station student]$ chmod og-r diary

Esta sintaxis tiene algunas ventajas y desventajas. Como la sintaxis es muy legible, la intencin de un comando es bastante evidente: el estudiante no quiere que otros usuarios lean el archivo diary.. Cules son los permisos resultantes en diary? Un problema de sintaxis es que, al saber que slo este comando fue ejecutado, usted no puede decir si el archivo tiene permisos de escritura para los miembros del grupo o para otros. Sin saber los permisos originales, usted no puede saber. Esta leccin ilustrar una sintaxis octal alterna para el comando chmod, la cual resuelve estos problemas:
[student@station student]$ chmod 600 diary

Despus de aprender la sintaxis, usted sabra que, al ejecutar el comando anterior, el archivo diary tendra permiso de rw-------. Como un beneficio agregado, una vez aprendida, la sintaxis octal tiende a ser ms rpida para el usuario. De dnde sali 600? Recuerde que un archivo tiene tres tipos diferentes de permisos (lectura (r), escritura (w) y ejecucin (x), para las tres clases de usuario: usuario propietario (u), grupo propietario (g), y otro (o)). Con la notacin octal, cada clase de acceso obtiene un dgito, las "centenas" para el usuario (u); las "decenas" para el grupo (g) y las "unidades" para otro (o) . A cada tipo de permiso se le concede un valor: (r) tiene 4, (w) tiene 2, y (x) tiene 1. Los dgitos de una notacin octal son la suma de los permisos concedidos para cada clase de acceso. Los siguientes ejemplos demuestran cmo se traducen los nmeros octales a una sintaxis convencional de permisos.

23 File Ownerships and Permissions

755 = rwxr-xr-x 7 = 4 + 2 + 1 = rwx for (u)ser 5 = 4 + 0 + 1 = r-x for (g)roup 5 = 4 + 0 + 1 = r-x for (o)ther 640 = rw-r----6 = 4 + 2 + 0 = rw- for (u)ser 4 = 4 + 0 + 0 = r-- for (g)roup 0 = 0 + 0 + 0 = --- for (o)ther 701 = rwx-----x 7 = 4 + 2 + 1 = rwx for (u)ser 0 = 0 + 0 + 0 = --- for (g)roup 1 = 0 + 0 + 1 = --x for (o)ther Esta notacin se llama la notacin "octal" debido a que cada dgito tiene 8 posibles valores(de 0 a 7). Modos de archivos Una vez aprendida, la notacin octal brinda una forma rpida de referirse a los permisos de archivo. Por ejemplo, los administradores experimentados de Linux a menudo se referirn a un permiso de archivo de "644" o de un directorio de "755". En Unix, al estado de los permisos de archivo se les conoce como el modo de un archivo. En particular, este trmino se utiliza para referirse a los permisos de archivo de notacin octal. Por ejemplo, un administrador de sistema podra decir que los "Directorios se crean con un modo predeterminado de 755". Ejemplos Creacin de un directorio ~/pub (utilizando la notacin octal) Al usuario elvis le gustara establecer un directorio compartido ~/drafts. Quisiera que los miembros del grupo music tuvieran libre acceso al directorio y que otros usuarios no. Al utilizar el comando chmod, elvis utilizar la notacin octal.
[elvis@station elvis]$ mkdir ~/drafts [elvis@station elvis]$ chmod 701 ~ [elvis@station elvis]$ chmod 770 ~/ [elvis@station elvis]$ echo "One for the honey" > ~/drafts/lyrics [elvis@station elvis]$ chgrp -R music drafts/ [elvis@station elvis]$ ls -al drafts/ total 12

24 File Ownerships and Permissions


drwxrwx--drwx------rw-rw-r-2 elvis 5 elvis 1 elvis music elvis music 4096 Feb 14 10:16 . 4096 Feb 14 10:15 .. 18 Feb 14 10:16 lyrics

En este uso del comandochmod, elvis pudo ajustar los permisos de grupo (g)y de otro (o) con un simple comando. Cmo habra tenido que hacer esto utilizando una notacin simblica? Observe que el comando chgrp -Rle dice a chgrp que vaya de modo recursivo por un directorio (y todos sus subdirectorios). Los comandos chmod y chown tienen esta opcin. "." siempre se refiere al directorio actual en este caso /home/elvis/drafts. Recuerde que ".." siempre se refiere al directorio padre actual en este caso/home/elvis. Mal uso de la notacin octal El usuario einstein tiene la siguiente serie de artculos, algunos ya han sido publicados, otros no. Todos los archivos y direcciones tienen permisos predeterminados.
papers/ |-- published/ | `-- relativity `-- unpublished/ |-- eismcsquared |-- photoelectric_effect `-- unlikely/ `-- time_travel

El usuario einstein ahora decide cambiar los permisos en todos sus archivos dentro de su directorio sin publicar, para que otros usuarios no puedan leerlos. Con el fin de ahorrar tiempo, einstein decide utilizar la forma recursiva del comando chmod.
[einstein@station einstein]$ chmod -R 660 papers/unpublished/* chmod: failed to get attributes of `papers/unpublished/unlikely/time_travel': Permission denied [einstein@station einstein]$ ls papers/unpublished/unlikely/ ls: papers/unpublished/unlikely/time_travel: Permission denied

En qu se ha equivocado einstein? Por qu ni siquiera puede ver su propio directorio? Preste atencin a los permisos de los archivos en papers/unpublished:
[einstein@station einstein]$ ls -l papers/unpublished/ total 4 -rw-rw---1 einstein einstein 0 Feb 14 10:46 eismcsquared -rw-rw---1 einstein einstein 0 Feb 14 10:45 photoelectric_effect drw-rw---2 einstein einstein 4096 Feb 14 10:46 unlikely

Cuando einstein ejecut el comando chmod -R 660 papers/unpublished/*, el comando chmod hizo lo que debe hacer. Estableci el modo de cada archivo como 660 (incluyendo el directorio unlikely). Luego trat de ir en forma recursiva al directorio

25 File Ownerships and Permissions


unlikely,

pero como el directorio ahora tiene el modo 660, einstein ya no tiene permiso de acceso a su propio directorio y el comando falla! Qu leccin nos deja este ejemplo? Los directorios y archivos regulares tienen diferentes permisos "razonables". Por ejemplo, los directorios deben tener establecido el permiso de ejecutar (x), mientras que, por lo general, los archivos regulares no. Infortunadamente, el comando chmod -R no distingue entre archivos y directorios.

(Con el fin de obtener el resultado deseado, einstein podra utlilizar el comando find para buscar de modo recursivo. Dicho comando find se presentar en la siguiente seccin). Ejercicios en lnea Administracin de Permisos en Grupos de Archivos Lab Exercise Objetivo: Administrar permisos en un grupo grande de archivos, utilizando la notacin octal. Estimated Time: 30 mins. Configuracin Su segunda cuenta alterna (student_b) debe ser miembro del grupo emperors. Inicie la sesin bajo esa cuenta y cree un directorio ~/reports y ejecute el comando cd en ese directorio.
[student_b@station student_b]$ groups student_b emperors [student_b@station student_b]$ mkdir reports [student_b@station student_b]$ cd reports

Use el siguiente comando "mgico" para crear un nmero grande de archivos en el directorio actual. La sintaxis de parntesis que est utilizando ser presentada en un cuaderno posterior.
[student_b@station reports]$ touch {2001,2002,2003}.{q1,q2,q3,q4}.{data,draft,final} [student_b@station reports]$ ls 2001.q1.data 2001.q3.final 2002.q2.draft 2003.q1.data 2003.q3.final 2001.q1.draft 2001.q4.data 2002.q2.final 2003.q1.draft 2003.q4.data 2001.q1.final 2001.q4.draft 2002.q3.data 2003.q1.final 2003.q4.draft 2001.q2.data 2001.q4.final 2002.q3.draft 2003.q2.data 2003.q4.final 2001.q2.draft 2002.q1.data 2002.q3.final 2003.q2.draft 2001.q2.final 2002.q1.draft 2002.q4.data 2003.q2.final 2001.q3.data 2002.q1.final 2002.q4.draft 2003.q3.data

26 File Ownerships and Permissions


2001.q3.draft 2002.q2.data 2002.q4.final 2003.q3.draft

Observe que todos los archivos tienen permisos predeterminados. Especificaciones Desea implementar los siguientes principios 1. Todos los archivos (incluyendo directorios) deberan pertenecer al grupo emperors. 2. Todos los archivos que terminen en .data contienen datos crudos. Cualquiera pueda leer los archivos, pero solo usted tiene derecho a modificarlos. 3. Todos los archivos que terminen en .draft contienen borradores de trabajo de sus informes, en los cuales usted desea ayudar. Los miembros del grupo emperors deberan poder leer y modificar los archivos, pero otros usuarios no deberan tener acceso a ellos. 4. Todos los archivos terminados en .finalson borradores finales. Usted desea moverlos a un directorio dedicado ~/reports/final. Solo los miembros del grupo emperors deberan tener accceso al subdirectorio, poder listar el contenido del directorio y poder leer los informes (pero no modificarlos). Use el comando chmod con una notacin octal para obtener estos resultados. Question 1

El directorio ~/reports y todos sus archivos y directorios subyacentes, deberan pertenecer al grupo propietario emperor. 1. Un directorio ~/reports de libre acceso y lectura. 2. Una coleccin de archivos ~/reports/*.data, de lectura para todos, pero slo con permiso de escritura para usted. 3. Una serie de archivos ~/reports/*.draft, de lectura y escritura slo para miembros del grupo emperor. 4. Un directorio ~/reports/final de acceso y lectura solo para miembros del grupo emperor. 5. Una coleccin de archivos ~/reports/final/*.final, de escritura y lectura para el propietario del archivo, pero de lectura y de no escritura para los miembros del grupo emperor. Otros usuarios no tendran acceso.

Possible Solution The following sequence of commands provides one possible solution to this exercise.
[student_b@station reports]$ chmod 644 *.data [student_b@station reports]$ chmod 660 *.draft [student_b@station reports]$ chmod 640 *.final

27 File Ownerships and Permissions


[student_b@station [student_b@station [student_b@station [student_b@station reports]$ reports]$ reports]$ reports]$ mkdir final chmod 750 final/ mv *.final final/ chgrp -R emperors .

Control de las permisos predeterminados con umask En las lecciones anteriores vimos que los archivos recin creados tienen un modo por defecto de 664 (rw-rw-r--), lo que implica que todos pueden leer el archivo, pero nicamente el propietario de archivo puede modificar un archivo recin creado. Igualmente, los directorios recin creados tienen un modo por defecto de 775 (rwxrwxr-x), implicando que cualquier persona puede acceder o navegar en el directorio, pero slo el propietario del directorio puede aadir o borrar archivos. Los permisos predetermiandos de los archivos recin creados se pueden alterar a travs de un concepto Unix estndar llamado umask. Cada proceso, incluyendo el comando de shell bash, tiene un nmero octal de tres dgitos, el cual se utiliza para "desenmascarar". La umask est compuesta justo como un modo octal, pero el significado es invertido. Como un modo octal, cada clase de acceso es representado por un slo dgito: (u)suario est en las "centenas", (g)rupo propietario en las "decenas" y (o)tros en las "unidades". Como un modo octal, cada tipo de permiso tiene un valor, 4 para lectura (r), 2 para escritura (w), y 1 para ejecucin(x). Sin embargo, a diferencia de los modos octales, la umask est compuesta por valores de permisos no deseados. Permisos predeterminados para archivos Con el fin de determinar los permisos para archivos recin creados, el kernel de Linux comienza con un modo global por defecto de 666, (rw-rw-rw). El kernel luego aplica la umask para el proceso que cre el archivo. Todos los valores asignados en la umask son "revelados" de los permisos predeterminado de 666. Por ejemplo, una umask de 002 resultara en permisos por defecto de 664:
kernel default: 666 --> rw-rw-rwumask: 002 --> -------w----------------------------------------default permissions: 664 --> rw-rw-r--

Otro ejemplo, una umask de 077 resultara en permisos por defecto de 600:
kernel default: 666 --> rw-rw-rwumask: 077 --> ---rwxrwx ----------------------------------------default permissions: 600 --> rw-------

Al determinar los permisos por defecto, cualquier permiso que sea asignado en la umask es "desenmascarado" del kernel predeterminado.

28 File Ownerships and Permissions Permisos predeterminados para directorios Los permisos predeterminados para los directorios se crean utilizando la misma tcnica, excepto que el modo por defecto del kernel para directorio es 777 (rwxrwxrwx). Por ejemplo, una umask de 002 resultara en permisos por defecto para directorios de 775:
kernel default: 777 --> rwxrwxrwx umask: 002 --> -------w----------------------------------------default permissions: 775 --> rwxrwxr-x

Igualmente, una umask de 077 resultara en permisos predeterminados de 700:


kernel default: 777 --> rwxrwxrwx umask: 077 --> ---rwxrwx ----------------------------------------default permissions: 700 --> rwx------

Observe que, en ambos casos, una umask de 002 tiene el mismo efecto general para los archivos y directorios. Cualquiera puede leer, pero slo el propietario puede modificar. Igualmente, una umask de 077 tiene el mismo efecto general tanto en archivos como en directorios: el usuario propietario puede leer y modificar, pero nadie ms tiene acceso. Modificacin de la umask de shell: el comando umask La umask de shell bash se puede examinar y modificar con el comando umask. Cuando se llama sin argumentos, el comando umask reporta la umask de shell actual. Cuando se llama con una umask octal como un nico argumento, se le asigna a la umask de shell el valor especificado.
[student@station student]$ umask 0002 [student@station student]$ umask 077 [student@station student]$ umask 0077

(Observe que, en la salida, la umask se reporta como un nmero octal de cuatro dgitos. Por ahora, el "0" del comienzo se puede ignorar (su significado ser ms claro en la siguiente leccin). Ejemplos Uso del comando umask para crear archivos compartidos por grupos En la siguiente secuencia, blondie y otros msicos estn colaborando con la letra de una cancin. A blondie le gustara crear varios archivos que los miembros del grupo de music pueden ver y modificar, pero que nadie ms puede leer o escribir. Una posibilidad

29 File Ownerships and Permissions sera crear los archivos y luego cambiar los permisos de archivo con chmod. En cambio, blondie va a utilizar el comando umaskpara cambiar sus permisos por defecto de shell en los archivos recin creados.
[blondie@station blondie]$ umask 0002 [blondie@station blondie]$ umask 007 [blondie@station blondie]$ umask 0007 [blondie@station blondie]$ echo "Twinkle, twinkle, little star" > song1.txt [blondie@station blondie]$ echo "Bah, bah, black sheep" > song2.txt [blondie@station blondie]$ echo "Mary had a little lamb" > song3.txt [blondie@station blondie]$ chgrp music song*.txt [blondie@station blondie]$ ls -l total 12 -rw-rw---1 blondie music 30 Feb 20 14:20 song1.txt -rw-rw---1 blondie music 22 Feb 20 14:20 song2.txt -rw-rw---1 blondie music 23 Feb 20 14:20 song3.txt

Observe que la umask de shell de 007 "desenmascar" los permisos que hubiesen podido ser asignados por (o)tros. Utilizacin de ~/.bashrc para cambiar automticamente la umask de la shell bash El emperador Nero, en un estado de paranoia est sospechando que los otros usuarios le estn mirando sus archivos. Quisiera configurar su shell bash de tal forma que cada vez que inicie, la umask de la shell sea establecida automticamente como 077. Har esto editando el archivo ~/.bashrc, el cual por lo general, existe por defecto en el directorio de inicio del usuario. Siempre que se inicia una nueva shell bash, los comandos listados en el archivo especialmente nombrado ~/.bashrc se ejecutan como si fueran escritos desde la lnea de comandos. Al anexar "umask 077" al archivo ~/.bashrc de nero, l configurar su shell de tal forma que la umask de shell automticamente ser configurada como 077 al iniciar. En la siguiente secuencia, nero examina primero, luego agrega una nueva lnea y despus reexamina su archivo ~/.bashrc. Por ahora, no se preocupe por el contenido original del archivo, slo observe que el archivo modificado ejecuta el umask como su ltimo comando.
[nero@station nero]$ cat ~/.bashrc # .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi [nero@station nero]$ echo "umask 077" >> ~/.bashrc

30 File Ownerships and Permissions


[nero@station nero]$ cat ~/.bashrc # .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then

Ahora que nero ha modificado su archivo ~/.bashrc, su umask se establecer automticamente como 077 cada vez que comience una nueva shell. Cuando nero sale y luego reinicia, los archivos recin creados ahora tienen permisos por defecto de 600 (rw-------).
Red Hat Enterprise Linux release 3.0 (Taroon) Kernel 2.4.20-4-ES on an i686 station login: nero Password: [nero@station nero]$ umask 0077 [nero@station nero]$ echo "All of Gaul is divided into three parts" > notes.txt [nero@station nero]$ ls -l total 4 -rw------1 nero nero 40 Feb 20 14:44 notes.txt

Ejercicios en lnea Cambio de los permisos predeterminados de la shell bash. Lab Exercise Objetivo: Uso del archivo ~/.bashrc para cambiar los permisos por defecto de la shell bash. Estimated Time: 10 mins. Especificaciones Cada vez que inicie una shell bash, el contenido del archivo ~/.bashrcse ejecutar como si los hubiera escrito en la lnea de comandos. Este archivo se utiliza a menudo para personalizar la conducta predeterminada de bash. Si quiere que su umask de shell por defecto sea cambiada automticamente cada vez que inicia una sesin, agregue una lnea al final de su archivo ~/.bashrc, el cual establece la umask de la shell. Los archivos recin creados deberan ser de lectura para todos, pero de escritura nicamente para el usuario propietario por defecto. Question 1

31 File Ownerships and Permissions 1. Un archivo ~/.bashrc que establecezca la umask de shell bash por defecto de tal manera que los archivos sean de lectura para todos pero slo de escritura para el usuario propietario del archivo (en particular, el archivo no debera ser de escritura para el grupo propietario).

Possible Solution The following sequence of commands provides one possible solution to this exercise.
[student@station student]$ echo "umask 022" >> .bashrc [student@station student]$ cat .bashrc # .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi umask 022

Al salir e iniciar de nuevo, usted debera ver el siguiente comportamiento.


[student@station student]$ date > test_file.txt [student@station student]$ ls -l total 4 -rw-r--r-1 student student 29 Feb 20 14:52 test_file.txt

Observe que los permisos de los archivos recin creados es 644, no el permiso por defecto de Red Hat de 664. Limpieza Despus de haber evaluado este ejercicio, suprima de su archivo~/.bashrc la lnea que ha agregado.

También podría gustarte