[Programación] Re: [Programación] Re: [Programació n] mantener permisos, dueño y grupo en una op. de copia en el archivo desti no

J. Mario Oroz programacion@lugro.org.ar
Wed, 09 Mar 2005 09:14:11 -0300


Gracias Gustavo... era lo qe estaba necesitando!, ya que no podia usar 
chown, queria mantener el script simple...
Ahora el el archivo de log original queda con los permisos,dueño y grupo
del propietario sin importar quien corra el script.

una mirada a este link: http://www.tldp.org/LDP/abs/html/io-redirection.html
y queda un poco mas claro, el uso de la redireccion;

$ : > archivo   #esta manera asegura que el script sea portable!

Pero no me queda claro porque mantiene permisos, dueño y
grupo original...

Saludos!
Mario

Gustavo Guillermo Pérez escribió:
> No puedes usar chown ? que cambia los permisos? lo podrías poner justo debajo 
> de /bin/cp -f .... 
> si se puede cambiar el dueño del archivo al hacer > nombrearchivo.
> 
> Hice un experimento recién, yo cada vez que pongo en cero un archivo lo hago 
> con el símbolo ">" sin anteponer ningún comando, el motivo es que si por 
> alguna razón borras ese archivo y creas uno nuevo mientras que el programa 
> que lo está usando lo tiene abierto ese "file descriptor" permanece activo y 
> el log se sigue guardando en el archivo original ya que un archivo de log por 
> lo general se abre en modalidad "append" entonces se guardaría en un archivo 
> borrado y el archivo nuevo permanecería en 0 bytes indefinidamente tu script 
> no borra el archivo está muy bien, pero prueba eso, sin comandos yo me acabo 
> de sacar la duda hice esto como usuario gus:
> # >d
> Después hice esto como usuario root:
> # > /home/gus/d
> Después me volví a gus y vi los permisos
> # ls -l d
> -rw-r--r--  1 gus users 0 mar  3 23:14 d
> #
> Entonces vi que no los cambió, root volvió a poner en 0 bytes el archivo pero 
> siguió perteneciendo a gus, no usé comandos simplemente bash interpretó a ">" 
> como una tubería nula porque nunca hubo alguien que la llenara, y como tal 
> alomejor no tuvo motivo para cambiar los permisos...
> 
> Saludos a ver si te sirve.
> 
> El Martes, 8 de Marzo de 2005 18:38, J. Mario Oroz escribió:
> 
>>Buenas lista!
>>Estoy armando un script que me rota un log en un determinado directorio...
>>si ... ya se que tengo logrotate ... pues lo configure y anda bien...
>>pero al intentarlo hacer a traves de mi script surge lo siguiente duda:
>>
>>como mantengo permisos, dueño y grupo del archivo de destino cuando
>>lo trunco a 0???????
>>
>>prove "cp -f  /dev/null archivo.log"; "cat /dev/null > archivo.log" pero
>>no logro
>>evitar que se modifique el propietario del archivo destino
>>
>>Les cometo que quien corre el script no es dueño del archivo de
>>log pero pertenece al grupo... el tema es que cuando lo trunca se modifica
>>el propietario a quien esta corriendo el script
>>
>>Esta es la funcion que esta en el script y que hace la rotacion:
>>rotarlog ( ) {
>>echo
>>echo " ============================================== "
>>echo " ROTANDO log de la base $1                      "
>>echo
>>ev-rw-r--r--  1 gus users 0 mar  3 23:14 dal "/bin/cp -fv 
> 
> \${HOME_${1}}/${1}.lg \${HOME_${1}}/${1}.lg.1 &&
> 
>>/bin/cp -f
>>/dev/null \${HOME_${1}}/${1}.lg; RETVAL_proada=\$?"
>>echo
>>[ $RETVAL_proada = 0 ] &&  echo " Log ROTADO! " ||  echo " ATENCION: log
>>NO SE
>>PUDO ROTAR !!! "
>>echo " ============================================== "
>>sleep 5s
>>return $RETVAL_proada
>>} # fin rotarlog
>>
>>Si no se entiende tratare de ser mas claro.... gracias!!!!
>>
>>Mario
>>_______________________________________________
>>Programacion mailing list
>>Programacion@lugro.org.ar
>>http://www.lugro.org.ar/mailman/listinfo/programacion
> 
>