SlideShare a Scribd company logo
1 of 31
Download to read offline
1
File Ownerships and Permissions
Capítulo 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 ejecución (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
cumpleaños próximo. Entre más 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 querrán 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
quién tiene acceso al archivo y cómo: 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 cómo utilizar la primera columna para determinar los
permisos del archivo.
Los tres tipos de permisos: lectura (r), escritura (w), y ejecución(x)
Al decidir quién 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 ejecución,
permiten que alguien utilice el archivo como un comando. Para iniciar una aplicación o
ejecutar un script, el archivo que contenga la aplicación 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)

ejecución (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 ejecución(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 demás que no estén incluidos en las dos categorías 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 guión 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 dueño 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 recién creados
Considere el siguiente verso que elvis está componiendo:
[elvis@station elvis]$ echo "Había 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 sólo pueden leer el archivo
(debido a que Red Hat Enterprise Linux utiliza el esquema del grupo privado de
usuario, el usuario elvis es también el único miembro del grupo elvis). Como elvis tiene
permisos para escribir, puede modificar el archivo añadiendo la próxima línea 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
Había una vez un peruano,
que todo le importaba un pepino.
[blondie@station blondie]$ echo "Había una vez un argentino " >
/tmp/limer
ick
-bash: /tmp/limerick: Permission denied

Archivos compartidos por un grupo
Considere los siguientes usuarios, y sus respectivas membresías de grupo:
user

grupos

blondie blondie,music
elvis

elvis,music,wrestle,physics,emperors

hogan hogan,wrestle
bob

bob

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 sólo 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 músico, puede añadir (o
borrar) un evento en la programación y cualquiera puede leer el archivo para saber
cuándo tocan los músicos.
En contraste, blondie ha estado trabajando en el archivolyrics, el cual no está aún
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 debería 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 función de lucha libre.
Para no tomar a otros luchadores (wrestlers en inglés) por sorpresa, ha dejado un
archivo de sólo 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
ejecución.
[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 simbólicos
A pesar de que los enlaces simbólicos tienen permisos, los permisos son siempre
rwxrwxrwx. Las decisiones de acceso "fracasan" de a cuerdo al archivo al que se refiere
el enlace simbólico.
[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 simbólico, tendría los mismos
permisos que: rwxr-xr-x.
5
File Ownerships and Permissions
Ejercicios en línea
Exploración de permisos en archivos recién creados
Lab Exercise
Objetivo:Examinar la conducta predeterminada de los archivos recién 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 propósitos para el año entrante en su editor de texto
preferido o simplemente desde la línea de comandos. Almacene el archivo en su
directorio recién 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

Conviértase en uno de sus usuarios de cuenta alterna. Puede reiniciar desde otra
consola virtual, desde una conexión 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 añadir 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 recién 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
cómo deberían cambiarse los permisos.

En la lección anterior, aprendimos que los archivos tienen permisos de lectura (r),
escritura(w) y ejecución(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 sólo una persona, pero puede ser leíble por todos en el sistema.
Supongamos que elvis estuviera trabajando en la letra de una nueva canción y no
quisiera que nadie la leyera antes de haberla terminado. Primero crearía el archivo y
para no permitir a otros la lectura de éste, necesitaría 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 tenía permiso de lectura para
todos. Sin embargo, después del comando chmod, el comando ls -l muestra que otros ya
no lo pueden leer. Cuando elvis haya decidido la letra de la canción entonces puede
restaurar la lectura del archivo para otros, utilizando una vez más 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: más, 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

abreviación interpretación
u
user
g

grupo

o

otro

a

todos

+

agregar

-

borrar

=

set

r

leer

w

escribir

x

ejecutar

Ejemplos
Uso del comando chmod en archivos
La siguiente tabla presenta varios ejemplos de cómo 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 tendría después
de ejecutar el comando.
[elvis@station elvis]$ ls -l foo
-rw-rw-r-1 elvis
elvis

command

42 Jan 16 08:09 foo

efecto

permisos
resultantes

chmod o-r foo suprime el permiso de lectura a otros

rw-rw----

chmod g-w foo suprime el permiso de escritura para el grupo

rw-r--r--

chmod ug+x
foo

agrega permiso de ejecución al usuario y grupo

rwxrwxr--

chmod o+w

agrega permiso de escritura a otro

rw-rw-rw-
8
File Ownerships and Permissions
command

permisos
resultantes

efecto

foo
chmod go-rwx suprime el permiso de lectura, escritura y ejecución a rw------foo
grupo y otro
chmod a-w foo suprime el permiso de escritura a todos

r--r--r--

chmod uo-r
foo

suprime el permiso de lectura para el usuario y otro

-w-rw----

chmod go=rx
foo

establece el permiso de lectura y ejecución pero no
de escritura para el grupo y otro

rw-r-xr-x

Apesar de que las dos últimas entradas funcionarían, ¿por qué es difícil imaginar un uso
para un archivo con cualquiera de los dos permisos resultantes?
Ejercicios en línea
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 todavía. Por ejemplo, si su
nombre de usuario es elvis, cree el directorio /tmp/elvis.
Cree una lista sencilla de propósitos en el archivo:
/tmp/nombredeusuario/resolutions.txt

.

Puede utilizar un editor de texto, su archivo del ejercicio anterior si todavía 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 propósitos en
secreto. Modifique los permisos de archivos de tal forma que los otros no tengan acceso
de lectura.
9
File Ownerships and Permissions
8.

[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

Al utilizar una de las cuentas alternas, confirme que otros usuarios en el sistema no
pueden leer sus propósitos.
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 lección anterior?
1. Un archivo /tmp/resolutions.txt, recién creado es leíble únicamente por el
propietario del archivo.
Capítulo 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 lección anterior, aprendimos cómo modificar los permisos de un archivo y vimos
un ejemplo de cómo crear un archivo privado: el propietario del archivo podría leer el
archivo, pero nadie más lo puede hacer. ¿Qué sucedería si usted quisiera compartir el
archivo con un grupo de personas pero no con todos? o ¿qué pasaría 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 cómo los usuarios de Linux pertenecen a una colección
de grupos. Para repasar, cada usuario pertenece a un grupo primario y también a un
número 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 sería usualmente el grupo privado del creador. Debido a que
usted es el único miembro, su grupo privado no es útil para trabajar en colaboración.
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 sólo lo puede cambiar el usuario dueño 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 deberían poder leer pero no modificar y al cual nadie
más debería 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 idéntica 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. Sólo el usuario administrativo,
root, puede usar chown, si algún usuario pudiera cambiar el archivo del propietario, los
permisos de acceso no tendrían sentido.
Como root es el único que puede ejecutar el comando chown éste no se estudiará a
fondo.
11
File Ownerships and Permissions
¿Quién puede Modificar los Propietarios de archivos y los Permisos?
En general, sólo el propietario de un archivo puede cambiar los permisos o propiedades
de archivo de un archivo. Además, 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. ¿Quién puede Modificar las Propiedades de Archivos y los Permisos?
Operación

Usuarios autorizados

chmod

root y el propietario del archivo

chgrp

root y el propietario de archivo (únicamente los grupos subscritos)

chown

sólo 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 gustaría 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 gustaría 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 contribución, a hogan le gustaría poner los planes a la vista de todos.
Para ésto hace el archivo disponible para sólo 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 dueño del archivo. ¿Quiénes
son los únicos dos usuarios en el sistema que pueden cambiar el propietario del grupo
del archivo?
Ejercicios en línea
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 todavía 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 línea
de comandos. Grabe el archivo como /tmp/nombredeusuario/shopping.txt. Cambie
el propietario del grupo del archivo a wrestle.
1.
2.
3.

[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

Recuerde que su primera cuenta alterna es también miembro del grupo wrestle.
Conviértase en su primer usuario alterno (i.e. estudiante_a). Usted puede reiniciar la
sesión desde la consola virtual, desde la conexión 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. También, observe que
puede modificar el archivo agregando un artículo más 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 sólo lectura para los demás.

Capítulo 4 Propiedad de Directorios y Permisos
Conceptos clave
•
•
•

Como los directorios también 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 ejecución 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 información, modificándola o tratando de ejecutar el archivo como un script
o aplicación. Por lo tanto, los tipos de permiso que ya hemos visto, a saber: lectura (r),
escritura (w) y ejecución (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 ejecución (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.
¿Tendría sentido si abriéramos 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 deberían dar derecho al propietario del
directorio de controlar quién puede realizar estas operaciones.
Linux considera que hacer la lista del contenido de un directorio, (como con el
comandols) es análogo 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 analogía razonable para "ejecutar" un directorio, por eso Linux no trata de
definir una conducta similar. En cambio, el permiso de ejecución (x) controla la
conducta de los directorios, lo que no tiene nada que ver con el comando de ejecución.
Este permiso se conoce como el permiso "buscar", pero como el tercer permiso ya ha
sido llamado de "ejecución", 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 ejecución (x).
La primera fila de la siguiente tabla parece familiar. Esta repite cómo interpretar los
permisos para archivos regulares. Se ha agregado una fila para directorios para
comparar y contrastar la interpretación 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

ejecución (X)
Usar el archivo como comando
15
File Ownerships and Permissions
Lectura(r)

ejecución (X)

archivo

regular
directorio

escritura (w)

lista el contenido del
directorio

añade o borra
archivos

"busca" un archivo conocido
dentro del directorio

Ejemplos
Propiedades predeterminadas para los directorios nuevos
Los archivos normales recién creados son de lectura para todos, pero sólo el usuario y el
grupo propietario del archivo pueden modificarlos. ¿Cómo se manejan los directorios
recién creados? Estudie el caso de nero, quien está recolectando información 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 opción -d al comandols?)
Observe que los permisos predeterminados para los directorios recién 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
añadir o borrar archivos dentro del directorio.
Por ejemplo, julius decide que le gustaría hojear la información 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/

4096 Jan 16 16:04 /home/nero

3
3
3
3

4096
4096
4096
4096

alice
augustus
austin
blondie

alice
augustus
austin
blondie

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 están "protegidos". Por defecto,
sólo 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 mayoría 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é razón no hemos utilizado el directorio de
inicio del usuario?
Creación de un directorio ~/pub
Ahora a Nero le gustaría hacer pública su información sobre el censo. Usualmente, en
Red Hat Enterprise Linux, hay sólo 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 días 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 público permanente para sus datos del censo,
nero escoge crear un subdirectorio público dentro de su directorio de inicio.
Convencionalmente, un subdirectorio como tal en Linux, se llama pub. Como las
siguientes secuencias lo mostrarán, compartir archivos desde el directorio de inicio del
usuario, no es tan fácil 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 información 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 recién
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 dónde encontrar la información.
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 están correctos, pero observe los
permisos en /home/nero (".." en la lista de arriba o listados de nuevo a continuación):
[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 estaría bien. Pero como
julius no tiene los permisos de búsqueda para /home/nero, no puede tener acceso a
/home/nero/pub. Para crear un directorio accesible al público 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 ejecución (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 ejecución (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, permitiéndole a julius sólo permisos de ejecución(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

Protección 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 sólo las partes que ellos quieran
exponer estarán disponibles a otros usuarios.
Aunque el no añadir permisos de lectura (r) al directorio de inicio brinda alguna
protección contra otros usuarios que estén navegando, ésta no es infalible. Otros
usuarios pueden aún "adivinar" el contenido de un directorio del cuál 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 ejecución (x) a su directorio de inicio (como en el ejemplo anterior), y
más tarde crea un directorio ~/mail. Si elvis fuera a adivinar si dicho directorio existe,
los permisos por defecto en ~nero/maille permitirían navegar sus contenidos. Esto se
muestra en la siguiente transcripción:
[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

Fr
4
11
18
25

Sa
5
12
19
26

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

Sa
2
9
16
23
30

...

¿Cuál es la lección 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 recién creados. Por defecto, si alguien puede adivinar el nombre del
directorio, también será capaz de navegar un subdirectorio.
La solución de nero sería cancelar su subdirectoriomail.
[nero@station nero]$ chmod o-rx mail

Ejercicios en línea
Creación de directorios públicos 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 debería ser miembro de dos grupos secundarios, music y wrestle. aparte de su
grupo privado. Además, su primera cuenta alterna debe ser un miembro de los grupos
wrestle y physics, mientras que su tercera cuenta alterna debería 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 información con otros
músicos y luchadores, pero no le gustaría que los músicos vieran la información de los
20
File Ownerships and Permissions
luchadores y vice versa. Usted preferiría 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
otorgándoles permisos de "búsqueda".
2. Cree un sudirectorio públicamente fácil 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 sólo 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 también los permisos.
4. Cree los archivos ~/pub/music/lyricsy ~/pub/wrestle/plan. Los miembros
de los grupos music y wrestle deberían poder leer y escribir respectivamente.
Cuando haya terminado, usted debería 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 búsqueda para todos y donde sólo usted puede listarlo.
2. ~/pub, un directorio de búsqueda para todos y de listado sólo para usted.
3. ~/pub/music, un directorio de búsqueda 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 búsqueda 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 solución 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

Protección de subdirectorios dentro del directorio de inicio
Lab Exercise
Objetivo: Proteger un subdirectorio recién creado dentro de su directorio de
inicio, de una navegación no intencionada.
Estimated Time: 10 mins.
Estos ejercicios asumen que otros ya tienen permisos de ejecución (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.
Solución:La siguiente serie de comandos demostró una solución 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 sólo el propietario del directorio puede
navegar.

Capítulo 5 chmod Revisitado: Notación octal
Conceptos clave
•
•

El comando chmod puede usar un sintaxis octal alterna
La sintaxis octal es a menudo más rápida y más motivante.

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

Esta sintaxis tiene algunas ventajas y desventajas. Como la sintaxis es muy legible, la
intención de un comando es bastante evidente: el estudiante no quiere que otros usuarios
lean el archivo diary.. ¿Cuáles son los permisos resultantes en diary? Un problema de
sintaxis es que, al saber que sólo 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 lección ilustrará una sintaxis octal alterna para el comando chmod, la cual resuelve
estos problemas:
[student@station student]$ chmod 600 diary

Después de aprender la sintaxis, usted sabría que, al ejecutar el comando anterior, el
archivo diary tendría permiso de rw-------. Como un beneficio agregado, una vez
aprendida, la sintaxis octal tiende a ser más rápida para el usuario.
¿De dónde salió 600?
Recuerde que un archivo tiene tres tipos diferentes de permisos (lectura (r), escritura (w)
y ejecución (x), para las tres clases de usuario: usuario propietario (u), grupo propietario
(g), y otro (o)). Con la notación octal, cada clase de acceso obtiene un dígito, 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 dígitos de una notación octal son la suma de los permisos concedidos para cada
clase de acceso. Los siguientes ejemplos demuestran cómo se traducen los números
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 notación se llama la notación "octal" debido a que cada dígito tiene 8 posibles
valores(de 0 a 7).
Modos de archivos
Una vez aprendida, la notación octal brinda una forma rápida de referirse a los permisos
de archivo. Por ejemplo, los administradores experimentados de Linux a menudo se
referirán 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 término se utiliza para referirse a los permisos de archivo de notación
octal. Por ejemplo, un administrador de sistema podría decir que los "Directorios se
crean con un modo predeterminado de 755".
Ejemplos
Creación de un directorio ~/pub (utilizando la notación octal)
Al usuario elvis le gustaría 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 notación 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. ¿Cómo habría tenido que hacer esto utilizando
una notación simbólica?
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 opción.
"." 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 notación octal
El usuario einstein tiene la siguiente serie de artículos, 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 atención 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é lección 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 podría utlilizar el comando find
para buscar de modo recursivo. Dicho comando find se presentará en la siguiente
sección).
Ejercicios en línea
Administración de Permisos en Grupos de Archivos
Lab Exercise
Objetivo: Administrar permisos en un grupo grande de archivos, utilizando la
notación octal.
Estimated Time: 30 mins.
Configuración
Su segunda cuenta alterna (student_b) debe ser miembro del grupo emperors. Inicie la
sesión 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 "mágico" para crear un número grande de archivos en el
directorio actual. La sintaxis de paréntesis 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) deberían 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 deberían poder leer y modificar los archivos, pero otros usuarios no
deberían 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 deberían tener accceso al subdirectorio, poder listar el contenido
del directorio y poder leer los informes (pero no modificarlos).
Use el comando chmod con una notación octal para obtener estos resultados.
Question 1

El directorio ~/reports y todos sus archivos y directorios subyacentes, deberían
pertenecer al grupo propietario emperor.
1. Un directorio ~/reports de libre acceso y lectura.
2. Una colección de archivos ~/reports/*.data, de lectura para todos, pero sólo
con permiso de escritura para usted.
3. Una serie de archivos ~/reports/*.draft, de lectura y escritura sólo para
miembros del grupo emperor.
4. Un directorio ~/reports/final de acceso y lectura solo para miembros del
grupo emperor.
5. Una colección 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 tendrían 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 recién 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 recién creado.
Igualmente, los directorios recién creados tienen un modo por defecto de 775
(rwxrwxr-x), implicando que cualquier persona puede acceder o navegar en el
directorio, pero sólo el propietario del directorio puede añadir o borrar archivos.
Los permisos predetermiandos de los archivos recién creados se pueden alterar a través
de un concepto Unix estándar llamado umask. Cada proceso, incluyendo el comando de
shell bash, tiene un número octal de tres dígitos, 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 sólo dígito: (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 ejecución(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 recién 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
resultaría 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 resultaría 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 técnica,
excepto que el modo por defecto del kernel para directorio es 777 (rwxrwxrwx). Por
ejemplo, una umask de 002 resultaría 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 resultaría 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 sólo 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 más tiene acceso.
Modificación 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 número octal de cuatro dígitos.
Por ahora, el "0" del comienzo se puede ignorar (su significado será más claro en la
siguiente lección).
Ejemplos
Uso del comando umask para crear archivos compartidos por grupos
En la siguiente secuencia, blondie y otros músicos están colaborando con la letra de una
canción. A blondie le gustaría crear varios archivos que los miembros del grupo de
music pueden ver y modificar, pero que nadie más puede leer o escribir. Una posibilidad
29
File Ownerships and Permissions
sería 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 recién 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.
Utilización de ~/.bashrc para cambiar automáticamente la umask de la shell bash
El emperador Nero, en un estado de paranoia está sospechando que los otros usuarios le
están mirando sus archivos. Quisiera configurar su shell bash de tal forma que cada vez
que inicie, la umask de la shell sea establecida automáticamente 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 línea
de comandos. Al anexar "umask 077" al archivo ~/.bashrc de nero, él configurará su
shell de tal forma que la umask de shell automáticamente será configurada como 077 al
iniciar.
En la siguiente secuencia, nero examina primero, luego agrega una nueva línea y
después reexamina su archivo ~/.bashrc. Por ahora, no se preocupe por el contenido
original del archivo, sólo 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á
automáticamente como 077 cada vez que comience una nueva shell. Cuando nero sale y
luego reinicia, los archivos recién 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 línea
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 línea 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 automáticamente cada vez
que inicia una sesión, agregue una línea al final de su archivo ~/.bashrc, el cual
establece la umask de la shell. Los archivos recién creados deberían 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 sólo de escritura para
el usuario propietario del archivo (en particular, el archivo no debería 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 debería 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 recién creados es 644, no el permiso por
defecto de Red Hat de 664.
Limpieza
Después de haber evaluado este ejercicio, suprima de su archivo~/.bashrc la línea que
ha agregado.

More Related Content

What's hot

Permisos basicos linux
Permisos basicos linuxPermisos basicos linux
Permisos basicos linuxeclipsotol
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linuxbat18
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basicscyberleon95
 
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltaSemana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltavictdiazm
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbolFernando Solis
 
Manejo de ficheros en Linux
Manejo de ficheros en LinuxManejo de ficheros en Linux
Manejo de ficheros en Linuxguest21f6be1
 
Linux ud2 - comandos gestion archivos
Linux   ud2 - comandos gestion archivosLinux   ud2 - comandos gestion archivos
Linux ud2 - comandos gestion archivosJavier Muñoz
 
Semana 4 y 5 la shell bash guia de ejercicios resuelta
Semana 4 y 5  la shell bash guia de ejercicios resueltaSemana 4 y 5  la shell bash guia de ejercicios resuelta
Semana 4 y 5 la shell bash guia de ejercicios resueltavictdiazm
 
Comandos unix
Comandos unixComandos unix
Comandos unixyexia
 

What's hot (13)

Permisos basicos linux
Permisos basicos linuxPermisos basicos linux
Permisos basicos linux
 
19 usuarios gruposlinuxasoitson
19 usuarios gruposlinuxasoitson19 usuarios gruposlinuxasoitson
19 usuarios gruposlinuxasoitson
 
Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3
 
Cli unix2
Cli unix2Cli unix2
Cli unix2
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linux
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basics
 
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltaSemana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
 
Manejo de ficheros en Linux
Manejo de ficheros en LinuxManejo de ficheros en Linux
Manejo de ficheros en Linux
 
Linux ud2 - comandos gestion archivos
Linux   ud2 - comandos gestion archivosLinux   ud2 - comandos gestion archivos
Linux ud2 - comandos gestion archivos
 
Tema2
Tema2Tema2
Tema2
 
Semana 4 y 5 la shell bash guia de ejercicios resuelta
Semana 4 y 5  la shell bash guia de ejercicios resueltaSemana 4 y 5  la shell bash guia de ejercicios resuelta
Semana 4 y 5 la shell bash guia de ejercicios resuelta
 
Comandos unix
Comandos unixComandos unix
Comandos unix
 

Viewers also liked

Pwer resumen clase 9 regulación ans (1)
Pwer resumen clase 9 regulación ans (1)Pwer resumen clase 9 regulación ans (1)
Pwer resumen clase 9 regulación ans (1)Daniel Lopez Hormazabal
 
Bullying sec. tec. 138
Bullying sec. tec. 138Bullying sec. tec. 138
Bullying sec. tec. 138nena35
 
Successful positioning of Univention in the market from a partners point of view
Successful positioning of Univention in the market from a partners point of viewSuccessful positioning of Univention in the market from a partners point of view
Successful positioning of Univention in the market from a partners point of viewUnivention GmbH
 
Sindromeinmunodeficienciaadquirida 121013161004-phpapp01
Sindromeinmunodeficienciaadquirida 121013161004-phpapp01Sindromeinmunodeficienciaadquirida 121013161004-phpapp01
Sindromeinmunodeficienciaadquirida 121013161004-phpapp01Angee López Gil
 
la educación superior y los proyectos de investigación y desarrollo tecnológicos
la educación superior y los proyectos de investigación y desarrollo tecnológicosla educación superior y los proyectos de investigación y desarrollo tecnológicos
la educación superior y los proyectos de investigación y desarrollo tecnológicosJorg Martínez
 
Bürostühle der pending manufaktur
Bürostühle der pending manufakturBürostühle der pending manufaktur
Bürostühle der pending manufakturjohnmarsh12
 
Höhenverstellbaren bürotisches
Höhenverstellbaren bürotischesHöhenverstellbaren bürotisches
Höhenverstellbaren bürotischesjohnmarsh12
 
Intensivo comunicación prod escrita clase 4
Intensivo comunicación prod escrita clase 4Intensivo comunicación prod escrita clase 4
Intensivo comunicación prod escrita clase 4Daniel Lopez Hormazabal
 
Imágenes grises
Imágenes grisesImágenes grises
Imágenes grisesmalory22
 
Fauna iberikoa sl Elexalde
Fauna iberikoa sl ElexaldeFauna iberikoa sl Elexalde
Fauna iberikoa sl ElexaldeThalys Rodrigo
 

Viewers also liked (20)

Qualitätskriterien für schulbezogene Bildungsarbeit Globalen Lernens
Qualitätskriterien für schulbezogene Bildungsarbeit Globalen LernensQualitätskriterien für schulbezogene Bildungsarbeit Globalen Lernens
Qualitätskriterien für schulbezogene Bildungsarbeit Globalen Lernens
 
Pwer resumen clase 9 regulación ans (1)
Pwer resumen clase 9 regulación ans (1)Pwer resumen clase 9 regulación ans (1)
Pwer resumen clase 9 regulación ans (1)
 
Clase 5 -resumen trabajo en equipo
 Clase 5 -resumen trabajo en equipo Clase 5 -resumen trabajo en equipo
Clase 5 -resumen trabajo en equipo
 
Bullying sec. tec. 138
Bullying sec. tec. 138Bullying sec. tec. 138
Bullying sec. tec. 138
 
Successful positioning of Univention in the market from a partners point of view
Successful positioning of Univention in the market from a partners point of viewSuccessful positioning of Univention in the market from a partners point of view
Successful positioning of Univention in the market from a partners point of view
 
Sindromeinmunodeficienciaadquirida 121013161004-phpapp01
Sindromeinmunodeficienciaadquirida 121013161004-phpapp01Sindromeinmunodeficienciaadquirida 121013161004-phpapp01
Sindromeinmunodeficienciaadquirida 121013161004-phpapp01
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
 
la educación superior y los proyectos de investigación y desarrollo tecnológicos
la educación superior y los proyectos de investigación y desarrollo tecnológicosla educación superior y los proyectos de investigación y desarrollo tecnológicos
la educación superior y los proyectos de investigación y desarrollo tecnológicos
 
Bürostühle der pending manufaktur
Bürostühle der pending manufakturBürostühle der pending manufaktur
Bürostühle der pending manufaktur
 
Höhenverstellbaren bürotisches
Höhenverstellbaren bürotischesHöhenverstellbaren bürotisches
Höhenverstellbaren bürotisches
 
Intensivo comunicación prod escrita clase 4
Intensivo comunicación prod escrita clase 4Intensivo comunicación prod escrita clase 4
Intensivo comunicación prod escrita clase 4
 
Imágenes grises
Imágenes grisesImágenes grises
Imágenes grises
 
Diccionario informatico11
Diccionario informatico11Diccionario informatico11
Diccionario informatico11
 
Paradigmas emergentes
Paradigmas emergentesParadigmas emergentes
Paradigmas emergentes
 
Arte y pintura
Arte y pinturaArte y pintura
Arte y pintura
 
Enlaces dedicados
Enlaces dedicadosEnlaces dedicados
Enlaces dedicados
 
Lernsituation 2
Lernsituation 2Lernsituation 2
Lernsituation 2
 
Erika y maria 1104
Erika y maria 1104Erika y maria 1104
Erika y maria 1104
 
Fauna iberikoa sl Elexalde
Fauna iberikoa sl ElexaldeFauna iberikoa sl Elexalde
Fauna iberikoa sl Elexalde
 
1963 03 veitch-esp
1963   03 veitch-esp1963   03 veitch-esp
1963 03 veitch-esp
 

Similar to Permisos de Archivos y Propietarios

Linux ud6 - permisos de archivos
Linux   ud6 - permisos de archivosLinux   ud6 - permisos de archivos
Linux ud6 - permisos de archivosJavier Muñoz
 
Permisos de archivos y carpetas explicado
Permisos de archivos y carpetas explicadoPermisos de archivos y carpetas explicado
Permisos de archivos y carpetas explicadoCarlos Cuzco Julcamoro
 
5 the linux filesystem
5 the linux filesystem5 the linux filesystem
5 the linux filesystemyimfer1
 
5 the linux filesystem
5 the linux filesystem5 the linux filesystem
5 the linux filesystemJuan Camilo
 
Tema 3 Ficheros Y Permisos
Tema 3 Ficheros Y PermisosTema 3 Ficheros Y Permisos
Tema 3 Ficheros Y PermisosFresyMetal
 
Tema 3 Ficheros Y Permisos
Tema 3 Ficheros Y PermisosTema 3 Ficheros Y Permisos
Tema 3 Ficheros Y PermisosFresyMetal
 
Permisos y ficheros en linux
Permisos y ficheros en linuxPermisos y ficheros en linux
Permisos y ficheros en linuxelkinvillasz
 
Semana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxSemana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxvictdiazm
 
Permisos archivos y carpetas
Permisos archivos y carpetasPermisos archivos y carpetas
Permisos archivos y carpetasgonzalovizuete
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linuxbat1820
 
Permisos en Linux
Permisos en LinuxPermisos en Linux
Permisos en LinuxPablo Macon
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbolFernando Solis
 
Permisos y derechos en linux
Permisos y derechos en linuxPermisos y derechos en linux
Permisos y derechos en linuxAlexandra Mujiica
 

Similar to Permisos de Archivos y Propietarios (20)

Linux ud6 - permisos de archivos
Linux   ud6 - permisos de archivosLinux   ud6 - permisos de archivos
Linux ud6 - permisos de archivos
 
Permisos de archivos y carpetas explicado
Permisos de archivos y carpetas explicadoPermisos de archivos y carpetas explicado
Permisos de archivos y carpetas explicado
 
5 the linux filesystem
5 the linux filesystem5 the linux filesystem
5 the linux filesystem
 
5 the linux filesystem
5 the linux filesystem5 the linux filesystem
5 the linux filesystem
 
Linux Para Asterisk
Linux Para AsteriskLinux Para Asterisk
Linux Para Asterisk
 
Tema 3 Ficheros Y Permisos
Tema 3 Ficheros Y PermisosTema 3 Ficheros Y Permisos
Tema 3 Ficheros Y Permisos
 
Tema 3 Ficheros Y Permisos
Tema 3 Ficheros Y PermisosTema 3 Ficheros Y Permisos
Tema 3 Ficheros Y Permisos
 
Permisos y ficheros en linux
Permisos y ficheros en linuxPermisos y ficheros en linux
Permisos y ficheros en linux
 
Semana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxSemana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linux
 
Consola 2
Consola 2Consola 2
Consola 2
 
18 permisos linuxasoitsonp
18 permisos linuxasoitsonp18 permisos linuxasoitsonp
18 permisos linuxasoitsonp
 
Permisos archivos y carpetas
Permisos archivos y carpetasPermisos archivos y carpetas
Permisos archivos y carpetas
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linux
 
Permisos en Linux
Permisos en LinuxPermisos en Linux
Permisos en Linux
 
Permisos
PermisosPermisos
Permisos
 
Intro comandos unix
Intro comandos   unixIntro comandos   unix
Intro comandos unix
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
 
Practica u5
Practica u5Practica u5
Practica u5
 
Permisos y derechos en linux
Permisos y derechos en linuxPermisos y derechos en linux
Permisos y derechos en linux
 
Comandos ls
Comandos lsComandos ls
Comandos ls
 

More from Juan Camilo

Instalación de un sistema Voip corporativo basado en asterisk
Instalación de un sistema Voip corporativo basado en asteriskInstalación de un sistema Voip corporativo basado en asterisk
Instalación de un sistema Voip corporativo basado en asteriskJuan Camilo
 
10 network applications
10 network applications10 network applications
10 network applicationsJuan Camilo
 
9 managing processes
9  managing processes9  managing processes
9 managing processesJuan Camilo
 
8 herramientas de procesos de string
8  herramientas de procesos de string8  herramientas de procesos de string
8 herramientas de procesos de stringJuan Camilo
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipesJuan Camilo
 
3 users and groups
3   users and groups3   users and groups
3 users and groupsJuan Camilo
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basicsJuan Camilo
 

More from Juan Camilo (10)

Instalación de un sistema Voip corporativo basado en asterisk
Instalación de un sistema Voip corporativo basado en asteriskInstalación de un sistema Voip corporativo basado en asterisk
Instalación de un sistema Voip corporativo basado en asterisk
 
10 network applications
10 network applications10 network applications
10 network applications
 
9 managing processes
9  managing processes9  managing processes
9 managing processes
 
8 herramientas de procesos de string
8  herramientas de procesos de string8  herramientas de procesos de string
8 herramientas de procesos de string
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipes
 
6 la shell bash
6 la shell bash6 la shell bash
6 la shell bash
 
3 users and groups
3   users and groups3   users and groups
3 users and groups
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basics
 
11 suplemments
11 suplemments11 suplemments
11 suplemments
 
1 quick tours
1 quick tours1 quick tours
1 quick tours
 

Recently uploaded

FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 

Recently uploaded (20)

FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 

Permisos de Archivos y Propietarios

  • 1. 1 File Ownerships and Permissions Capítulo 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 ejecución (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 cumpleaños próximo. Entre más 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 querrán 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 quién tiene acceso al archivo y cómo: 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. 2 File Ownerships and Permissions siguientes secciones veremos cómo utilizar la primera columna para determinar los permisos del archivo. Los tres tipos de permisos: lectura (r), escritura (w), y ejecución(x) Al decidir quién 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 ejecución, permiten que alguien utilice el archivo como un comando. Para iniciar una aplicación o ejecutar un script, el archivo que contenga la aplicación 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) ejecución (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 ejecución(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 demás que no estén incluidos en las dos categorías 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 guión 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 dueño del archivo? Si lo es entonces se utilizan los permisos de grupo. 3. De lo contrario, se utilizan los otros permisos.
  • 3. 3 File Ownerships and Permissions Ejemplos Archivos recién creados Considere el siguiente verso que elvis está componiendo: [elvis@station elvis]$ echo "Había 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 sólo pueden leer el archivo (debido a que Red Hat Enterprise Linux utiliza el esquema del grupo privado de usuario, el usuario elvis es también el único miembro del grupo elvis). Como elvis tiene permisos para escribir, puede modificar el archivo añadiendo la próxima línea 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 Había una vez un peruano, que todo le importaba un pepino. [blondie@station blondie]$ echo "Había una vez un argentino " > /tmp/limer ick -bash: /tmp/limerick: Permission denied Archivos compartidos por un grupo Considere los siguientes usuarios, y sus respectivas membresías de grupo: user grupos blondie blondie,music elvis elvis,music,wrestle,physics,emperors hogan hogan,wrestle bob bob 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. 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 sólo 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 músico, puede añadir (o borrar) un evento en la programación y cualquiera puede leer el archivo para saber cuándo tocan los músicos. En contraste, blondie ha estado trabajando en el archivolyrics, el cual no está aún 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 debería 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 función de lucha libre. Para no tomar a otros luchadores (wrestlers en inglés) por sorpresa, ha dejado un archivo de sólo 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 ejecución. [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 simbólicos A pesar de que los enlaces simbólicos tienen permisos, los permisos son siempre rwxrwxrwx. Las decisiones de acceso "fracasan" de a cuerdo al archivo al que se refiere el enlace simbólico. [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 simbólico, tendría los mismos permisos que: rwxr-xr-x.
  • 5. 5 File Ownerships and Permissions Ejercicios en línea Exploración de permisos en archivos recién creados Lab Exercise Objetivo:Examinar la conducta predeterminada de los archivos recién 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 propósitos para el año entrante en su editor de texto preferido o simplemente desde la línea de comandos. Almacene el archivo en su directorio recién 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 Conviértase en uno de sus usuarios de cuenta alterna. Puede reiniciar desde otra consola virtual, desde una conexión 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 añadir 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. 6 File Ownerships and Permissions 1. Un archivo recién 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 cómo deberían cambiarse los permisos. En la lección anterior, aprendimos que los archivos tienen permisos de lectura (r), escritura(w) y ejecución(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 sólo una persona, pero puede ser leíble por todos en el sistema. Supongamos que elvis estuviera trabajando en la letra de una nueva canción y no quisiera que nadie la leyera antes de haberla terminado. Primero crearía el archivo y para no permitir a otros la lectura de éste, necesitaría 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 tenía permiso de lectura para todos. Sin embargo, después del comando chmod, el comando ls -l muestra que otros ya no lo pueden leer. Cuando elvis haya decidido la letra de la canción entonces puede restaurar la lectura del archivo para otros, utilizando una vez más 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. 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: más, 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 abreviación interpretación u user g grupo o otro a todos + agregar - borrar = set r leer w escribir x ejecutar Ejemplos Uso del comando chmod en archivos La siguiente tabla presenta varios ejemplos de cómo 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 tendría después de ejecutar el comando. [elvis@station elvis]$ ls -l foo -rw-rw-r-1 elvis elvis command 42 Jan 16 08:09 foo efecto permisos resultantes chmod o-r foo suprime el permiso de lectura a otros rw-rw---- chmod g-w foo suprime el permiso de escritura para el grupo rw-r--r-- chmod ug+x foo agrega permiso de ejecución al usuario y grupo rwxrwxr-- chmod o+w agrega permiso de escritura a otro rw-rw-rw-
  • 8. 8 File Ownerships and Permissions command permisos resultantes efecto foo chmod go-rwx suprime el permiso de lectura, escritura y ejecución a rw------foo grupo y otro chmod a-w foo suprime el permiso de escritura a todos r--r--r-- chmod uo-r foo suprime el permiso de lectura para el usuario y otro -w-rw---- chmod go=rx foo establece el permiso de lectura y ejecución pero no de escritura para el grupo y otro rw-r-xr-x Apesar de que las dos últimas entradas funcionarían, ¿por qué es difícil imaginar un uso para un archivo con cualquiera de los dos permisos resultantes? Ejercicios en línea 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 todavía. Por ejemplo, si su nombre de usuario es elvis, cree el directorio /tmp/elvis. Cree una lista sencilla de propósitos en el archivo: /tmp/nombredeusuario/resolutions.txt . Puede utilizar un editor de texto, su archivo del ejercicio anterior si todavía 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 propósitos en secreto. Modifique los permisos de archivos de tal forma que los otros no tengan acceso de lectura.
  • 9. 9 File Ownerships and Permissions 8. [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 Al utilizar una de las cuentas alternas, confirme que otros usuarios en el sistema no pueden leer sus propósitos. 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 lección anterior? 1. Un archivo /tmp/resolutions.txt, recién creado es leíble únicamente por el propietario del archivo. Capítulo 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 lección anterior, aprendimos cómo modificar los permisos de un archivo y vimos un ejemplo de cómo crear un archivo privado: el propietario del archivo podría leer el archivo, pero nadie más lo puede hacer. ¿Qué sucedería si usted quisiera compartir el archivo con un grupo de personas pero no con todos? o ¿qué pasaría 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 cómo los usuarios de Linux pertenecen a una colección de grupos. Para repasar, cada usuario pertenece a un grupo primario y también a un número 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 sería usualmente el grupo privado del creador. Debido a que usted es el único miembro, su grupo privado no es útil para trabajar en colaboración. 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. 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 sólo lo puede cambiar el usuario dueño 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 deberían poder leer pero no modificar y al cual nadie más debería 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 idéntica 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. Sólo el usuario administrativo, root, puede usar chown, si algún usuario pudiera cambiar el archivo del propietario, los permisos de acceso no tendrían sentido. Como root es el único que puede ejecutar el comando chown éste no se estudiará a fondo.
  • 11. 11 File Ownerships and Permissions ¿Quién puede Modificar los Propietarios de archivos y los Permisos? En general, sólo el propietario de un archivo puede cambiar los permisos o propiedades de archivo de un archivo. Además, 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. ¿Quién puede Modificar las Propiedades de Archivos y los Permisos? Operación Usuarios autorizados chmod root y el propietario del archivo chgrp root y el propietario de archivo (únicamente los grupos subscritos) chown sólo 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 gustaría 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 gustaría 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 contribución, a hogan le gustaría poner los planes a la vista de todos. Para ésto hace el archivo disponible para sólo lectura para todod el mundo.
  • 12. 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 dueño del archivo. ¿Quiénes son los únicos dos usuarios en el sistema que pueden cambiar el propietario del grupo del archivo? Ejercicios en línea 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 todavía 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 línea de comandos. Grabe el archivo como /tmp/nombredeusuario/shopping.txt. Cambie el propietario del grupo del archivo a wrestle. 1. 2. 3. [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 Recuerde que su primera cuenta alterna es también miembro del grupo wrestle. Conviértase en su primer usuario alterno (i.e. estudiante_a). Usted puede reiniciar la sesión desde la consola virtual, desde la conexión 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. 13 File Ownerships and Permissions Como el usuario alterno, confirme que puede ver el archivo. También, observe que puede modificar el archivo agregando un artículo más 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 sólo lectura para los demás. Capítulo 4 Propiedad de Directorios y Permisos Conceptos clave • • • Como los directorios también 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. 14 File Ownerships and Permissions • • Los permisos de ejecución 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 información, modificándola o tratando de ejecutar el archivo como un script o aplicación. Por lo tanto, los tipos de permiso que ya hemos visto, a saber: lectura (r), escritura (w) y ejecución (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 ejecución (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. ¿Tendría sentido si abriéramos 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 deberían dar derecho al propietario del directorio de controlar quién puede realizar estas operaciones. Linux considera que hacer la lista del contenido de un directorio, (como con el comandols) es análogo 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 analogía razonable para "ejecutar" un directorio, por eso Linux no trata de definir una conducta similar. En cambio, el permiso de ejecución (x) controla la conducta de los directorios, lo que no tiene nada que ver con el comando de ejecución. Este permiso se conoce como el permiso "buscar", pero como el tercer permiso ya ha sido llamado de "ejecución", 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 ejecución (x). La primera fila de la siguiente tabla parece familiar. Esta repite cómo interpretar los permisos para archivos regulares. Se ha agregado una fila para directorios para comparar y contrastar la interpretación 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 ejecución (X) Usar el archivo como comando
  • 15. 15 File Ownerships and Permissions Lectura(r) ejecución (X) archivo regular directorio escritura (w) lista el contenido del directorio añade o borra archivos "busca" un archivo conocido dentro del directorio Ejemplos Propiedades predeterminadas para los directorios nuevos Los archivos normales recién creados son de lectura para todos, pero sólo el usuario y el grupo propietario del archivo pueden modificarlos. ¿Cómo se manejan los directorios recién creados? Estudie el caso de nero, quien está recolectando información 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 opción -d al comandols?) Observe que los permisos predeterminados para los directorios recién 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 añadir o borrar archivos dentro del directorio. Por ejemplo, julius decide que le gustaría hojear la información 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. 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/ 4096 Jan 16 16:04 /home/nero 3 3 3 3 4096 4096 4096 4096 alice augustus austin blondie alice augustus austin blondie 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 están "protegidos". Por defecto, sólo 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 mayoría 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é razón no hemos utilizado el directorio de inicio del usuario? Creación de un directorio ~/pub Ahora a Nero le gustaría hacer pública su información sobre el censo. Usualmente, en Red Hat Enterprise Linux, hay sólo 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 días 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 público permanente para sus datos del censo, nero escoge crear un subdirectorio público dentro de su directorio de inicio. Convencionalmente, un subdirectorio como tal en Linux, se llama pub. Como las siguientes secuencias lo mostrarán, compartir archivos desde el directorio de inicio del usuario, no es tan fácil como crear un directorio leible (r) o ejecutable (x) por todo el mundo.
  • 17. 17 File Ownerships and Permissions Primero, nero crea el directorio ~/puby copia en él la información 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 recién 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 dónde encontrar la información. 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 están correctos, pero observe los permisos en /home/nero (".." en la lista de arriba o listados de nuevo a continuación): [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 estaría bien. Pero como julius no tiene los permisos de búsqueda para /home/nero, no puede tener acceso a /home/nero/pub. Para crear un directorio accesible al público 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. 18 File Ownerships and Permissions Ahora, otros tienen permisos de ejecución (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 ejecución (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, permitiéndole a julius sólo permisos de ejecución(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 Protección 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 sólo las partes que ellos quieran exponer estarán disponibles a otros usuarios. Aunque el no añadir permisos de lectura (r) al directorio de inicio brinda alguna protección contra otros usuarios que estén navegando, ésta no es infalible. Otros usuarios pueden aún "adivinar" el contenido de un directorio del cuál 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 ejecución (x) a su directorio de inicio (como en el ejemplo anterior), y más tarde crea un directorio ~/mail. Si elvis fuera a adivinar si dicho directorio existe, los permisos por defecto en ~nero/maille permitirían navegar sus contenidos. Esto se muestra en la siguiente transcripción: [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. 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 Fr 4 11 18 25 Sa 5 12 19 26 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 Sa 2 9 16 23 30 ... ¿Cuál es la lección 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 recién creados. Por defecto, si alguien puede adivinar el nombre del directorio, también será capaz de navegar un subdirectorio. La solución de nero sería cancelar su subdirectoriomail. [nero@station nero]$ chmod o-rx mail Ejercicios en línea Creación de directorios públicos 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 debería ser miembro de dos grupos secundarios, music y wrestle. aparte de su grupo privado. Además, su primera cuenta alterna debe ser un miembro de los grupos wrestle y physics, mientras que su tercera cuenta alterna debería 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 información con otros músicos y luchadores, pero no le gustaría que los músicos vieran la información de los
  • 20. 20 File Ownerships and Permissions luchadores y vice versa. Usted preferiría 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 otorgándoles permisos de "búsqueda". 2. Cree un sudirectorio públicamente fácil 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 sólo 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 también los permisos. 4. Cree los archivos ~/pub/music/lyricsy ~/pub/wrestle/plan. Los miembros de los grupos music y wrestle deberían poder leer y escribir respectivamente. Cuando haya terminado, usted debería 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 búsqueda para todos y donde sólo usted puede listarlo. 2. ~/pub, un directorio de búsqueda para todos y de listado sólo para usted. 3. ~/pub/music, un directorio de búsqueda 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 búsqueda 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. 21 File Ownerships and Permissions La siguiente serie de comandos demuestra una solución 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 Protección de subdirectorios dentro del directorio de inicio Lab Exercise Objetivo: Proteger un subdirectorio recién creado dentro de su directorio de inicio, de una navegación no intencionada. Estimated Time: 10 mins. Estos ejercicios asumen que otros ya tienen permisos de ejecución (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. Solución:La siguiente serie de comandos demostró una solución 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. 22 File Ownerships and Permissions Question 1 1. Un directorio llamado~/memos, que sólo el propietario del directorio puede navegar. Capítulo 5 chmod Revisitado: Notación octal Conceptos clave • • El comando chmod puede usar un sintaxis octal alterna La sintaxis octal es a menudo más rápida y más motivante. ¿Por qué una sintaxis diferente? En las lecciones anteriores, el comandochmod se utilizó para modificar permisos de un archivo utilizando una sintaxis simbólica como la siguiente: [student@station student]$ chmod og-r diary Esta sintaxis tiene algunas ventajas y desventajas. Como la sintaxis es muy legible, la intención de un comando es bastante evidente: el estudiante no quiere que otros usuarios lean el archivo diary.. ¿Cuáles son los permisos resultantes en diary? Un problema de sintaxis es que, al saber que sólo 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 lección ilustrará una sintaxis octal alterna para el comando chmod, la cual resuelve estos problemas: [student@station student]$ chmod 600 diary Después de aprender la sintaxis, usted sabría que, al ejecutar el comando anterior, el archivo diary tendría permiso de rw-------. Como un beneficio agregado, una vez aprendida, la sintaxis octal tiende a ser más rápida para el usuario. ¿De dónde salió 600? Recuerde que un archivo tiene tres tipos diferentes de permisos (lectura (r), escritura (w) y ejecución (x), para las tres clases de usuario: usuario propietario (u), grupo propietario (g), y otro (o)). Con la notación octal, cada clase de acceso obtiene un dígito, 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 dígitos de una notación octal son la suma de los permisos concedidos para cada clase de acceso. Los siguientes ejemplos demuestran cómo se traducen los números octales a una sintaxis convencional de permisos.
  • 23. 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 notación se llama la notación "octal" debido a que cada dígito tiene 8 posibles valores(de 0 a 7). Modos de archivos Una vez aprendida, la notación octal brinda una forma rápida de referirse a los permisos de archivo. Por ejemplo, los administradores experimentados de Linux a menudo se referirán 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 término se utiliza para referirse a los permisos de archivo de notación octal. Por ejemplo, un administrador de sistema podría decir que los "Directorios se crean con un modo predeterminado de 755". Ejemplos Creación de un directorio ~/pub (utilizando la notación octal) Al usuario elvis le gustaría 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 notación 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. 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. ¿Cómo habría tenido que hacer esto utilizando una notación simbólica? 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 opción. "." 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 notación octal El usuario einstein tiene la siguiente serie de artículos, 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 atención 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. 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é lección 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 podría utlilizar el comando find para buscar de modo recursivo. Dicho comando find se presentará en la siguiente sección). Ejercicios en línea Administración de Permisos en Grupos de Archivos Lab Exercise Objetivo: Administrar permisos en un grupo grande de archivos, utilizando la notación octal. Estimated Time: 30 mins. Configuración Su segunda cuenta alterna (student_b) debe ser miembro del grupo emperors. Inicie la sesión 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 "mágico" para crear un número grande de archivos en el directorio actual. La sintaxis de paréntesis 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. 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) deberían 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 deberían poder leer y modificar los archivos, pero otros usuarios no deberían 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 deberían tener accceso al subdirectorio, poder listar el contenido del directorio y poder leer los informes (pero no modificarlos). Use el comando chmod con una notación octal para obtener estos resultados. Question 1 El directorio ~/reports y todos sus archivos y directorios subyacentes, deberían pertenecer al grupo propietario emperor. 1. Un directorio ~/reports de libre acceso y lectura. 2. Una colección de archivos ~/reports/*.data, de lectura para todos, pero sólo con permiso de escritura para usted. 3. Una serie de archivos ~/reports/*.draft, de lectura y escritura sólo para miembros del grupo emperor. 4. Un directorio ~/reports/final de acceso y lectura solo para miembros del grupo emperor. 5. Una colección 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 tendrían 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. 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 recién 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 recién creado. Igualmente, los directorios recién creados tienen un modo por defecto de 775 (rwxrwxr-x), implicando que cualquier persona puede acceder o navegar en el directorio, pero sólo el propietario del directorio puede añadir o borrar archivos. Los permisos predetermiandos de los archivos recién creados se pueden alterar a través de un concepto Unix estándar llamado umask. Cada proceso, incluyendo el comando de shell bash, tiene un número octal de tres dígitos, 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 sólo dígito: (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 ejecución(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 recién 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 resultaría 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 resultaría 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. 28 File Ownerships and Permissions Permisos predeterminados para directorios Los permisos predeterminados para los directorios se crean utilizando la misma técnica, excepto que el modo por defecto del kernel para directorio es 777 (rwxrwxrwx). Por ejemplo, una umask de 002 resultaría 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 resultaría 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 sólo 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 más tiene acceso. Modificación 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 número octal de cuatro dígitos. Por ahora, el "0" del comienzo se puede ignorar (su significado será más claro en la siguiente lección). Ejemplos Uso del comando umask para crear archivos compartidos por grupos En la siguiente secuencia, blondie y otros músicos están colaborando con la letra de una canción. A blondie le gustaría crear varios archivos que los miembros del grupo de music pueden ver y modificar, pero que nadie más puede leer o escribir. Una posibilidad
  • 29. 29 File Ownerships and Permissions sería 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 recién 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. Utilización de ~/.bashrc para cambiar automáticamente la umask de la shell bash El emperador Nero, en un estado de paranoia está sospechando que los otros usuarios le están mirando sus archivos. Quisiera configurar su shell bash de tal forma que cada vez que inicie, la umask de la shell sea establecida automáticamente 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 línea de comandos. Al anexar "umask 077" al archivo ~/.bashrc de nero, él configurará su shell de tal forma que la umask de shell automáticamente será configurada como 077 al iniciar. En la siguiente secuencia, nero examina primero, luego agrega una nueva línea y después reexamina su archivo ~/.bashrc. Por ahora, no se preocupe por el contenido original del archivo, sólo 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. 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á automáticamente como 077 cada vez que comience una nueva shell. Cuando nero sale y luego reinicia, los archivos recién 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 línea 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 línea 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 automáticamente cada vez que inicia una sesión, agregue una línea al final de su archivo ~/.bashrc, el cual establece la umask de la shell. Los archivos recién creados deberían ser de lectura para todos, pero de escritura únicamente para el usuario propietario por defecto. Question 1
  • 31. 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 sólo de escritura para el usuario propietario del archivo (en particular, el archivo no debería 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 debería 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 recién creados es 644, no el permiso por defecto de Red Hat de 664. Limpieza Después de haber evaluado este ejercicio, suprima de su archivo~/.bashrc la línea que ha agregado.