Propiedades y permisos

Amplify’d from www.linux-cd.com.ar

13.14. Propiedades y permisos

Al principio de este capítulo ha recibido el siguiente mensaje,
cuando intentó cambiarse al directorio login de root:

cd /root
bash: /root: Permission denied

Esto es un ejemplo de las características de seguridad de Linux.
Linux, como UNIX, es un sistema multiusuario y los permisos para tener acceso a
los archivos presentan una solución para proteger la integridad del
sistema de cualquier daño.

Una manera de tener acceso cuando se le deniega el permiso es ejecutando
su a root, como vió anteriormente. Esto es porque quien
conoce la contraseña de root tiene acceso completo al sistema.

Pero cambiándose al superusuario no siempre es lo más conveniente
o recomendado, pues es posible cometer errores y alterar archivos de configuración
importantes como superusuario.

Todos los archivos y los directorios pertenecen a la persona que los ha
creado. Hemos creado el archivo sneakers.txt (vea la Sección 13.9.1) en su directorio login, por ello
sneakers.txt le pertenece.

Esto quiere decir que podemos especificar quién puede leer o
escribir un archivo. Además en el caso de que un archivo sea ejecutable es
posible especificar quién tiene el derecho a ejecutarlo.

Lectura, escritura, y ejecución son las tres configuraciones principales
de permisos. Como cada usuario del sistema está incluído en un grupo,
podemos también especificar qué grupos pueden leer, escribir o ejecutar un archivo.

Tome como ejemplo el archivo sneakers.txt con el comando
ls utilizando la opción -l
(consulte la Figura 13-11).

Hay mucha información aquí. Con esta opción se visualizan muchos de los
detalles. Podemos ver quién puede leer (r) y escribir (w) el archivo, el creador del
archivo (sam) y a qué grupo de usuarios pertenece (sam). Recuerde que por defecto, el
nombre de su grupo es el mismo que su nombre de login.

Figura 13-11. Permisos para sneakers.txt

Entre el nombre del grupo y el nombre del archivo hay informaciones
relativas al tamaño del archivo, a la fecha y a la hora de creación.

La primera columna muestra los permisos actuales; tiene diez espacios.
El primer espacio representa el tipo de archivo. Los nueve restantes son,
de hecho, tres grupos de permisos de tres categorías de usuarios diferentes.

Por ejemplo:

-rw-rw-r--

Estos tres grupos se refieren respectivamente al propietario del
archivo, al grupo al que pertenece el archivo y «otros», o sea todos los demás usuarios
del sistema.

-    (rw-)   (rw-)   (r--) 1 sam sam 
| | | |
type owner group others

El primer elemento, que especifica el tipo de archivo, puede tener uno
de los siguientes valores:

  • d — un directorio

  • -(dash) — un archivo normal
    (más que un directorio o enlace)

  • l — un enlace
    simbólico a otro programa o archivo en algún otro lugar del sistema.

Después del primer carácter, en cada uno de los tres grupos que
siguen es posible especificar uno entre los siguientes valores:

  • r — indica que el archivo se
    puede leer.

  • w — indica que el archivo se
    puede escribir

  • x — indica que el archivo se
    puede ejecutar (si es un programa)

Cuando aparece un guión en propietario, grupo u otros, quiere
decir que no se ha concedido un permiso en particular. Mire otra vez la primera
columna del archivo sneakers.txt e identifique sus permisos.

ls -l sneakers.txt
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt

El propietario del archivo, (en este caso, sam) tiene los permisos para
escribir y leer el archivo. El grupo, sam, tiene los permisos
para escribir y leer sneakers.txt. El archivo no es
un programa por lo que ni el propietario (owner) ni el group tienen permiso
para ejecutarlo.

13.14.1. El comando chmod

Puede utilizar el comando chmod para cambiar
los permisos en sneakers.txt.

En el archivo original están presentes los siguientes permisos:

-rw-rw-r--    1 sam sam     150 Mar 19 08:08 sneakers.txt

Si es el propietario del archivo o está registrado en la
cuenta de root, puede cambiar cualquier permiso para el propietario, grupo u
otros.

