Registrarse
Home
Foros
Miembros
Calendario
Normas
Ayuda

Foros de usuarios de openSUSE
Retroceder   ForoSUSE > Zona Técnica > FAQs, Manuales y Tutoriales


Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook

Respuesta
 
Herramientas Desplegado

Gestión simple de permisos (I)
  #1  
Antiguo 30-dic-2007, 10:22
Avatar de karlggest
karlggest karlggest está desconectado
Moderador
 
Fecha de Ingreso: 07-febrero-2007
Ubicación: Ourense
Versión: Leap 42.3
Mensajes: 8.187
Agradecimientos: 41
Agradecido 1.248 Veces en 919 Mensajes
Poder de Credibilidad: 19
karlggest está en el buen camino
Gestión simple de permisos (I)

El objetivo del presente documento es cubrir un poco la gestión de permisos de acceso en un sistema GNU/Linux(1) en modo texto (en konsole), excediendo el hacerlo en modo gráfico el ámbito del mismo. Simple significa que trataremos los aspectos más generales. El sistema de permisos de Unix es en origen simple, pero potente.

Los usuarios requieren al menos el conocimiento somero del trabajo en modo texto (con shell bash), comandos como df, mount, fdisk, etc., archivos de configuración, variables de entorno, la creación y montaje de particiones y el archivo /etc/fstab.

Como siempre, se agradecen comentarios, críticas o valoraciones. En particular, agradecer a Ivan de Leon su tiempo, crítica y sus consejos.

Por la extensión del tema a tratar, en lo sucesivo iré editando este post para añadir las cuestiones pertinentes, incorporando ya los comentarios que se realicen.


El documento consta de dos partes: "Gestión simple de permisos (I)" y "Gestión simple de permisos (y II)"

0. Axiomática

1. Cuanto más se restrinja qué usuarios pueden hacer qué menos probabilidades habrá de que alguien rompa algo.
2. Ni siquiera los administradores experimentados están a salvo de meter la pata y cargarse el sistema. Los que no somos administradores experimentados, por tanto, tenemos más peligro que una excursión de ESO en un polvorín.
3. Cualquier comando mal usado es peligroso. Cualquier comando mal usado por el administrador(2) es muy peligroso. Las opciones "recursivo" y "forzar sin preguntar" son tan cómodas como peligrosas.
4. Antes de usar un comando, léase la mayor cantidad de información sobre el mismo posible. Y trátese siempre de ejecutarlo como usuario no adminstrador.
5. El análisis de las necesidades de seguridad de un sistema dado excede con mucho el ámbito de este documento. Así, en el mismo sólo podrá encontrarse una descripción somera de las herramientas y posibilidades de la gestión de permisos.


1. Los permisos de usuario


En un sistema GNU/Linux existen tres tipos de permisos(3): lectura, escritura y ejecución, simbolizados respectivamente con las letras r (Read), w (Write) y x (eXecution).

En un archivo de texto, el significado de los mismos es obvio: si se activa el permiso r se podrá leer el contenido del mismo, si se activa w se podrá modificar y si se activa x se podrá ejecutar (siempre que sea un script o un ejecutable binario(4)).
Código:
mkdir prueba
karl@KARL-PC:~> cd prueba
karl@KARL-PC:~/prueba> touch archivo.txt
karl@KARL-PC:~/prueba> ls -l
total 0
-rw-r--r-- 1 karl users 0 dic 30 08:35 archivo.txt
karl@KARL-PC:~/prueba>
En este caso, podemos ver las propiedades de archivo.txt en las diez primeras letras de la salida de ls -l. La primera letra (en este caso, un guión) indica qué tipo de archivo es: un archivo regular, un directorio, un enlace a archivo, un dispositivo de bloques, etc. Las siguientes 9 letras son los permisos de dicho archivo, agrupados en tres grupos: las primeras tres para el usuario (User), las siguientes tres para el grupo al que pertenece el usuario (Group) y las siguientes tres para cualquier otro usuario del sistema (Other). En ese contexto, All (a) hace referencia a "todos los usuarios". Podemos ver que archivo.txt tiene permisos de lectura y modificación para el usuario, de lectura para el grupo y de lectura también para los demás. Probemos a modificar el archivo:
Código:
 echo "modificar archivo" >> archivo.txt
karl@KARL-PC:~/prueba> cat archivo.txt
modificar archivo
karl@KARL-PC:~/prueba>
Esto es lo esperable. Modificamos el archivo así que el contenido del mismo se actualiza como nosotros queríamos.

