#!/bin/sh

config=/bin/config

SMB_CONF_DIR=/tmp/config
SMB_PASSWD_DIR=/etc/samba/smbpasswd

# unset
rm -f $SMB_CONF_DIR/passwd+
rm -f $SMB_CONF_DIR/gshadow
rm -f $SMB_CONF_DIR/shadow

# user setting
echo "root:!:0:0:root:/tmp:/bin/ash"			> $SMB_CONF_DIR/passwd
echo "guest:*:65534:65534:guest:/tmp/ftpadmin:/bin/ash"	>>$SMB_CONF_DIR/passwd
echo "nobody:*:65534:65534:nobody:/var:/bin/false" 	>>$SMB_CONF_DIR/passwd
echo "daemon:*:65534:65534:daemon:/var:/bin/false"	>>$SMB_CONF_DIR/passwd

# group setting
samba_user=`$config get http_username`
samba_user_sub=$(echo "$samba_user" | awk -F@ '{print $1}')
usb_user=`$config get usb_username`
echo "root:x:0:"	> $SMB_CONF_DIR/group
echo "admin:x:1:"	>>$SMB_CONF_DIR/group
if [ "x$samba_user" != "xadmin" ]; then
    echo "$samba_user:x:2:"	>>$SMB_CONF_DIR/group
    echo "$samba_user_sub:x:2:"	>>$SMB_CONF_DIR/group
fi
echo "$usb_user:x:3:"	>>$SMB_CONF_DIR/group
echo "guest:x:65534:"	>>$SMB_CONF_DIR/group
echo "guest::10957:0:99999:7:::"                        >> $SMB_CONF_DIR/shadow

http_passwd=$($config get http_passwd)
usb_passwd=$($config get usb_passwd)
/usr/sbin/adduser -G admin admin -H -h /tmp/ftpadmin -s /bin/ash << EOF
$http_passwd
$http_passwd
EOF
sed -i "s#$(/bin/cat /tmp/config/shadow | grep admin | cut -d ":" -f2)#$(/bin/config get dhx2_passwd)#g" /tmp/config/shadow

# Access samba by http login username and password
if [ "x$samba_user" != "xadmin" ]; then
	/usr/sbin/adduser -G admin $samba_user -H -h /tmp/ftpadmin -s /bin/ash << EOF
$http_passwd
$http_passwd
EOF
	/usr/sbin/adduser -G admin $samba_user_sub -H -h /tmp/ftpadmin -s /bin/ash << EOF
$http_passwd
$http_passwd
EOF
	sed -i "s#$(/bin/cat /tmp/config/shadow | grep "$samba_user" | cut -d ":" -f2)#$(/bin/config get dhx2_passwd)#g" /tmp/config/shadow
	sed -i "s#$(/bin/cat /tmp/config/shadow | grep "$samba_user_sub" | cut -d ":" -f2)#$(/bin/config get dhx2_passwd)#g" /tmp/config/shadow
fi

	/usr/sbin/adduser -G admin $usb_user -H -h /tmp/ftpadmin -s /bin/ash << EOF
$usb_passwd
$usb_passwd
EOF
	sed -i "s#$(/bin/cat /tmp/config/shadow | grep "$usb_user" | cut -d ":" -f2)#$(/bin/config get dhx2_passwd)#g" /tmp/config/shadow

sed -i "s/admin\:x\:500/admin\:x\:0/g" $SMB_CONF_DIR/passwd

# clear smbpasswd file
echo -n ""	> $SMB_PASSWD_DIR

if [ "x$samba_user" == "xadmin" ]; then
	(echo ""; echo "") | smbpasswd -a admin 
	sed -i "s/\:$(/bin/cat /etc/samba/smbpasswd | grep admin | cut -d ":" -f4)\:\[/\:$(/bin/config get samba_passwd)\:\[/g" /etc/samba/smbpasswd
else
    (echo ""; echo "") | smbpasswd -a "$samba_user" 
    (echo ""; echo "") | smbpasswd -a "$samba_user_sub" 
	sed -i "s/\:$(/bin/cat /etc/samba/smbpasswd | grep "$samba_user" | cut -d ":" -f4)\:\[/\:$(/bin/config get samba_passwd)\:\[/g" /etc/samba/smbpasswd
	sed -i "s/\:$(/bin/cat /etc/samba/smbpasswd | grep "$samba_user_sub" | cut -d ":" -f4)\:\[/\:$(/bin/config get samba_passwd)\:\[/g" /etc/samba/smbpasswd
fi
    (echo ""; echo "") | smbpasswd -a "$usb_user" 
	sed -i "s/\:$(/bin/cat /etc/samba/smbpasswd | grep "$usb_user" | cut -d ":" -f4)\:\[/\:$(/bin/config get samba_passwd)\:\[/g" /etc/samba/smbpasswd
(echo ""; echo "") | smbpasswd -a guest

readycloud_enable=`${config} get readycloud_enable`
#readycloud_enable=1
if [ "$readycloud_enable" = "1" ]; then
i=0
id=500
while [ $i -le 9 ]; do
	readycloud_user="`${config} get readycloud_user$i`"
	if [ "x$readycloud_user" != "x" ]; then
		username=`echo $readycloud_user | awk '{print $1}'`
		userpasswd=`echo $readycloud_user | awk '{print $3}'`
		echo "$username:x:$id:" >> $SMB_CONF_DIR/group
		/usr/sbin/adduser -G $username $username -H -h /tmp/ftpadmin -s /bin/ash << EOF
$userpasswd
$userpasswd
EOF
		(echo "$userpasswd"; echo "$userpasswd") | smbpasswd -a $username 
	else
		break;
	fi
	let i=$i+1
	let id=$id+1
done
fi

