samba企业应用

Samba在企业中的简单应用案例

2011-01-27 09:20 抚琴煮酒 51CTO.com 字号: T | T
一键收藏,随时查看,分享好友!

本文介绍Samba的一个企业应用案例。这个案例在很多公司需要,只要根据具体情况修改配置文件就可以了。其实原理也很简单,就是用户的读与写权限要分开。主要需求包括所有员工在公司内漫游办公,员工分为三组身份,设置不同的文件读写权限。案例环境为FreeBSD 8.1+Samba 3.4。

AD: 2013云计算架构师峰会课程资料下载


    【51CTO独家特稿】Samba服务器虽然很多企业都在用,但Samba其实可以说的东西很多,也有很多用法。之前我们介绍了Samba的实用技巧三种权限的机制,下面会介绍一个Samba的企业应用案例。

    作者简介:余洪春(博客),网名抚琴煮酒,英文名Andrew.Yu,武汉某外企高级Linux/Unix系统管理员、项目实施工程师,红帽RHCE讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。

    本文介绍的Samba应用案例在很多公司需要,只要根据具体情况修改配置文件就可以了。其实原理也很简单,就是用户的读与写权限要分开。

    案例要求与分析

    需求1

    所有与员工都能在公司内漫游办公,但不管在那台电脑上工作,都要把自己的文件数据库存在Samba文件服务器上。

    分析:

    需要Samba作为文件服务器,为所有的用户创建帐号和目录

    需求2

    为所有的用户创建帐号和目录,不分配shell

    假设市场部有tom、jack,他们属于sales组

    技术部有red、blue,他们属于tech组

    总经理是ceo、财务是fineance,他们均属于lead组

    分析:

    建组sales,tech及leader组

    所有市场部的员工加入sales组

    技术部的员工加入tech组

    ceo和fineance加入leader组

    需求3

    sales组的文件只有tom和leader组的人可以读写,其它人只能看(非认证用户是不能进入目录的);tech组的文件只有red和leader组的人可以读写,其它人只能看(非认证用户是不能进入目录的);

    分析:

    通过samba权限控制来做。

    实施步骤

    首先是安装samba34。

    1. 服务器系统 FreeBSD 8.1-64bit
    2. samba版本 samba3.4
    #cd /usr/ports/net/samba34
    #make install clean
    #cp /usr/local/share/examples/samba34/smb.conf.default /usr/local/etc/smb.conf
    #echo 'nmbd_enable="YES"' >> /etc/rc.conf
    #echo 'smbd_enable="YES"' >> /etc/rc.conf
    #记得用>>追加符,不然你的rc.conf文件会被清零的:)

    启动samba

    #/usr/local/etc/rc.d/samba start

    先建立组和用户。把用户加入相应的组,给用户分配一个不可用的shell;由于组比较多,我建议在纸上画好组织结构图,这样也方便自己理解。

    添加用户组

    # pw groupadd sales
    # pw groupadd tech
    # pw groupadd leader

    然后用pw groupshow分别得知sales、tech及leader的GID分别为1005、1006和1007

    添加用户

    # pw useradd tom -s /sbin/nologin -g 1005
    # pw useradd jack  -s /sbin/nologin -g 1005
    # pw useradd red -s /sbin/nologin -g 1006
    # pw useradd blue -s /sbin/nologin -g 1006
    # pw useradd ceo -s /sbin/nologin -g 1007
    # pw useradd fineance -s /sbin/nologin -g 1007

    将其分别添加进samba用户库,此处的samba密码尽量选择不一样,并注意密码的复杂性。

    # smbpasswd -a jack
    New SMB password:
    Retype new SMB password:
    Added user jack.
    # smbpasswd -a red
    New SMB password:
    Retype new SMB password:
    Added user red.
    # smbpasswd -a blue
    New SMB password:
    Retype new SMB password:
    Added user blue.
    # smbpasswd -a ceo
    New SMB password:
    Retype new SMB password:
    Added user ceo.
    # smbpasswd -a fineance
    New SMB password:
    Retype new SMB password:
    Mismatch - password unchanged.
    Unable to get new password.
    research_jail# smbpasswd -a fineance

    建立samba的文件目录,并分配权限。

    # mkdir /home/sales
    # mkdir /home/tech
    # ls -ld /home/sales
    drwxr-xr-x  2 root  wheel  512 Jan 25 05:36 /home/sales
    # ls -ld /home/tech
    drwxr-xr-x  2 root  wheel  512 Jan 25 05:36 /home/tech
    #给予sales和tech目录777权限的目的,是为了防止它们被本身的权限控制,用户能访问目录的最终权限是被文件目录的权限和samba权限的最小权限交集所控制
    # chmod 777 /home/sales
    # chmod 777 /home/tech

    给这个二个目录建议sgid权限,将能建立的文件都划归其组所有

    # chgrp sales /home/sales
    # chgrp tech /home/tech
    # chmod g+s /home/sales
    # chmod g+s /home/tech
    [root@localhost samba]# ls -ld /home/sales /home/tech
    # ls -ld /home/sales /home/tech
    drwxrws---  2 root  sales  512 Jan 25 05:36 /home/sales
    drwxrws---  2 root  tech   512 Jan 25 05:36 /home/tech

    用samba的权限来严格限制这二个目录的权限

    修改配置文件vim /etc/samba/smb.conf,在文件的最后加入目录

    [sales]
    path = /home/sales
    public = no
    valid users = @sales,@leader
    write list = tom,@leader
    create mask = 0770
    directory mask = 0770
    [tech]
    path = /home/tech
    public = no
    valid users = @tech,@leader
    write list = red,@leader
    create mask = 0770
    directory mask = 0770

    重启服务器

    #/usr/local/etc/rc.d/samba start

    总结

    测试时我为了避免windows的NETBIOS的bug问题,直接开了三台windows机器,外加N台虚拟机,省得不停的net use /delete,免得闹心;测试结果还是比较成功的,其实这里主要也只牵涉到三个知识点,我这里归纳下:

    一、用户的最终权限分配为目录的权限和samba权限的最小交集;

    二、valid为认证用户,没经过认证的用户是不能看到其目录的文件的;

    三、write list会覆盖用户原有的用户权限,即使他们原先只有读的权限。

    希望这个案例对你有帮助!

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值