Hello!
In install.sh script exist following code:
692 if [ "X${USER_DIR}" = "X" ]; then
693 while [ 1 ]; do
694 $ECHO " - ${wheretoinstall} [$INSTALLDIR]: "
695 read ANSWER
696 if [ ! "X$ANSWER" = "X" ]; then
697 echo $ANSWER |grep -E "^/[a-zA-Z0-9/-]{3,128}$"
>/dev/null 2>&1
698 if [ $? = 0 ]; then
699 INSTALLDIR=$ANSWER;
700 WORKDIR=$ANSWER;
701 break;
702 fi
703 else
704 break;
705 fi
706 done
707 else
708 INSTALLDIR=${USER_DIR}
709 WORKDIR=${USER_DIR}
710 fi
Code for verify installation dir not allow to me specify root (/) as
installation directory:
[EMAIL PROTECTED] ~]$ echo "/" |grep -E "^/[a-zA-Z0-9/-]{3,128}$">/dev/null
2>&1; echo rc=$?
rc=1
So I suggest change this behavior:
- echo $ANSWER | grep -E "^/[a-zA-Z0-9/-]{3,128}$" >/dev/null 2>&1
+printf '%s' "$ANSWER" | grep -E "^/[[:alnum:]/-]{0,128}$" >/dev/null 2>&1
What's think developers about this change? Should I post the bug for this?
Thanks in advance.
P.S. I think It's impossible. All scripts expects /var/ossec =( But I
want have FHS-compliant system.
For example this code can broke system (build in chroot environment
under unprivileged user saves my system):
120 # Default for all directories
121 chmod -R 550 ${DIR}
122 chown -R root:${GROUP} ${DIR}
All works right when DIR equal to /var/ossec, but what happens when
DIR=/ ?! :))))
P.S. BTW, ideally all installation scripts should be completely rewritten IMHO.
--
+ Slava Semushin | slava.semushin @ gmail.com
+ ALT Linux Team | php-coder @ altlinux.ru