Script

Podrías ayudarme con este script, lo que pasa es que me cambia los permisos de todos los archivos aunque no los seleccione del checklist
gracias
#!/bin/bash
if [ ! -f `which gdialog` ]
then
echo "No se ha encontrado gdialog, necesitas gnome-utils"
exit 1
fi
for i in `find /home -perm 777 `
do
opts="$opts ${i} / off"
done
gdialog --title "Su scripthola" --separate-output --checklist "Archivos" 700 100 100 $opts
chance=$(gdialog --title "Permisos" --inputbox "000-777" 100 100 "Introduce el tipo de permiso" 2>&1);
respuesta=$(gdialog --title "Bits adicionales" --inputbox " \n 1.Sticky bit \n 2.Bit SUID \n 3.Bit SGID \n 4.Ninguno" 100 100 "bit adicional" 2>&1)
if [ a$respuesta = a ]
then
exit 1
else
case $respuesta in
1) bitadd=1
;;
2) bitadd=4
;;
3) bitadd=2
;;
4) bitadd=0
;;
esac
fi
chmod $bitadd$chance $opts
exit;

1 Respuesta

Respuesta
1
Lo que ocurre es que el comando "chmod" está colocado de forma incondicional. Es decir, pase lo que pase, el permiso será cambiado, ya que no filtras la condición. Lo primero que debes definir es, bajo cuales condiciones deseas que se cambie la permisología (chmod). Luego sólo debes colocar el comando en la estructura condicional que satisfaga dicha condición; así estarás asegurando que sólo se le cambie de permiso a los archivos correctos.
Prueba moviendo la instrucción. chmod $bitadd$chance $opts a otro lugar del scrip.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas