Samba için kullanıcı eklemekte smbadduser komutu çok işe
yarar. Bu betiği olmayanlar için kodu hemen yazayım;
#!/bin/csh
#
# smbadduser - Written by Mike Zakharoff
#
unalias *
set path = ($path /usr/bin)
set smbpasswd = /etc/samba/smbpasswd
#set smbpasswd = /etc/samba.d/smbpasswd
set user_map = /etc/samba/smbusers
#set user_map = /etc/samba.d/smbusers
#
# Set to site specific passwd command
#
set passwd = "cat /etc/passwd"
#set passwd = "niscat passwd.org_dir"
#set passwd = "ypcat passwd"
set line = "----------------------------------------------------------"
if ($#argv == 0) then
echo $line
echo "Written: XXX"
echo ""
echo " 1) Updates $smbpasswd"
echo " 2) Updates $user_map"
echo " 3) Executes smbpasswd for each new user"
echo ""
echo "smbadduser unixid:ntid unixid:ntid ..."
echo ""
echo "Example: smbadduser ebal:egemen johns:smithj"
echo $line
exit 1
endif
touch $smbpasswd $user_map
set new = ()
foreach one ($argv)
echo $one | grep ':' >& /dev/null
if ($status != 0) then
echo "ERROR: Must use unixid:ntid like -> zak:zakharoffm"
continue
endif
set unix = `echo $one | awk -F: '{print $1}'`
set ntid = `echo $one | awk -F: '{print $2}'`
set usr = `eval $passwd | awk -F: '$1==USR {print $1}' USR=$unix`
if ($#usr != 1) then
echo "ERROR: $unix Not in passwd database SKIPPING..."
continue
endif
set tmp = `cat $smbpasswd | awk -F: '$1==USR {print $1}' USR=$unix`
if ($#tmp != 0) then
echo "ERROR: $unix is already in $smbpasswd SKIPPING..."
continue
endif
echo "Adding: $unix to $smbpasswd"
# eval $passwd | \
# awk -F: '$1==USR { \
# printf( "%s:%s:XXX:XXX:%s:%s:%s\n", $1, $3, $5, $6, $7) }' USR=$un
ix >> $smbpasswd
/usr/bin/smbpasswd -a -n $unix
if ($unix != $ntid) then
echo "Adding: {$unix = $ntid} to $user_map"
echo "$unix = $ntid" >> $user_map
endif
set new = ($new $unix)
end
#
# Enter password for new users
#
foreach one ($new)
echo $line
echo "ENTER password for $one"
smbpasswd $one
end
Bu betik SuSE içinde geliyor gerçi 8.0 sürümündeki bozuk ama. Eğer Samba'yı
yeni derliyorsanız betikte bazı değişikler yapmanız gerekebilir hemen
belirtelim.
Tamam. Şimdi smb.conf dosyamız mükemmel durumda çalışıyor olsun.
Şimdi sıra bir kullanıcının domaine giriş yapması sürecine geldi.
Önce Linux için egemen isminde kabuğu /bin/false
olan bir kullanıcı oluşturun. Ev dizini /home/egemen olsun.
Grubu ise it olsun. Egemen aynı zamanda users
grubunda da olsun. IT grubunun grup kimliği ise 505 olsun. "egemen"
kullanıcısının kullanıcı kimliği ise 101 olsun:
useradd -d /home/egemen -g 505 -G 100 -s /bin/false -u 101 -r egemen
Böylece egemen isimli bir kullanıcı tanımladık.
komutuyla da egemen
kullanıcısı için "ebal" adı altında bir samba kullanıcısı oluşturmuş olduk.
Bu "egemen:egemen" de olabilirdi size kalmış birşey. Eğer bir samba kullanıcısının
parolasını değiştirmek istiyorsaniz smbpasswd [kullanıcı]
komutunu kullanabilirsiniz.
Linux için oluşturduğumuz "egemen" kullanıcısı telnet veya herhangi bir şekilde
Linux'a giriş yapamaz. Sadece "ebal" kullanıcısı Samba'ya giriş yapabilir. Diğer
gruplarınız ve kullanıcılarınız için de aynen bu şekilde devam edin.