Lo dicho para los archivos rige también para los directorios:
Código:
karl@KARL-PC:~> ls -l
drwxr-xr-x 2 karl users    24 dic 30 08:35 prueba
Ahora las cuestiones cambian ligeramente. El permiso de lectura sigue significando lo mismo, pero los demás no. Ahora Escritura es la capacidad de modificar el directorio (incluyendo eliminarlo, modificarlo y por supuesto, añadirle archivos dentro de él), mientras que Ejecución es la capacidad de acceder al mismo.

Para modificar estas propiedades, se usa el comando chmod (cambiar modo). Véase
Código:
man chmod
para aprender algo sobre él. En general la sintaxis será
Cita:
chmod permisos archivo(s)
Los permisos pueden fijarse en modo octal o bien añadirse y quitarse sobre los existentes. Por ejemplo, crearemos otro archivo (archivo2.txt) y le asignaremos propiedades de escritura para cualquier usuario:
Código:
karl@KARL-PC:~/prueba> touch archivo2.txt
karl@KARL-PC:~/prueba> chmod a+w archivo2.txt
karl@KARL-PC:~/prueba> ls -l
total 4
-rw-rw-rw- 1 karl users  0 dic 30 08:48 archivo2.txt
-rw-r--r-- 1 karl users 18 dic 30 08:39 archivo.txt
karl@KARL-PC:~/prueba>
Nótese que en cada grupito de tres letras está activada la letra w. Ahora cualquier usuario del sistema podrá modificar (e incluso eliminar) archivo2.txt.

Código:
su
Contraseña:
KARL-PC:/home/karl/prueba # useradd patoso
KARL-PC:/home/karl/prueba # passwd patoso
Changing password for patoso.
Nueva contraseña:
Vuelva a introducir la nueva contraseña:
Contraseña cambiada.
KARL-PC:/home/karl/prueba # exit
exit
karl@KARL-PC:~/prueba> su patoso
Contraseña:
patoso@KARL-PC:/home/karl/prueba> echo "modifica otra vez archivo.txt" >> archivo.txt
bash: archivo.txt: Permiso denegado
patoso@KARL-PC:/home/karl/prueba> echo "modifica archivo2.txt" >> archivo2.txt
patoso@KARL-PC:/home/karl/prueba> cat archivo2.txt
modifica archivo2.txt
patoso@KARL-PC:/home/karl/prueba> exit
exit
Vemos aquí que al registrarnos como el usuario "patoso", si intentamos modificar el contenido de archivo.txt el sistema no nos lo permite (sólo el usuario propietario puede hacerlo), mientras que si modificamos archivo2.txt funciona sin problemas.
Código:
karl@KARL-PC:~/prueba> su patoso
Contraseña:
patoso@KARL-PC:/home/karl/prueba> exit
exit
karl@KARL-PC:~/prueba> chmod a-w archivo2.txt
karl@KARL-PC:~/prueba> su patoso
Contraseña:
patoso@KARL-PC:/home/karl/prueba> ls -l
total 8
-r--r--r-- 1 karl users 22 dic 30 08:51 archivo2.txt
-rw-r--r-- 1 karl users 18 dic 30 08:39 archivo.txt
patoso@KARL-PC:/home/karl/prueba> rm archivo2.txt
rm: ¿borrar el fichero regular «archivo2.txt»  protegido contra escritura? (s/n) s
rm: no se puede borrar «archivo2.txt»: Permiso denegado
patoso@KARL-PC:/home/karl/prueba>
Aquí podemos ver que si se elimina la propiedad de escritura para todos los usuarios el archivo deja de ser eliminable. patoso no puede borrarlo, ¿y karl?
Código:
patoso@KARL-PC:/home/karl/prueba> exit
exit
karl@KARL-PC:~/prueba> rm archivo2.txt
rm: ¿borrar el fichero regular «archivo2.txt»  protegido contra escritura? (s/n) s
karl@KARL-PC:~/prueba> ls -l
total 4
-rw-r--r-- 1 karl users 18 dic 30 08:39 archivo.txt
karl@KARL-PC:~/prueba>
Veamos ahora la cuestión de escritura en directorios.
Código:
karl@KARL-PC:~/prueba> su patoso
Contraseña:
patoso@KARL-PC:/home/karl/prueba> cd ..
patoso@KARL-PC:/home/karl> rm -rf prueba
rm: no se puede borrar «prueba/archivo.txt»: Permiso denegado
patoso@KARL-PC:/home/karl> exit
exit
karl@KARL-PC:~/prueba> cd ..
karl@KARL-PC:~> chmod a+w prueba
karl@KARL-PC:~> su patoso
Contraseña:
patoso@KARL-PC:/home/karl> rm -rf prueba
rm: no se puede borrar el directorio «prueba»: Permiso denegado
patoso@KARL-PC:/home/karl>
Código:
patoso@KARL-PC:/home/karl> rm -rf prueba
rm: no se puede borrar el directorio «prueba»: Permiso denegado
patoso@KARL-PC:/home/karl> ls -l
drwxrwxrwx 2 karl users     6 dic 30 08:58 prueba
patoso@KARL-PC:/home/karl> ls prueba
patoso@KARL-PC:/home/karl>
Vemos que si bien prueba no puede ser eliminado por patoso, el contenido del mismo sí ha sido borrado. ¿Por qué no se puede eliminar prueba? Muy simple, prueba es un directorio que está dentro del directorio de usuario karl. Éste tiene las propiedades adecuadas para karl, lo que incluye no poder ser modificable por otros usuarios. Para poder eliminar prueba, habría que activar el permiso de escritura en /home/karl para el grupo 'users' o para todos los usuarios.

