Administración de Sistemas (unix - secuencia de comandos)

Supongamos la ejecución de los siguientes comandos:

pepe# id

uid=510(pep) gid=513(pepe) groups=513(pepe), 506(vacaciones), 510(hoteles)

pepe# umask

0123

pepe# touch a.txt

pepe# ls -l

-rw-r-xr-- 1 pepe vacaciones 0 may 23 19:24 a.txt

pepe# mkdir bb

pepe# ls -l | grep bb

drwxrwsr-- 2 pepe vacaciones 4096 may 23 19:26 bb

pepe# cd bb

pepe# ls -l

total 0

Buscar posibles errores y justificarlos.

Creo que tengo la respuesta correcta, que es en cuanto a los permisos tanto del archivo txt como del directorio, ya que no corresponden a la máscara devuelta por umask. Eso y que el directorio bb ocupa 4096 y debería de ocupar 0.

De antemano muchas gracias.

Respuesta
1

Linux, soy un usuario corriente ocasional de Linux.

He logrado reproducir tu configuración salvo el uid. A mi me sale

pepe# id
uid=510(pepe) gid=513(pepe) groups=513(pepe), 506(vacaciones), 510(hoteles)

¿A lo mejor tuviste una errata al escribirlo? A mi no me sale el pep, si el usuario es pepe el uid me sale pepe

Al margen de eso.

El umask que te dice no es el habitual, a mi me sale

pepe# umask
0002

Eso significa que en el fichero

/etc/bash.bashrc

o

/etc/profile

Tienes la linea

Umask 0123

La añado para que salga lo mismo.

Ahora me dice que no me deja hacer touch

Tendré que reiniciar linux para entrar como usuario pepe ya que estoy trabajando como mi usuario en la ventana gráfica y como pepe en modo consola en la terminal 1. A ver si así se soluciona algo. Pero para no perder lo que he escrito lo mando ya.

Si, perdón, fue un error a la hora de copiar el problema.

Aunque no resuelvas el problema, si sabes como funciona el umask me vale, porque he estado leyendo por ahí y no estoy seguro de que sea como he visto.

Yo reproduje la situación una máquina virtual y en cuanto a los permisos del fichero txt no hubo problema pero a la hora de hacer un directorio le asignaba los permisos habituales con la máscara 0022 que es la que por defecto me salía.

Un Saludo y Gracias.

¿Es qué no entiendo cuál es el problema o la pregunta?

A mi lo que me sucede es que puedo crear el fichero a.txt con touch y el directorio bb con mkdir, pero cuando me quiero meter en el directorio con cd bb no me deja.

Lo que he hecho para poder crear el directorio y poder meterme después ha sido dar la orden

Umask 0022

Entonces ya he podido meterme en el directorio y el

Ls -l

Me da

Total 0

La orden umask sirva para dar los permisos a los ficheros que se van a crear.

Aunque tiene 4 cifras la primera debe ser 0 y las otras tres cifras son entre 0 y 7.

Luego en la práctica es un numero octal de 3 cifras y si lo ponenos en binario serían 9 dígitos binarios

aaa aaa aaa

Los primeros tres se refieren al usuario, los tres segundos al grupo y los tres últimos a los otros usarios. Y cada grupo de tres se refiere a los permisos rwx

Dada una máscara m los permisos para los ficheros que se creen despues serán

666 and not m

y para los directorios

777 and not m

Por ejemplo, la mascara 0123

123 = 001 010 011

not 123 = 110 101 100

666 and not 123 = 110 110 110 and 110 101 100 = 110 100 100

777 and not 123 = 111 111 111 and 110 101 100 = 110 101 100

Y para la mácara 0022

022 = 000 010 010

not 022 = 111 101 101

666 and not 022 = 110 110 110 and 111 101 101 = 110 100 100

777 and not 022 = 111 111 111 and 111 101 101 = 111 101 101

Esos son los resultados según la teoría y de ahi tendría que deducirse porque no dejaba entrar en el directorio cuando la máscara era 123. Pero lo que no entiendo yo bien es como funciona eso de los permisos rwx.

La pregunta sería buscar los posibles errores en la secuencia de comandos, si los permisos están mal, o si algún comando no se pudiera realizar, pero con la aclaración del uso de umask me ha servido de mucho.

Muchas gracias.

Se agradece el trabajo que haces. Sigue así.

Me gustaría poder ayudar a la gente con mis conocimientos pero no me veo capaz de resolver los problemas de tantas cosas.

En algún sitio he leído que el calculo se hace con (666 - m) para los ficheros y (777 - m) para los directorios, pero dudo mucho que funcione bien para ficheros cuando la máscara tenga un 7 por ejemplo

666 - 007 = 657 (ojo que era una resta en octal)

666 and (not 007) = 110 110 110 and 111 111 000 = 110 110 000 = 660

Es distinto.

Mientras las cifras de la mascara sean distintas de 7 sirve pero si hay algún 7 no sirve.

Lo que no entendía era lo del permiso x, pensaba que era de borrar, pero he leído que es ejecutar. Y parece ser que ejecutar referido a un directorio es poder meterse en el.

Cuando usábamos la máscara 123 el resultado de los permisos para un directorio era

777 - 123 = 654

En concreto par el usuario es el 6 que es 110 y eso significa que no puede ejecutar el directorio, por eso no podíamos meternos en el.

Mientras que con la máscara 022 queda

777 - 022 = 755

El usuario tiene 7 para sus permisos que es 111 y tiene los tres rwx, puede meterse en el directorio.

Y eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas