Zrobic se problem z chmod-em
Daniel Dawid Majewski
doctorque w o2.pl
Czw, 25 Sie 2005, 18:14:27 CEST
Tomasz Narloch napisał(a):
> Zaczolem sobie troszke porzatkowac i bach dostalem za swoje
> zainstalowalem sobie padee themow do kdm i chcialem aby wszzyskie
> pliczki w katalogach mialy inne prawa:
> wiec zrobic mialem tak:
> chmod 644 */*
> ale zrobilem przez nieuwage tak
> chmod 644 /*/*
> co zaowocowalo nerwami , straconymi kilkoma godzinami, poniewaz przezz
> zdenerwowanie i cofanie czesci zmian ktore wyrzadzilem chmod-em usunolem
> se pare pliczkow z /boot/.
>
> Czy jest jakies narzedzie do przywracania praw dla plikow, ktore
> pochodza z rpm-ów, bo sciaganie takiej masy rpm-ow z netu do ktorych nie
> jestem pewny "praw" jest ostatecznosci, ktora nie wiem czy bedzie mi sie
> chcialo robic
Tak akurat ostatnio zmajstrowałem skrypcik, który załączam, może da
jakąś inspirację... ;)
--
Pozdrawiam,
Daniel Dawid Majewski
-------------- następna część ---------
#!/bin/bash
NOEXEC_MOD="664"
EXEC_MOD="775"
OWNER_GROUP="root.root"
##########COLORS###########
PIERWOTNY="\x1B[0m"
BIALY="\x1B[37;1m"
ROZOWY="\x1B[31;1m"
J_ZIEL="\x1B[32;1m"
ZOLTY="\x1B[33;1m"
J_NIEB="\x1B[34;1m"
###########################
_DIR="Directory"
EXEC=`echo -e "application/x-shellscript\napplication/x-executable\napplication/x-sharedlib\n${_DIR}\n"`
PWD=`pwd`
echo -e "PATH :\"${PWD}\""
for STATFILENAME in `find "${PWD}"`
do
STATSTRING=`file -i "${STATFILENAME}"`
# Ftype=`echo "${STATSTRING}" | awk -F \: '{print substr($2, 2, 4); }'`
Ftype=`echo "${STATSTRING}" | awk -F \: '{print ($2); }'`
Ftype=`echo "${Ftype}" | sed 's/;/,/g' | awk -F \, '{print substr($1, 2); }'`
if [ "${Ftype}" = "" ]; then
STATSTRING=`file "${STATFILENAME}"`
Ftype=`echo "${STATSTRING}" | awk -F \: '{print ($2); }'`
Ftype=`echo "${Ftype}" | sed 's/;/,/g' | awk -F \, '{print substr($1, 2); }'`
fi
# Directory test
if [ "${Ftype}" = "application/x-not-regular-file" ]; then
MODSRCFILE=`stat -c "%A" "${STATFILENAME}"`
Fsign=`echo "$MODSRCFILE" | awk -F \ '{print substr($1, 1, 1); }'`
if [ "${Fsign}" = "d" ]; then
Ftype="${_DIR}"
else
Ftype="Special File"
fi
fi
if [ "${Ftype}" = "" ]; then
echo -e "${ROZOWY}Debug STATSTRING :${BIALY}\"${ROZOWY}${STATSTRING}${BIALY}\"${ROZOWY} :${PIERWOTNY}"
Ftype=""
fi
TEST=`echo "${EXEC}" | egrep "${Ftype}"`
echo -en "File:\"${BIALY}${STATFILENAME}${PIERWOTNY}\", FileType:\"${BIALY}${Ftype}${PIERWOTNY}\""
if [ -n "${TEST}" ]; then
echo -e " - ${J_NIEB}Exec${PIERWOTNY}"
chmod "${EXEC_MOD}" "${STATFILENAME}"
elif [ "${Ftype}" = "Special File" ]; then
echo -e " - ${ROZOWY}Untouched${PIERWOTNY}"
else
echo -e " - ${ZOLTY}Not Exec${PIERWOTNY}"
chmod "${NOEXEC_MOD}" "${STATFILENAME}"
fi
chown "${OWNER_GROUP}" "${STATFILENAME}"
done
Więcej informacji o liście pld-users-pl