Ha de advertirse que en este ejemplo, patoso es un usuario del mismo grupo que karl (users). Esto no tiene porqué ser así.

Bien, si quitamos el permiso de lectura a un directorio, el mismo podrá ser listado, pero no así su contenido. Pero esto no quiere decir que no pueda accederse al mismo, sólo que no puede leerse su contenido
Código:
karl@KARL-PC:~> ls prueba/
karl@KARL-PC:~> chmod a-r prueba
karl@KARL-PC:~> touch prueba/archivo.txt
karl@KARL-PC:~> echo "modificar archivo.txt" >> prueba/archivo.txt
karl@KARL-PC:~> cat prueba/archivo.txt
modificar archivo.txt
karl@KARL-PC:~> ls prueba
ls: no se puede abrir el directorio prueba: Permiso denegado
karl@KARL-PC:~> cd prueba
karl@KARL-PC:~/prueba> ls
ls: no se puede abrir el directorio .: Permiso denegado
karl@KARL-PC:~/prueba> touch hola.mundo
karl@KARL-PC:~/prueba> ls
ls: no se puede abrir el directorio .: Permiso denegado
karl@KARL-PC:~/prueba>  chmod a+r ../prueba
karl@KARL-PC:~/prueba> ls
archivo.txt  hola.mundo
karl@KARL-PC:~/prueba>
¿Sorprendidos? Recuérdese que sólo el directorio prueba tiene suspendido el permiso de lectura, no el de modificación.

Finalmente, consideremos el permiso de acceso a directorio (la propiedad de ejecución):
Código:
karl@KARL-PC:~> chmod a-x prueba/
karl@KARL-PC:~> ls prueba
ls: no se puede acceder a prueba/archivo.txt: Permiso denegado
ls: no se puede acceder a prueba/hola.mundo: Permiso denegado
archivo.txt  hola.mundo
karl@KARL-PC:~> cat prueba/archivo.txt
cat: prueba/archivo.txt: Permiso denegado
karl@KARL-PC:~>
Bien, esto es una explicación (espero) sencilla del funcionamiento básico de estas propiedades. En lo sucesivo, abordaremos el uso de máscaras (umask), el montaje de particiones en modo "sólo lectura" y otras cuestiones de interés.

2. Máscaras
La máscara define los permisos que se asignan a archivos y directorios de nueva creación. Para ello se hace uso del comando 'umask' (man umask).
Código:
karl@KARL-PC:~> umask
0022
karl@KARL-PC:~> umask -S
u=rwx,g=rx,o=rx
karl@KARL-PC:~>
umask muestra la máscara asignada actualmente. Si se provee un número octal, se modifica la máscara para ese número octal. La opción -S muestra los permisos en la misma forma que chmod (rwx).

Los valores octales de la máscara (lo mismo rige para el uso de chmod) son los siguientes: 1 para lectura, 2 para escritura, 3 lectura + escritura, 4 para ejecución, 5 para ejecución+lectura, 6 ejecución+escritura y 7 para ejecución+lectura+escritura. Básicamente, al crear los permisos de un archivo, se le resta a 777 (lectura+escritura+ejecución para todos) el valor de la máscara. Así, en 022 le restamos 0 a la propiedad para usuario (7-0=7), 2 para el grupo (7-2=5 ->ejecución + lectura) y 2 también para Otros (7-2=5).

