#!/bin/bash #sleep 3 #exit 0 rm -f /dev/disk/by-uuid/* #fstab bug -- do it here ! [ -e /mnt/and ] && mkdir -p /mnt/and mount -t cofs 31 /mnt/and #get firstboot settings for i in $(cat /mnt/and/firstboot.1.txt | sed 's| |_|g' | sed 's|\\|\/|g' | sed "s/\r//") ; do case $i in mountpath=*) mountpath=${i#*=} ;; login=*) username=${i#*=} User_uid=$(id ${username}) #User_uid:4:4 works only with bash User_uid="${User_uid:4:4}" ;; mountshare=*) mountshare=${i#*:/} sambashare=${mountshare#*=} [ "$mountshare" = "$sambashare" ] && sambashare= ;; mountuser=*) mountuser=${i#*=} ;; passwd=*) userpasswd=${i#*=} ;; mountpassword=*) mountpassword=${i#*=} ;; launcher=*) launcher=${i#*=} ;; pulseaudio=*) pulseaudio=${i#*=} ;; installdir=*) INSTALLDIR=${i#*=} ;; *) ;; esac done if [ "$mountuser" != "" ]; then if [ "$sambashare" = "" ]; then for i in $(cat /proc/cmdline) ; do case $i in DISPLAY*) DISPLAY="${i#*=}" #echo DISPLAY: $DISPLAY [ -x /usr/bin/fping ] && WINDOS_IP=$(echo $DISPLAY | sed 's|,| |g' | fping -a) if ! [ -z "$WINDOS_IP" ]; then sambashare=//$WINDOS_IP/$mountshare else echo "Windows IP is not responding!" fi ;; *) ;; esac done fi if [ -z "$sambashare" ]; then echo "Could not mount samba! Edit /win/and/firstboot.1.txt" echo "Examle: mountshare=//192.168.178.1/shared_folder" else echo " * mount samba ..." # Setup user accounts if [ -e /lib/security/pam_smbpass.so ] && [ -e /etc/pam.d/common-password ] && ! grep -qs pam_smbpass.so /etc/pam.d/common-password then # have `passwd` update samba passwords as well echo 'password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass' >> /etc/pam.d/common-password fi echo "username=$mountuser" > /etc/smbpasswd echo "password=$mountpassword" >> /etc/smbpasswd chmod 600 /etc/smbpasswd #umount /mnt/samba # echo "Samba username=$mountuser" # echo "Samba password=$mountpassword" # echo "mountshare: $mountshare" # echo "sambashare: $sambashare" # echo "username: $username" # echo "User_uid: $User_uid" [ -e /home/$username/Desktop/windows ] && unlink /home/$username/Desktop/windows ! [ -e /mnt/samba ] && mkdir -p /mnt/samba chmod 777 /mnt/samba #Info at: http://wiki.ubuntuusers.de/samba_client_cifs if mount -t cifs -o credentials=/etc/smbpasswd,iocharset=iso8859-15,username=$mountuser,password=$mountpassword,uid=$User_uid,gid=$User_uid,dir_mode=0777,file_mode=0777 $sambashare /mnt/samba/; then echo " * Added mount samba $sambashare on /mnt/samba" (cd /home/$username/Desktop; ln -s /mnt/samba/ windows) fi fi else [ -e /mnt/samba ] && rmdir /mnt/samba [ -e /home/$username/Desktop/windows ] && unlink /home/$username/Desktop/windows (cd /home/$username/Desktop; ln -s /mnt/win/ windows) fi # Set setings via settings.txt ! [ -f /mnt/and/settings.txt ] && echo "Local install directory $INSTALLDIR not mounted!" #! [ -e /mnt/and/settings.txt ] && exit 0 mount_cofs() { ! [ -e $3 ] && mkdir -p $3 chmod 777 $3 #echo User_uid:${User_uid} mount -t cofs $4 $1 $3 [ -e $3 ] && (ls -l $3 2>&1 | grep -q 'directory' && umount $3 && rmdir $3) || echo " * Added mount $2 on '$3'" } mount_co() { if [ -e /mnt/and/$2 ]; then ! [ -e $3 ] && mkdir -p $3 chmod 777 $3 mount -t ext3 $4 /dev/$1 $3 ||\ mount -t ext4 $4 /dev/$1 $3 &&\ echo " * Added mount $2 on '$3'" else [ -e $3 ] && rmdir $3 fi } echo " * mount ..." x=$(cat /mnt/and/settings.txt | grep -E 'cobd|cofs' | sed '/^\#/d' | sed 's|\\|\/|g' | sed "s/\r//" | sed '/ .*/d') #echo "settings.txt:$x" for i in 0 1 2 3 4 5 6 7 8 9 0; do [ -e /mnt/codb$i ] && rmdir /mnt/codb$i [ -e /mnt/cofs$i ] && rmdir /mnt/cofs$i done for i in $x; do case $i in cobd2*) #--------Options------------------------ v #--------mountdirecrory--V #name----V mount_co "cobd2" ${i#*=} "/mnt/cobd2" "-o defaults" ;; cobd3*) mount_co "cobd3" ${i#*=} "/mnt/cobd3" "-o defaults" ;; cobd4*) mount_co "cobd4" ${i#*=} "/mnt/cobd4" "-o defaults" ;; cobd5*) mount_co "cobd5" ${i#*=} "/mnt/cobd5" "-o defaults" ;; cobd6*) mount_co "cobd6" ${i#*=} "/mnt/cobd6" "-o defaults" ;; cobd7*) mount_co "cobd7" ${i#*=} "/mnt/cobd7" "-o defaults" ;; cobd8*) mount_co "cobd8" ${i#*=} "/mnt/cobd8" "-o defaults" ;; cobd9*) mount_co "cobd9" ${i#*=} "/mnt/cobd9" "-o defaults" ;; cofs0*) mount_cofs "cofs0" ${i#*=} "/mnt/win" "-o uid=${User_uid},gid=${User_uid}" ;; cofs1*) mount_cofs "cofs1" ${i#*=} "/mnt/win_c" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs2*) mount_cofs "cofs2" ${i#*=} "/mnt/win_d" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs3*) mount_cofs "cofs3" ${i#*=} "/mnt/win_e" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs4*) mount_cofs "cofs4" ${i#*=} "/mnt/win_f" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs5*) mount_cofs "cofs5" ${i#*=} "/mnt/win_g" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs6*) mount_cofs "cofs6" ${i#*=} "/mnt/win_h" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs7*) mount_cofs "cofs7" ${i#*=} "/mnt/win_i" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs8*) mount_cofs "cofs8" ${i#*=} "/mnt/win_j" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; cofs9*) mount_cofs "cofs9" ${i#*=} "/mnt/win_k" "-o dmask=0022,fmask=0133,uid=${User_uid},gid=${User_uid}" ;; *) ;; esac done