09-10-2024, 06:53 PM
(This post was last modified: 18-10-2024, 11:51 PM by Ganekogorta.)
Hola
Este post es una secuela del anterior QPKG para carpeta inmutables WORM pero con alguna variante.
La primera y mas sencilla es el uso de un log. Para ello se crea un archivo llamado "worm.log" en la carpeta "Public"
En el se anotan las distintas actividades que se hacen al instalar, activar y desactivar el qpkg.
En el post de usuario sudoer sin terner visudo en QTS se indicaba como hacer que no pida clave, pero esto lo hace para cualquier comando.
Si queremos afinar mas y no abrir tantas puertas al campo, podemos hacerlo sólo con los comandos que van a ser usados por WORM 1.1.
Para ello hemos de tener estos comandos en el autorun.sh
Para aquellos que tengan interés, podemos hacerlo por scripts individuales.
El de activar la inmutabilidad sería algo como esto:
El de desactivar sería el siguiente:
Los qpkg ubicados en Mega son los siguientes:
Añado una versión con una pequeña mejora respecto del anterior.
Esta consisten en que al activar la inmutabilidad, también lo hacemos al archivo worm.cfg.
Con ello evitamos posibles desastres si hay un borrado accidental del mismo durante la habilitación y NO sabemos cuales son las carpetas protegidas.
La instalación puede hacerse actualizando sobre el paquete anterior.
Los enlaces en Mega son los siguientes:
Este post es una secuela del anterior QPKG para carpeta inmutables WORM pero con alguna variante.
La primera y mas sencilla es el uso de un log. Para ello se crea un archivo llamado "worm.log" en la carpeta "Public"
En el se anotan las distintas actividades que se hacen al instalar, activar y desactivar el qpkg.
En el post de usuario sudoer sin terner visudo en QTS se indicaba como hacer que no pida clave, pero esto lo hace para cualquier comando.
Si queremos afinar mas y no abrir tantas puertas al campo, podemos hacerlo sólo con los comandos que van a ser usados por WORM 1.1.
Para ello hemos de tener estos comandos en el autorun.sh
Code:
#agrega a miusuario como sudoers
mkdir /usr/etc/sudoers.d
echo "miusuario ALL=(ALL) NOPASSWD: /usr/bin/passwd, /usr/local/bin/usermod, /bin/cp, /bin/diff, /bin/mkdir, /bin/chmod, /bin/chattr, /bin/awk" > /usr/etc/sudoers.d/miusuario
Para aquellos que tengan interés, podemos hacerlo por scripts individuales.
El de activar la inmutabilidad sería algo como esto:
Code:
#!/bin/sh
sistemaQTS=`getcfg SHARE_DEF defVolMP -f /etc/config/def_share.info`
#ruta defecto donde dejo la cfg
valoresfile=$sistemaQTS/Public/worm.cfg
valoresfile1=$sistemaQTS/Public/worm.log
DIA=`date +"%Y/%m/%d"`
# requisito previo, el usuario de la nas ha de ser sudoers
# guardo valor de estado de activacion del usuario admin para dejarlo activo si es que ya lo estaba
estado=$(sudo passwd -S admin | awk '{print $2}' )
# si no existe larchivo de worm.log, lo creo
if [ ! -f $valoresfile1 ]; then
touch $valoresfile1
chmod 777 $valoresfile1
HORA=`date +"%H:%M:%S"`
echo "$DIA $HORA creo archivo worm.log" >> $valoresfile1
fi
# escribo en el worm.log
echo "$DIA $HORA inicio aplicacion worm" >> $valoresfile1
# si el estado original no era activo, lo activo
if [ ! $estado == 'P' ]; then
#activo al usuario admin
sudo usermod -U admin
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA activo al usuario admin" >> $valoresfile1
fi
# si no existe la primera configuracion, copio la vacia a la carpeta Public.
if [ ! -f $valoresfile ]; then
sudo cp $sistemaQTS/.qpkg/$QPKG_NAME/worm.cfg $sistemaQTS/Public/worm.cfg
chmod 777 $sistemaQTS/Public/worm.cfg
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA copio archivo de configuracion de directorios vacio" >> $valoresfile1
else
#compruebo si la cfg ha sido cambiada comparando archivo con el origianl del qpkg
if sudo diff -q $sistemaQTS/.qpkg/$QPKG_NAME/worm.cfg $sistemaQTS/Public/worm.cfg; then
#Son iguales y no hay rutas
echo "Son iguales y NO ejecuto nada"HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA archvivo de configuracion sigue vacio, NO ejecuto nada" >> $valoresfile1
else
# existe el archivo de cfg cambiado, leo el contenido para ver cuales son las rutas inmutables
while IFS= read -r line; do
# si no existe la carpeta, la creo
if [ ! -d $line ]; then
#si no hay una ruta, la creo
sudo mkdir $line
sudo chmod 777 $line
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA creo carpeta $line" >> $valoresfile1
fi
# la hago inmutable
sudo chattr -R +i $line
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA activo inmutabilidad a $line" >> $valoresfile1
done < $valoresfile
fi
fi
# si el estado original del usuario admin era activo, lo dejo activo y en caso contrario los desactivo
if [ ! $estado == 'P' ]; then
#desactivo al usuario admin
sudo usermod -L admin
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA desactivo usuario admin" >> $valoresfile1
fi
El de desactivar sería el siguiente:
Code:
#!/bin/sh
sistemaQTS=`getcfg SHARE_DEF defVolMP -f /etc/config/def_share.info`
#ruta defecto donde dejo la cfg
valoresfile=$sistemaQTS/Public/worm.cfg
valoresfile1=$sistemaQTS/Public/worm.log
DIA=`date +"%Y/%m/%d"`
# requisito previo, el usuario de la nas ha de ser sudoers
#guardo valor de estado de activacion del usuario admin para dejarlo activo si es que ya lo estaba
estado=$(sudo passwd -S admin | awk '{print $2}' )
# escribo en el worm.log
echo "$DIA $HORA detengo aplicacion worm" >> $valoresfile1
# si el estado original no era activo, lo activo
if [ ! $estado == 'P' ]; then
#activo al usuario admin
sudo usermod -U admin
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA activo usuario admin" >> $valoresfile1
fi
# quita la inmutabilidad en las carpetas
while IFS= read -r line; do
sudo chattr -R -i $line
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA desactivo inmutabilidad a $line" >> $valoresfile1
done < $valoresfile
# si el estado original era activo, lo dejo activo
if [ ! $estado == 'P' ]; then
#desactivo al usuario admin
sudo usermod -L admin
HORA=`date +"%H:%M:%S"`
# escribo en el worm.log
echo "$DIA $HORA desactivo al usuario admin" >> $valoresfile1
fi
Los qpkg ubicados en Mega son los siguientes:
- worm_1.1_arm_64.qpkg
- worm_1.1_arm-x19.qpkg
- worm_1.1_arm-x31.qpkg
- worm_1.1_arm-x41.qpkg
- worm_1.1_x86_64.qpkg
- worm_1.1_x86_ce53xx.qpkg
Añado una versión con una pequeña mejora respecto del anterior.
Esta consisten en que al activar la inmutabilidad, también lo hacemos al archivo worm.cfg.
Con ello evitamos posibles desastres si hay un borrado accidental del mismo durante la habilitación y NO sabemos cuales son las carpetas protegidas.
La instalación puede hacerse actualizando sobre el paquete anterior.
Los enlaces en Mega son los siguientes:
- worm_1.2_arm_64.qpkg[/url]
- [url=https://mega.nz/file/UswUyBJK#rAnALyAMx6i2vlwVWm5q4JIpl3Q5WUcADMws7NIvNGE]worm_1.2_arm-x19.qpkg
- worm_1.2_arm-x31.qpkg
- worm_1.2_arm-x41.qpkg
- worm_1.2_x86_64.qpkg
- worm_1.2_x86_ce53xx.qpkg
Un saludo
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
Agur eta ondo ibili
Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η