* mount.cc (mount_info::from_fstab): Read user fstab files from
/etc/fstab.d/$USER to avoid user write access to /etc. * postinstall: Use variables for filenames. Create /etc/fstab.d dir with 01777 permissions.
This commit is contained in:
parent
3322254d27
commit
9794095354
|
@ -1,3 +1,10 @@
|
|||
2008-04-08 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* mount.cc (mount_info::from_fstab): Read user fstab files from
|
||||
/etc/fstab.d/$USER to avoid user write access to /etc.
|
||||
* postinstall: Use variables for filenames. Create /etc/fstab.d dir
|
||||
with 01777 permissions.
|
||||
|
||||
2008-04-08 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* postinstall: Disable adding registry mounts to /etc/fstab for now.
|
||||
|
|
|
@ -914,7 +914,7 @@ mount_info::from_fstab (bool user)
|
|||
|
||||
PWCHAR u = wcpcpy (w, L"\\etc\\fstab");
|
||||
if (user)
|
||||
sys_mbstowcs (wcpcpy (u, L"."), NT_MAX_PATH - (u - path),
|
||||
sys_mbstowcs (wcpcpy (u, L".d\\"), NT_MAX_PATH - (u - path),
|
||||
cygheap->user.name ());
|
||||
debug_printf ("Try to read mounts from %W", path);
|
||||
HANDLE h = CreateFileW (path, GENERIC_READ, FILE_SHARE_READ, &sec_none_nih,
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
#
|
||||
export PATH="/bin:$PATH"
|
||||
|
||||
SYSCONFDIR=/etc
|
||||
FSTAB="${SYSCONFDIR}/fstab"
|
||||
FSTABDIR="${SYSCONFDIR}/fstab.d"
|
||||
|
||||
DEVDIR=/dev
|
||||
|
||||
print_flags ()
|
||||
|
@ -22,21 +26,21 @@ print_flags ()
|
|||
}
|
||||
|
||||
# Create fstab file if it doesn't exist.
|
||||
if [ -e "/etc/fstab" -a ! -f "/etc/fstab" ]
|
||||
if [ -e "${FSTAB}" -a ! -f "${FSTAB}" ]
|
||||
then
|
||||
# Try to move
|
||||
mv -f "/etc/fstab" "/etc/fstab.orig"
|
||||
if [ -e "/etc/fstab" -a ! -f "/etc/fstab" ]
|
||||
mv -f "${FSTAB}" "${FSTAB}.orig"
|
||||
if [ -e "${FSTAB}" -a ! -f "${FSTAB}" ]
|
||||
then
|
||||
echo
|
||||
echo "/etc/fstab is existant but not a file."
|
||||
echo "${FSTAB} is existant but not a file."
|
||||
echo "Since this file is specifying the mount points, this might"
|
||||
echo "result in unexpected trouble. Please fix that manually."
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -e "/etc/fstab" ]
|
||||
if [ ! -e "${FSTAB}" ]
|
||||
then
|
||||
# Set IFS to just a LF
|
||||
_OLD_IFS="$IFS"
|
||||
|
@ -52,7 +56,7 @@ then
|
|||
break
|
||||
fi
|
||||
done
|
||||
cat > /etc/fstab << EOF
|
||||
cat > ${FSTAB} << EOF
|
||||
# The file fstab contains descriptive information about the various file
|
||||
# systems. fstab is only read by programs, and not written; it is the
|
||||
# duty of the system administrator to properly create and maintain this
|
||||
|
@ -144,12 +148,12 @@ EOF
|
|||
# echo -n "${nat} ${psx} some_fs "
|
||||
# print_flags $flags
|
||||
# echo " 0 0"
|
||||
# fi >> /etc/fstab
|
||||
# fi >> ${FSTAB}
|
||||
#done
|
||||
#[ -z "$usr_bin" ] &&
|
||||
echo "${CYGROOT//\\//}/bin /usr/bin ${FS_TYPE} binary 0 0" >> /etc/fstab
|
||||
echo "${CYGROOT//\\//}/bin /usr/bin ${FS_TYPE} binary 0 0" >> ${FSTAB}
|
||||
#[ -z "$usr_lib" ] &&
|
||||
echo "${CYGROOT//\\//}/lib /usr/lib ${FS_TYPE} binary 0 0" >> /etc/fstab
|
||||
echo "${CYGROOT//\\//}/lib /usr/lib ${FS_TYPE} binary 0 0" >> ${FSTAB}
|
||||
|
||||
#cygd=""
|
||||
#prefix=$(regtool -q get "$key\cygdrive prefix")
|
||||
|
@ -162,16 +166,47 @@ EOF
|
|||
# echo -n "none ${psx} cygdrive "
|
||||
# print_flags $flags
|
||||
# echo ",user 0 0"
|
||||
#fi >> /etc/fstab
|
||||
#fi >> ${FSTAB}
|
||||
|
||||
#if [ -z "$cygd" ]
|
||||
#then
|
||||
echo "# This is default anyway:" >> /etc/fstab
|
||||
echo "# none /cygdrive cygdrive binary,user 0 0" >> /etc/fstab
|
||||
echo "# This is default anyway:" >> ${FSTAB}
|
||||
echo "# none /cygdrive cygdrive binary,user 0 0" >> ${FSTAB}
|
||||
#fi
|
||||
IFS="$_OLD_IFS"
|
||||
fi
|
||||
|
||||
# Check for ${FSTABDIR} directory
|
||||
|
||||
if [ -e "${FSTABDIR}" -a ! -d "${FSTABDIR}" ]
|
||||
then
|
||||
# No mercy. Try to remove.
|
||||
rm -f "${FSTABDIR}"
|
||||
if [ -e "${FSTABDIR}" -a ! -d "${FSTABDIR}" ]
|
||||
then
|
||||
echo
|
||||
echo "${FSTABDIR} is existant but not a directory."
|
||||
echo "Please fix that manually."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Create it if necessary
|
||||
|
||||
if [ ! -e "${FSTABDIR}" ]
|
||||
then
|
||||
mkdir -m 1777 "${FSTABDIR}"
|
||||
if [ ! -e "${FSTABDIR}" ]
|
||||
then
|
||||
echo
|
||||
echo "Creating ${FSTABDIR} directory failed."
|
||||
echo "Please fix that manually."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check for ${DEVDIR} directory
|
||||
|
||||
if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ]
|
||||
|
|
Loading…
Reference in New Issue