3 # Requires the pre-configured samba machine
20 do_node $smbsrv "service smb status" || rc=$?
34 smbconf=$(do_node $smbsrv \
35 smbd -b | grep CONFIGFILE | sed -re 's/\s+CONFIGFILE: //g')
36 grep -q $smbshare $smbconf && return
38 do_node $smbsrv "cp $smbconf $smbconftmp"
39 do_node $smbsrv "cat <<EOF >> $smbconf
47 # The samba daemons are constantly (once every 60 seconds) checking the
48 # smb.conf file, so it is good practice to keep this file small.
49 local smbsmall=$(do_nodes $smbsrv "mktemp -t smb.conf.small.XXX")
50 do_node $smbsrv "testparm -s >$smbsmall"
51 do_node $smbsrv "testparm -s $smbsmall >$smbconf"
53 do_node $smbsrv "echo $smbpasswd | tee - | smbpasswd -a $smbuser -s" ||
54 do_node $smbsrv "printf '$smbpasswd\n$smbpasswd\n' |\
55 tee - | smbpasswd -a $smbuser -s"
58 restore_config_smb() {
63 smbconf=$(do_node $smbsrv \
64 smbd -b | grep CONFIGFILE | sed -re 's/\s+CONFIGFILE: //g')
66 echo -e "\nRestoring smb config from $smbconftmp ..."
67 do_node $smbsrv "cp $smbconftmp $smbconf"
73 local smbclimntpt=${3}
78 do_node $smbsrv "service smb restart" || return 1
79 local parameter_path=$(do_node $smbsrv \
80 "testparm -s --section-name $smbshare --parameter-name path 2> /dev/null")
81 [[ -z $parameter_path ]] && return 1
82 do_nodesv $smbsrv "chmod a+xrw $parameter_path"
83 do_nodesv $smbsrv "ls -ald $parameter_path"
85 local cmd="mount -t cifs //$smbsrv/$smbshare $smbclimntpt -o user=$smbuser,pass=$smbpasswd"
86 echo -e "\nMounting CIFS clients $smbclients : $cmd"
87 do_nodesv $smbclients "$cmd" || return 1
88 do_nodesv $smbclients mount | grep $smbclimntpt
93 local smbclimntpt=${2}
96 echo -e "\nUnmounting CIFS clients..."
97 zconf_umount_clients $smbclients $smbclimntpt -f || return 1
98 do_node $smbsrv "service smb stop"