Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276305
  • 博文数量: 44
  • 博客积分: 2046
  • 博客等级: 大尉
  • 技术积分: 611
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-06 11:11
文章分类

全部博文(44)

文章存档

2011年(1)

2010年(43)

我的朋友

分类:

2010-07-20 16:46:52

###本文只是实现了一个简单的带用户名验证的文件共享服务器,只是起到一个借鉴参考作用,如果有其他权限方面的进一步修改,可以参考本人另一篇文章《Samba配置文件
smb.conf参数详解 》http://blog.chinaunix.net/u3/116565/showart_2276856.html,进行更为详细的权限细分工作。

一、samba的编译安装
tar zxvf samba-3.4.1.tar.gz
#####samba-3.4.1目录下包含source3与source4两个资源目录,其中source3是正式稳定版本,4则是测试版本
cd samba-3.4.1/source3
./configure --prefix=/usr/local/samba
make
make install
echo "/usr/local/samba/lib/" >>/etc/ld.so.conf
ldconfig
cp ../examples/smb.conf.default /usr/local/samba/lib/smb.conf
cp ../examples/smb.init /etc/rc.d/init.d/smb
chmod 700 /etc/rc.d/init.d/smb

二、samba的基本设置:
因为这只是一个简单的文件共享服务器,因此不涉及到太多的权限及配置,所以我们只做了两个共享:“用户主目录共享”“SharePath”两个共享目录,具体配置如下:
vi /usr/local/samba/lib/smb.conf
[global]
###设置Samba服务器所要加入的工作组或AD:
   workgroup = MYGROUP
###设置Samba服务器描述,%v表示显示samba的版本号:
   server string = Sun.Samson's Samba Server %v
   security = user
###允许/拒绝访问samba服务器的主机:
   hosts allow = 222.92.14.58,61.147.109.51,61.147.109.52
;   hosts deny = 192.168.0. 192.168.3.
#============================ 共享定义 ==============================
###定义samba共享名称
[SharePath]
###该共享的描述,可以是任意字符串。
comment = This is Sun.Samson's File Server!
###path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。
path = /data/FilePath
###指定该共享是否可以浏览。
browseable = yes
###指定该共享路径是否可写。
writable = yes
###指定该共享资源是否可用。
available = yes
###指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效(多个用户中间用逗号隔开)。
admin users = root,sunjun
###指定允许访问该共享资源的用户或组(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
valid users = sunjun,@admin
###指定允许写操作的用户
write list = sunjun
###指定不允许访问该共享资源的用户。(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
invalid users = test,@ftp
###指定该共享是否允许guest账户访问。
public = no
guest ok = no
###===============系统默认几个特殊共享=================###
###定义用户主目录共享
[homes]
   comment = Home Directories
   browseable = no
   writable = yes

三、验证samba配置并启动smb服务:
/usr/local/samba/bin/testparm
###使用此命令可以验证smb.conf文件的语法是否正确,及可以看到设置的几个共享目录较为详细的信息
###smb服务启动:
###samba具体两个守护进行:smbd与nmbd,需要同时运行
###/etc/rc.d/init.d/smb这个启动脚本,默认只有start与stop功能,因此需要编辑添加restart功能:
vi /etc/rc.d/init.d/smb
#!/bin/sh
#
if [ ! -d /usr/bin ]; then
        echo "The /usr file system is not mounted."
        exit 1
fi
killproc() {
        pid=`/bin/ps ax | grep -w $1 | sed -e 's/^  *//' -e 's/ .*//'`
        echo "Stopping $1 now."
        [ "$pid" != "" ] && kill -15 $pid
        echo $pid
}

# Start/stop processes required for samba server
case "$1" in
        'start')
           echo "Starting Samba"
           /usr/local/samba/sbin/smbd -D
           /usr/local/samba/sbin/nmbd -D
           echo "Done."
           ;;
        'stop')
           killproc smbd
           killproc nmbd
           ;;
        'restart')
           $0 stop
           sleep 1
           $0 start
           ;;
        *)
           echo "Usage: /etc/rc.d/init.d/smb [ start | stop | restart ]"
           ;;
esac
exit 0
###启动samba服务:
/etc/rc.d/init.d/smb start/stop/restart

四、共享服务验证测试:
###查看进程是否启动
ps -ax |grep -E '(smbd|nmbd)'
###查看端口是否侦听
###samba端口主要有四个:UDP:137 138 ;TCP:139 445
netstat -na |grep -E '(137|138|139|445)'
###防火墙添加samba四个端口允许访问:
###本地测试
/usr/local/samba/bin/smbclient -L XXX.XXX.XXX.XXX
###Windows客户端进行测试
阅读(2615) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~