[Linux-Biella] Permessi sputtanati in /etc e /bin /dev

Andrea Ferraris andrea.ferraris a gmail.com
Dom 18 Dic 2005 16:39:43 CET


leonardo LeOS buffa ha scritto:
> On Sun, 18 Dec 2005 08:46:40 +0100
> Federico Pistono <fppain a gmail.com> wrote:
> 
> 
>>Come da titolo,
> 
> 
> bravo!
> puoi fare esercizio cosi':
> 
> prendi un altro pc, installi da zero e confronti file per file e dir
> per dir :)

Si puo` automatizzare con una kvtt usb, di dim. suff.
(diciamo almeno 1 GB ;-).
Una volta montata (p.es. sotto /mnt/kvtt_usb) sul PC dove e`
avvenuta l'installazione ex novo, si puo` eseguire su di esso
quanto segue:

#!/bin/bash

function mod_ch2n
{
         if [ "`echo $mod_ext|cut -b 1`" = "r" ]
         then
                 modo=4
         else
                 modo=0
         fi
         if [ "`echo $mod_ext|cut -b 2`" = "w" ]
         then
                 modo=$(( $modo + 2 ))
         fi
         if [ "`echo $mod_ext|cut -b 3`" = "x" ]
         then
                 modo=$(( $modo + 1 ))
         fi

         if [ "`echo $mod_ext|cut -b 4`" = "r" ]
         then
                 modg=4
         else
                 modg=0
         fi
         if [ "`echo $mod_ext|cut -b 5`" = "w" ]
         then
                 modg=$(( $modg + 2 ))
         fi
         if [ "`echo $mod_ext|cut -b 6`" = "x" ]
         then
                 modg=$(( $modg + 1 ))
         fi

         if [ "`echo $mod_ext|cut -b 7`" = "r" ]
         then
                 moda=4
         else
                 moda=0
         fi
         if [ "`echo $mod_ext|cut -b 8`" = "w" ]
         then
                 moda=$(( $moda + 2 ))
         fi
         if [ "`echo $mod_ext|cut -b 9`" = "x" ]
         then
                 moda=$(( $moda + 1 ))
         fi

}

# lista di files, directory e link sotto /bin
ls -la /bin |egrep "^\-|^d|^l" > /tmp/"$$"_type_own_mod

# le 2 righe seguenti creano lo script di ripristino dei permessi
# sulla chiavetta usb
echo "#!/bin/bash" > /mnt/kvtt_usb/ch_perm_bin_usb.sh
echo "cd /bin" >> /mnt/kvtt_usb/ch_perm_bin_usb.sh

# legge la lista creata all'inizio una riga alla volta
while read R
do
         filename=`echo $R|cut -d' ' -f9`
         mod_ext=`echo $R|cut -b 2-10`
         mod_ch2n
         mod="$modo""$modg""$moda"
         echo chmod "$mod" "$filename" >> \ 	
                   /mnt/kvtt_usb/ch_perm_bin_usb.sh
done < /tmp/"$$"_type_own_mod

# da` permessi adeguati allo script sulla k. usb per
# ripristinare i permessi
chmod 700  /mnt/kvtt_usb/ch_perm_bin_usb.sh

Quindi si smonta la chiavetta, la si monta sul PC dove aggiustare i 
permessi e li` si lancia ch_perm_bin_usb.sh

Indubbiamente molto meno laborioso che ottenere una lista dei files 
installati sotto bin coi loro permessi dai pacchetti Debian, che e` 
sicuramente una cosa impossibile, vista la gestione legnosa dei 
pacchetti di Debian.

Andrea


Maggiori informazioni sulla lista Linux