რადგანაც და რატომაც ორაკლის თემის დასასრულისადმი ინტერესი არც თუ ისე დიდი იყო, გავყევით შემდეგ.
საჭიროებამ დაგვანახა, რომ ვინტენდო, რომელიც ჯერ კიდევ საკმაოდ ბოგინობს ჩვენს საყვარელ ფორუმელთა უმეტეს მანქანებში, ხანდახან მაინც საჭიროებს იმ სიამოვნებას, რასაც ლინუქს/იუნიქს მანქანებთან ინტერკომუნიკაცია ჰქვია.
დღეს გავიხილავთ პროგრამულ უზრუნველყოფას, სახელად samba, რომელიც განთავსებყლია ვებ-გვერდზე samba.org
ნორმალური დისტრიბუტივებისათვის. apt-get install samba samba-common samba-client
დანარჩენებისათვის ან თვითონ მოიფიქრეთ, ან გამომყევით
ვქაჩავთ ამ წერილის დაწერისათვის სამბას უკანასკნელ ვერსიას 3.0.21c
ვებ გვერდიდან
wget -c
http://us1.samba.org/samba/ftp/stable/samba-3.0.21c.tar.gzmkdir /tmp/build
wget -c
http://us1.samba.org/samba/ftp/stable/samba-3.0.21c.tar.gztar zxvf samba-3.0.21c.tar.gz
cd samba-3.0.21c
ვაექსპორტებთ საჭირო ცვლადებს (იგულისხმება i686კლასის პროცესორი)
CFLAGS="-O2 -march=i686 -D_GNU_SOURCE -DLDAP_DEPRECATED"
./configure --prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-acl-support \
--with-automount \
--with-libsmbclient \
--with-mmap \
--with-pam \
--with-pam_smbpass \
--with-quotas \
--with-syslog \
--with-utmp \
--with-vfs\
--without-smbwrapper \
--with-lockdir=/var/cache/samba\
--with-piddir=/var/run \
--with-mandir=/usr/share/man \
--with-privatedir=/etc/samba \
--with-logfilebase=/var/log/samba \
--with-libdir=/usr/lib/samba \
--with-configdir=/etc/samba \
--with-swatdir=/usr/share/swat \
--with-shared-modules=idmap_ad,idmap_rid
make
make install
ვქმნით ფაილს /etc/xinet.d/swat
შემცველობა
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes
}
ასევე ვაკოპირებთ ქვემოთ მიმაგრებულ ფაილს /etc/init.d ში და ვაკეთებთ ასეთ რამეს
cd /etc/init.d
chkconfig --add smb
რაც შეეხება კონფიგურაციას, ამჯერად დავწერ მხოლოდ ისეთ ვარიანტს, როცა პაროლი საჭირო არაა
ანუ ვარედაქტირებთ ფაილს /etc/samba/smb.conf
ფაილის სტრუქტურა ასეთია
[RAME]
rume=kidev_rume
ანუ RAME არის ბლოკი
rume არის პარამეტრი kidev_rume არის მნიშვნელობა
system-wide პარამეტრები კონფიგურირდება ბლოკში global
ვწერთ
[global]
workgroup = WORKGROUP_NAME
server string =
security = share
encrypt passwords = no
null passwords = yes
log file = /var/log/samba/log.%m
server signing = Auto
preferred master = no
domain master = no
ldap ssl = No
restrict anonymous = no
max protocol = NT
იმედია აქ ყველაფერი გასაგებია.. მარა არის ერთი რამ
security = share
ეს არის გათვლილი მხოლოდ პატარა ქსელებისათვის
user უფრო დიდი, + შესაძლებელია მომხმარებლების აუთენტიკაციის ჩართვა
server თუ გინდათ რომ სამბამ მომხმარებლები/პაროლები შეამოწმოს არა ლოკალურად, არამედ LDAPსერვერზე.
Domain თუ ქსელში არსებობს აგრეთვე Backup LDAP server
და ბოლოს, ADS, როცა სამბა თვითონაა დომეინ კონტროლერი
რაც შეეხება შარინგებს.
[myshare]
path = /c/share
guest ok = yes
guest only = yes
writeable = yes
read only = no
[files]
path = /c/files
guest ok = yes
guest only = yes
writeable = no
read only = yes
იმედია ყველაფერი აქაც გასაგებია
აი /etc/init.d/smb ფაილის შემცველობა
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
# used to provide SMB network services.
#
# pidfile: /var/run/samba/smbd.pid
# pidfile: /var/run/samba/nmbd.pid
# config: /etc/samba/smb.conf
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
# Avoid using root's TMPDIR
unset TMPDIR
# Source networking configuration.
. /etc/sysconfig/network
if [ -f /etc/sysconfig/samba ]; then
. /etc/sysconfig/samba
fi
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# Check that smb.conf exists.
[ -f /etc/samba/smb.conf ] || exit 0
RETVAL=0
start() {
KIND="SMB"
echo -n $"Starting $KIND services: "
daemon smbd $SMBDOPTIONS
RETVAL=$?
echo
KIND="NMB"
echo -n $"Starting $KIND services: "
daemon nmbd $NMBDOPTIONS
RETVAL2=$?
echo
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \
RETVAL=1
return $RETVAL
}
stop() {
KIND="SMB"
echo -n $"Shutting down $KIND services: "
killproc smbd
RETVAL=$?
echo
KIND="NMB"
echo -n $"Shutting down $KIND services: "
killproc nmbd
RETVAL2=$?
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb
echo ""
return $RETVAL
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading smb.conf file: "
killproc smbd -HUP
RETVAL=$?
echo
return $RETVAL
}
rhstatus() {
status smbd
status nmbd
}
# Allow status as non-root.
if [ "$1" = status ]; then
rhstatus
exit $?
fi
# Check that we can write to it... so non-root users stop here
[ -w /etc/samba/smb.conf ] || exit 0
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
rhstatus
;;
condrestart)
[ -f /var/lock/subsys/smb ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
exit 1
esac
exit $?