En los archivos, por defecto se omitirá la propiedad "ejecución", pero en los directorios no, ya que es la que permite el acceso a los mismos.
Código:
karl@KARL-PC:~/prueba> umask 023
karl@KARL-PC:~/prueba> umask -S
u=rwx,g=rx,o=r
karl@KARL-PC:~/prueba> mkdir otrodir
karl@KARL-PC:~/prueba> ls -l
total 4
-rw-r--r-- 1 karl users 22 dic 30 09:07 archivo.txt
-rw-rw-rw- 1 karl users  0 dic 30 17:25 hola2.txt
---------- 1 karl users  0 dic 30 17:26 hola3.txt
-rw-rw-rw- 1 karl users  0 dic 30 17:28 hola4.txt
-rw-r--r-- 1 karl users  0 dic 30 09:09 hola.mundo
-rw-r--r-- 1 karl users  0 dic 30 17:24 hola.txt
-rw------- 1 karl users  0 dic 30 17:32 novo.txt
drwxr-xr-- 2 karl users  6 dic 30 17:38 otrodir
karl@KARL-PC:~/prueba>
En un sistema robusto, puede que debamos analizar la conveniencia de que la máscara por defecto excluya a usuarios distintos del grupo del usuario, por ejemplo. Así, debe considerarse la conveniencia de que un usuario tenga una máscara tal como 027 (sin permisos de modificación para el grupo y sin permisos de lectura, modificación ni ejecución para los demás.


-------------------------------------------------
Registro:
1ª edición: 9:20 h. del 30/12/2007
2ª edición: 17:14 h. del 30/12/2007
* matiz en permiso de escritura para un directorio.
* sección 0. Axiomática
* sección 2. Máscaras
3ª edición: 16:18 h. del 02/01/2008
* sección 3.1
* sección 3.2
4º edición: 00:04 h. del 04/01/2008
*1ª Revisión íntegra
------------------------------------------------
(1) Lo que es lo mismo que decir que, con pocas modificaciones, cualquier "Unix-like".
(2) El usuario llamado root (en inglés, claro!! XD). Usaré el término en castellano porque creo que es mejor usarlo en castellano, y por el camino evitaremos ambigüedades con la raíz del sistema / (root).
(3)No confundir propiedades o permisos con atributos (man attr).
(4) En lugar de la extensión, como en los sistemas DOS y compatibles (incluido Windows), en los sistemas Unix e "Unix-like" lo que define el tipo de archivo es su contenido. Un ejecutable sólo será ejecutado si tiene la propiedad de ejecución válida para el usuario en cuestión y si contiene código de shell-script o binario. (Ver man file)
__________________
http://sementedotempo.blogspot.com/

-Si lo creen unos pocos, es un delirio; si son muchos los creyentes, es una religión

Última edición por karlggest; 09-ene-2008 a las 02:13
Responder Citando
Los Siguientes 2 Usuarios Han Dado las Gracias a karlggest Por Este Mensaje:
RaulEstela (21-may-2012), yogava9 (08-abr-2012)
  #2  
Antiguo 02-ene-2008, 16:36
Avatar de caligulaelsanto
caligulaelsanto caligulaelsanto está desconectado
Miembro FOROSuSE
 
Fecha de Ingreso: 14-febrero-2007
Ubicación: Buenos Aires
Versión: 42.3 kde
Mensajes: 2.060
Agradecimientos: 223
Agradecido 99 Veces en 87 Mensajes
Poder de Credibilidad: 13
caligulaelsanto está en el buen camino
interesantisimo

gracias karl esta noche me lo estudio


te felicito
Responder Citando
  #3  
Antiguo 04-ene-2008, 02:48
Avatar de caligulaelsanto
caligulaelsanto caligulaelsanto está desconectado
Miembro FOROSuSE
 
Fecha de Ingreso: 14-febrero-2007
Ubicación: Buenos Aires
Versión: 42.3 kde
Mensajes: 2.060
Agradecimientos: 223
Agradecido 99 Veces en 87 Mensajes
Poder de Credibilidad: 13
caligulaelsanto está en el buen camino
Cita:
Iniciado por caligulaelsanto
interesantisimo

gracias karl esta noche me lo estudio


te felicito
editado: 3/1/2008

estimado karl

tal vez tonta la pregunta
home al instalar gnu debe ser puesto como una particion siempre?
o puede agregarse como un directorio mas (carpeta)? en cuyo caso sol otendriamos / y swap

gracias
Responder Citando
  #4  
Antiguo 04-ene-2008, 12:39
Avatar de darkskimmer
darkskimmer darkskimmer está desconectado
Miembro FOROSuSE
 
Fecha de Ingreso: 07-julio-2006
Ubicación: Málaga...por poco tiempo!!
Versión: 11.1
Mensajes: 2.151
Agradecimientos: 0
Agradecido 5 Veces en 5 Mensajes
Poder de Credibilidad: 14
darkskimmer está en el buen camino
Realmente interesante! Muchas gracias por el tutorial!
__________________

How-to VirtualBox <~ Guía sobre VirtualBox
Responder Citando
  #5  
Antiguo 05-ene-2008, 16:03
Avatar de karlggest
karlggest karlggest está desconectado
Moderador
 
Fecha de Ingreso: 07-febrero-2007
Ubicación: Ourense
Versión: Leap 42.3
Mensajes: 8.187
Agradecimientos: 41
Agradecido 1.248 Veces en 919 Mensajes
Poder de Credibilidad: 19
karlggest está en el buen camino
Cita:
Iniciado por caligulaelsanto
editado: 3/1/2008

estimado karl

tal vez tonta la pregunta
home al instalar gnu debe ser puesto como una particion siempre?
o puede agregarse como un directorio mas (carpeta)? en cuyo caso sol otendriamos / y swap

gracias
En rigor, sólo necesitas una partición (swap puede ser un archivo "especial", si bien en comparación con una partición dedicada, no es tan eficiente), que será la raíz del sistema. A partir de ahí, son convencionalismos. Por ejemplo, el opensuse 11 Alpha0 lo instalé "de cualquier manera" con una sóla partición, el 10.2 (que mantengo por si surgiesen problemas de compatibilidad con la 10.3, ya tuve alguno, ya solucionado (ver hilo sobre flash+konqueror) lo tengo en dos particiones (comparte /home con la 10.3) y la 10.3 la tengo en 5 particiones.

Por ejemplo, Suse 9.0 crea un mínimo de 3 particiones, separando una para /boot. Solaris ofrece la posibilidad de crear automáticamente particiones (en su jerga, "slices") para /, /boot, /usr, /var, /tmp y /home independientes.

Uno de los motivos para crear varias particiones será tratado en una de las futuras secciones del documento. Pero deja que te diga una cosilla, que a muchos puede que les sorprenda. En la teoría tú puedes coger tu sistema MS-DOS (digamos Windows XP), crear un directorio llamado Linux e instalar en ese directorio tu sistema Linux, y ejecutarlo ahí. En la práctica puede que sigas necesitando una partición nativa de GNU/Linux, pero no necesariamente. Si lo piensas, es el mismo fundamento de los "Live-CD". Supogo que podría conseguirse instalar de forma física GNU/Linux en FAT (o más laboriosamente, en NTFS), pues sólo necesitas cargar el núcleo en memoria. Luego, el VFS (el sistema de archivos virtual) podría encargarse de todo. Que esto no sea demasiado útil, lo dejo a consideración de cada uno.

Salud!!
__________________
http://sementedotempo.blogspot.com/

-Si lo creen unos pocos, es un delirio; si son muchos los creyentes, es una religión
Responder Citando
Respuesta

Marcadores


(0 miembros y 1 visitantes)
 
Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Gestión simple de permisos (y II) karlggest FAQs, Manuales y Tutoriales 0 07-ene-2008 02:00
Problema con los permisos de /dev/null Salustian Software 0 13-nov-2007 17:32
Permisos Aluxnahual Internet, Redes y Wireless 0 03-abr-2007 10:12
Permisos de escritura kernel merovingio Software 5 20-jun-2006 00:22
KDE 3.4 y problemas de permisos en archivos chuspi Escritorios: KDE, Gnome, otros... 4 01-mar-2006 10:41



Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook


La franja horaria es GMT +2. Ahora son las 04:50.
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.

Esta página está bajo una licencia de Creative Commons, salvo que no se indique lo contrario.
Creative Commons License

Valid CSS!

Diseño por:Designed by: vbdesigns.devbdesigns.de 
Contáctenos - ForoSUSE - Archivo - Declaración de Privacidad - Arriba