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