samba企业应用
2013-12-29 13:09
253 查看
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。服务器系统 FreeBSD 8.1-64bit
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会覆盖用户原有的用户权限,即使他们原先只有读的权限。
希望这个案例对你有帮助!
相关文章推荐
- 蓝牙4.0设计 CC2540
- 分布式版本控制系统Mercurial介绍与使用小记
- 在什么时候需要使用“常引用”?
- 为大数据时代做好准备——来自《大数据的冲击》一书精彩片段(转)
- axis1.4部署webService 读取和响应Header信息\传送文件\BasicHandler\ SimpleChain\传递对象集合等测试
- 小强的HTML5移动开发之路(3)——HTML5与HTML4比较
- 小强的HTML5移动开发之路(3)——HTML5与HTML4比较
- UNIX网络编程之简易客户端与服务端
- 算是自己的一个突破
- MySQL索引背后的数据结构及算法原理
- 浅谈Java中的Set,List,Map的区别
- 算法导论系列文章之简单数组栈
- 将字符串转化为整数
- jsp中的directive
- 学生应尽量购买正版
- [转]Iphone m3u8 segmenter from ffmpeg for video streaming
- 基于SSLStrip的HTTPS会话劫持
- 课程1——数据类型和变量
- dumpbin查看dll中函数名字的问题
- makefile下$(wildcard $^),$^,$@,$?,$<,$(@D),$(@F)