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: