[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT: Bash-Frage



Denise Schmid <Chinatinte@gmx.ch> wrote:
> USER_DIR_1=/home/Test1
> USER_DIR_2=/home/Makulatur
> USER_DIR_3=/home/Trallala

Mal abgesehen davon, dass ich nicht verstehe was Du damit willst...

	i=1
	for home in /home/*; do
		if [ "$home" != "${home#*\'}" ]; then
			echo "FIXME: $home" >&2
			continue
		fi 
		eval "USER_DIR_$i='$home'"
		i=$(($i + 1))
	done

so?
Ohne das `if ...' isses unsafe wenn einer Deiner User ein ' im Namen hat
bzw. es jemand schafft, Dir ein Verzeichnis oder eine Datei in /home mit
' drin unterzumogeln. So etwa:
	touch /home/"foo' echo hier koennte auch ein rm -rf .. stehen'"

bash kennt auch Arrays, die sind einfacher safe zu kriegen.

Dateien, Symlinks, Devices, etc. pp. auszufiltern bleibt dem geneigten
Leser zur Uebung ueberlassen :)


regards
   Mario
-- 
*axiom* welcher sensorische input bewirkte die output-aktion,
        den irc-chatter mit dem nick "dus" des irc-servers
        mittels eines kills zu verweisen?


Reply to: