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

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

【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会覆盖用户原有的用户权限,即使他们原先只有读的权限。

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

 

【51CTO.com独家特稿,转载请注明原文作者和出处。】

【编辑推荐】

  1. 企业内网开发环境部署与管理全攻略(FreeBSD+PHP)
  2. Samba服务器简介与快速配置指南
  3. 使用GFS和DRBD在CentOS 5.5上进行Samba CTDB集群部署

 

 

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2009-05-05 12:00:32

虚拟化部署应用

2009-11-09 14:08:23

模块化路由器

2009-04-21 10:13:00

模块化路由器Cisco

2021-08-11 11:25:32

区块链应用前景应用案例

2010-01-06 15:21:00

软交换技术

2019-05-28 12:07:43

云应用警务云平台

2021-08-16 09:00:00

架构开发保险

2011-11-29 14:10:43

2011-11-30 13:29:46

2015-04-13 09:51:27

dockerdocker应用现状

2010-10-11 09:28:07

2010-09-09 09:40:32

2011-05-17 10:49:55

OracleSQL Server

2010-09-14 09:04:10

2009-12-30 10:23:30

VLAN技术

2009-11-24 14:22:55

存储路由技术

2011-09-09 15:31:55

PowerVM虚拟化云计算

2009-11-09 14:01:45

MSR路由器

2010-04-30 17:50:25

2009-07-07 14:28:50

点赞
收藏

51CTO技术栈公众号