Bakım gerektiren bir samba kullanıcısı ekleme betiği. Betik sadece file parametresi vermişseniz
kullanıcı parola
şeklinde düzenlenmiş olan bir dosyadan okuyarak yine kendisini kullanarak kullanıcıları oluşturuyor.
Uyarı notu:
samba sunucusunu ilk kurduğunuzda
/etc/samba/smb.conf
dosyasının adını
/etc/samba/smb.base
şeklinde değiştirin.
#!/bin/bash
# @author Özgür Kılıçaslan - Can Mustafa Özdemir
# @version 2012.04.30
prog=$0
base=
user=
password=
file=
optstring=u:p:l:
while getopts $optstring opt;
do
case $opt in
u)
user=$OPTARG
;;
p)
password=$OPTARG
;;
l)
file=$OPTARG
;;
*)
exit 1
;;
esac
done
if [ -n "${user}" ] && [ -n "${password}" ]
then
if [ ! -d /home/${base} ]
then
mkdir /home/${base}
fi
useradd --create-home --home /home/${base}/${user} --skel /etc/${base}.skel/ --password ${password} ${user}
(echo ${password}; echo ${password}) | smbpasswd -a -s ${user}
echo "
[${user}]
path = /home/${base}/${user}
comment = No comment
admin users = ${user}
read only = no
available = yes
browseable = yes
writable = yes
guest ok = no
public = no
printable = no
locking = no
strict locking = no
" > /etc/samba/${user}.user
cat /etc/samba/smb.base > /etc/samba/smb.conf
for i in `find /etc/samba/ -iname "*.user"`
do
cat $i >> /etc/samba/smb.conf
done
service smbd stop
service smbd start
else
if [ -f $file ]
then
while read user2 password2;
do
$prog -u $user2 -p $password2
done < "$file"
fi
fi