Por el momento, el propietario y el grupo pueden leer y escribir el
archivo. Cualquiera fuera del grupo, sólo puede leer el archivo
(r--).

Atención Atención
 

Recuerde que los permisos de los archivos son muy importantes para
la seguridad. Cada vez que permite a todo el mundo leer, escribir o
ejecutar un archivo, está arriesgando la integridad del sistema. Como
regla general, le aconsejamos que sólo otorgue permisos de lectura y escritura a
aquellos que realmente los necesiten.

En el siguiente ejemplo, suponga que quiere conceder a todo el mundo el
permiso de escritura en un archivo, de forma que puedan leerlo, escribir en
él y grabarlo. Esto quiere decir que tendrá que cambiar la sección «otros» en los
permisos de archivos.

De un vistazo al archivo primero. En el intérprete de comandos de la shell,
escriba:

ls -l sneakers.txt

El comando previo visualiza la información de este archivo:

-rw-rw-r--    1 sam sam     150 Mar 19 08:08 sneakers.txt

Teclee lo siguiente:

chmod o+w sneakers.txt

El comando o+w le dice al sistema que desea dar a
«otros» el permiso para escribir en el archivo sneakers.txt.
Para controlar los resultados, puede nuevamente listar los
detalles relativos al archivo:

-rw-rw-rw-    1 sam sam     150 Mar 19 08:08 sneakers.txt

Ahora, cualquiera puede leer o escribir el archivo

Para quitar los permisos de lectura y escritura
del archivo sneakers.txt use el comando chmod.

chmod go-rw sneakers.txt

Al escribir go-rw, le está diciendo al sistema que quite
los permisos de lectura y escritura para el grupo y para otros del archivo
sneakers.txt.

El resultado sería similar a:

-rw-------    1 sam sam    150 Mar 19 08:08 sneakers.txt

Piense que estas configuraciones usando chmod,
es como un tipo de taquigrafía para cambiar los privilegios de acceso,
porque todo lo que debe hacer realmente es recordar unos pocos símbolos
y letras para usar con chmod.

A continuación tiene una lista de la taquigrafía
utilizada y sus correspondencias:

Identidades

u — es el usuario propietario del
archivo

g — es el grupo al que el usuario pertenece

o — otros, el resto del mundo (ni el propietario,
ni su grupo)

a — todo el mundo
(u, g, y
o)

Permisos

r — acceso a lectura

w — acceso a escritura

x — acceso de ejecución

Acciones

+ — añadir los permisos

- — elimina los permisos

= — hace que sea el único permiso

¿Quiere comprobar sus habilidades de permisos? Suprima todos
los permisos de sneakers.txt — para todo el mundo.

chmod a-rwx sneakers.txt

Ahora vea si puede leer el archivo con el comando cat
sneakers.txt
, que debería devolver lo siguiente:

cat: sneakers.txt: Permission denied

¡Funciona! al remover todos los permisos, incluyendo
los suyos, ha bloqueado el archivo. No obstante, como el archivo le pertenece, siempre
puede cambiar sus permisos con el comando siguiente:

chmod u+rw sneakers.txt

Use el comando cat sneakers.txt para verificar que usted
como propietario del archivo, lo puede leer otra vez.

He aquí algunos ejemplos comunes de configuración que se pueden realizar con
chmod:

  • g+w — añade el acceso de escritura para el grupo

  • o-rwx — eliminar los permisos para los
    demás

  • a+rw — permite a cualquiera leer y
    escribir en el archivo

  • ug+r — permitir al propietario o al
    grupo leer el archivo

  • g=rx — concede al grupo la lectura y
    la ejecución (no la escritura)

Añadiendo la opción -R puede cambiar los
permisos para el árbol entero del directorio donde se encuentra.

De todas formas puesto que no podemos «ejecutar» un
directorio como si fuera una aplicación; cuando añada o
elimine los permisos de ejecución para un directorio, estará concediendo (o
denegando) los permisos de búsqueda en el interior de este directorio

Si no le permite a otros tener permiso de ejecución sobre
tigger, no importa quién tenga permiso de lectura
o escritura. Nadie podrá accesar el directorio a menos que conozca exactamente
el nombre del archivo.

