首页 > Windows开发 > 详细

samba实现与windows共舞

时间:2014-04-04 09:44:47      阅读:780      评论:0      收藏:0      [点我收藏+]

##########################################################

  • 闲扯Samba

  • Windows作为服务端

  • Linux作为服务端

################################################################


闲扯Samba

   最近几个月看的东西有点多,事也多,一直抽不开身写博文。总结的东西倒是不少,但自己还未能完全消耗形成完善的体系,所以拿不出手的东西写了是一定会误导博友的,正好最近用到samba就顺便总结下基础服务。感觉自己欠下好多博文,深入浅出的博文确实不好写,只能慢慢来了,当作锻炼自己。

   windows和Linux之间通过FTP共享文件,不方便用户使用,于是samba就诞生了。啥是samba?samba是干啥的呢?简单的来说samba是CIFS/SMB协议的一种实现,CIFS/SMB协议实现了跨平台文件共享,windows的网上邻居就是使用CIFS协议,因此Samba可以实现linux和windows之间的文件共享。需要特别说明的是客户端访问samba服务的用户账户一定是系统用户,而密码则是由samba自己维护的,接下来通过介绍linux和windows之间共享文件的模式来进一步了解samba是什么。


Windows作为服务端

   这种工作模型下,linux将作为客户端访问windows,所以linux需要安装客户端软件,并且需要访问凭证,文件的最终访问权限为共享权限和文件系统权限二者的交集,首先我们看看windows作为服务端是如何共享出资源的。

   创建test用户

bubuko.com,布布扣

   添加文件系统权限

bubuko.com,布布扣

   添加共享权限

bubuko.com,布布扣

   linux作为客户端需要安装客户端工具

yum install samba-client -y

   列出服务共享的目录列表

smbclient -L 192.168.1.201 -U test

bubuko.com,布布扣

   进入共享目录进行上传、下载等操作

smbclient //192.168.1.201/testdir  -U test

bubuko.com,布布扣

bubuko.com,布布扣

   挂载共享目录至本地

mkdir /winfs
mount -t cifs -o username=test,password=123 //192.168.1.201/testdir /winfs
touch /winfs/test

bubuko.com,布布扣


Linux作为服务端

   linux作为服务端需要安装samba主包,samba还支持web-gui化管理工具swat,samba的选项有很多,兴趣的朋友可以自行研究,这里以实际案例来演示samba的在工作中是如何使用的。    

   安装samba

yum install -y samba
setenforce 0            #samba会受到selinux的影响

   启动服务查看监听端口

for i in smb nmb; do service $i restart; done
netstat -tunlp
smbd负责文件共享   port 445
nmbd负责NetBIOS   port 137 138 139

实战需求:任何用户访问samba服务必须经过认证,每个用户有自己的目录并且只有自己可以看到,public为公共目录任何人都可以增删改,tom,lucy属于ios部门,ios部门有自己专属的同名目录并且只有所属职员有增删改权限;bob,jim属于web部门,web部门有专属的同名目录并且只有所属职员有增删改权限。

   创建公共目录

mkdir -pv /office/public
mkdir -pv /office/ios
mkdir -pv /office/web
mkdir -pv /office/users

   批量创建用户、用户目录、添加用户到指定组、修改用户目录权限脚本(如果在想在/home下就很简单,直接创建用户就可以,不用这么麻烦,这里只是为了更清楚的印章文件最终权限为共享权限和文件系统权限二者的交集)

#!/bin/bash
#
users=‘bob jim‘
path=‘/office/users/‘
group=‘web‘
groupadd $group &>/dev/null
for i in $users;
do
    useradd -g $group -r $i &>/dev/null && echo "Add $i succeed in $group ."
    mkdir -pv $path$i &> /dev/null && echo "mkdir $path$i succeed ."
    setfacl -m u:$i:rwx $path$i && echo "$path$i permission ok"
done

   为ios、web目录设置权限,根据自己的需要做出设置

setfacl -m g:ios:rwx /office/ios    #为目录定义用户权限
setfacl -m g:web:rwx /office/web    #为目录定义组权限
chmod o-r /office/ios               #ios组以外的用户无法进入ios目录
chmod o-r /office/web               #web组以外的用户无法进入web目录
chmod o+r /office/ios               #ios组以外的用户只能查看,无法删、改
chmod o+r /office/web               #web组以外的用户只能查看,无法删、改

   主配置文件/etc/samba/smb.conf

[global]
    netbios name = Linux File Server        #辅助名称
    server string = Samba                   #服务名称
    smb passwd file = /etc/samba/smbpasswd  #密码文件存放位置
    log file = /var/log/samba/log.%m        #日志文件
    max log size = 500                      #日志大小
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    idmap config * : backend = tdb   
    printing = bsd
[homes]
    comment = user_home
    path = /office/users/%U                #用户家目录
    browseable = no                        #其他人无法浏览
    writable = yes                         #可写
    valid users = %S                       #允许访问的用户
    sync always = yes                      #同步模式工作
    create mask = 0755                     #创建文件权限
    directory mask = 0755                  #创建目录权限
[public]
    comment = public
    path = /office/public
    write list = +staff                   #共享写列表
    read only = No                        #非只读模式,就是可写
    sync always = yes
    create mask = 0777
    directory mask = 0777
    guest ok = Yes                        #所有人可见
[ios]
    comment = ios
    path = /office/ios
    write list = +ios
    #read only = No            
    sync always = yes
    create mask = 0777
    directory mask = 0777
    guest ok = yes
[web]
    comment = web
    path = /office/web
    write list = +web
    #read only = No
    sync always = yes    
    create mask = 0777
    directory mask = 0777
    guest ok = Yes

   使用ios部门tom登录测试

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

   使用web部门bob登录测试

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

   使用test用户登录测试

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

samba的使用介绍到此,欢迎博友提出疑问和指正。

本文出自 “星矢” 博客,请务必保留此出处http://soulboy.blog.51cto.com/4007306/1390190

samba实现与windows共舞,布布扣,bubuko.com

samba实现与windows共舞

原文:http://soulboy.blog.51cto.com/4007306/1390190

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!