Por ejemplo, escriba:

chmod a-x tigger

para quitarle a todos los permisos de ejecución.

Esto es lo que ocurre cuando intenta de ejecutar cd en
tigger:

bash: tigger: Permission denied

Luego, restaure su propio acceso y el del grupo:

chmod ug+x tigger

Ahora, si verifica su trabajo usando ls -l verá que solamente
otros tendrán el acceso denegado para el directorio
tigger.

13.14.2. Cambiar los permisos usando números

¿Se acuerda de cuando hablábamos del modo abreviado
(taquigráfico) para utilizar
chmod? Aquí tiene otra manera de cambiar los permisos;
que quizás en principio podrá parecerle algo más compleja.

Vuelva a los permisos originales de
sneakers.txt:

-rw-rw-r--    1 sam sam     150 Mar 19 08:08 sneakers.txt

Cada configuración del permiso puede estar representada por
un valor numérico:

  • r = 4

  • w = 2

  • x = 1

  • – = 0

Si se suman estos valores, el resultado se utiliza para especificar
los permisos. Por ejemplo, si quiere leer y escribir permisos,
tendrá un valor de 6; 4 (leer)+ 2 (escribir)= 6.

Para el archivo sneakers.txt, aquí tiene un ejemplo
de los permisos codificados en números:

 -  (rw-)   (rw-)  (r--)
| | |
4+2+0 4+2+0 4+0+0

El total para los usuarios es seis, el total para los grupos es seis
y el total para para los demás es cuatro. El código de permisos será
664.

Si quiere cambiar el archivo sneakers.txt para que aquellos
en su grupo no tengan acceso a escritura, pero si lo puedan leer, quite el acceso
eliminando dos (2) de ese grupo de números.

Los valores numéricos serán seis, cuatro y cuatro (644).

Para llevar a cabo los nuevos valores, escriba:

chmod 644 sneakers.txt

Para controlar los cambios, teclee:

ls -l sneakers.txt

El resultado debería ser:

-rw-r--r--    1 sam sam     150 Mar 19 08:08 sneakers.txt

Ningún usuario, a parte del propietario, puede escribir el
archivo (ni el grupo ni otros)
sneakers.txt. Para reestablecer los derechos de
escritura del grupo en el archivo, puede añadir el valor de w (2)
al segundo grupo de permisos.

chmod 664 sneakers.txt
Aviso Aviso
 

Los permisos a 666 (cualquiera puede leer o escribir) o 777 (cualquiera
puede leer, escribir y ejecutar) dan la posibilidad a todos de leer
o escribir un archivo o un directorio. Estos permisos pueden dañar los archivos,
por ello utilizarlos no es buena elección.

Aquí tiene una lista de algunos valores numéricos y de
los significados relativos:

  • -rw------- (600) — Sólo el
    propietario tiene el derecho de leer y escribir.

  • -rw-r--r-- (644) — Sólo el propietario
    tiene los permisos de leer y escribir; el grupo y los demás sólo pueden leer.

  • -rwx------ (700) — Sólo
    el propietario tiene los derechos de leer, escribir y ejecutar el archivo.

  • -rwxr-xr-x (755) — El
    propietario tiene los derechos de leer, escribir y ejecutar; el grupo y los
    demás sólo pueden leer y ejecutar.

  • -rwx--x--x (711) — El propietario
    tiene los derechos de lectura, escritura y ejecución; el grupo y los demás
    sólo pueden ejecutar.

  • -rw-rw-rw- (666) — Todo el
    mundo puede leer y escribir en el archivo. ¡No es una buena elección!

  • -rwxrwxrwx (777) — Todo el
    mundo puede leer, escribir y ejecutar. ¡Otra mala elección!

Aquí tiene un conjunto de valores para los directorios:

  • drwx------ (700) — Sólo el
    propietario puede leer y escribir en este directorio.

  • drwxr-xr-x (755) — Cualquiera
    puede leer el directorio, pero su contenido lo puede cambiar
    sólo el usuario

Encadenar comandos múltiples

Read more at www.linux-cd.com.ar

 

Posted in:

Deja un comentario

Tu dirección de correo electrónico no será publicada.