分类: 系统运维
2012-01-14 21:46:14
配置之前先了解一下比较重要的一些配置信息,有助于我们得心应手地驾驭:
Samba允许单独加载的用户配置:
include = /etc/samba/%G.smb.conf
include = /etc/samba/%U.smb.conf
安全性方面:
hosts allow = 192.168.2. EXCEPT 192.168.2.22
interfaces = 192.168.2.126
usrename map = /etc/samba/smbusers 映射虚拟账号,以保证实体账号不外泄,格式如:Linux_user = Samba_user1,Samba_user2,...
smb passwd file = /etc/samba/smbpasswd 为提高安全性,请确认此文件权限:-rw------- 1 root root 103 May 4 19:06
encrypt passwords = yes 以加密的方式通信
利用tcp_wrapper实行控制,防止非法,在/etc/hosts.allow 和 /etc/hosts.deny加入相应的控制地址,如:hosts.allow里加入smbd:192.168.2.0/24:allow,在 hosts.deny里加入smbd:all:deny
需求:
每个部分只有一个文件夹,再加一下公共文件目录作为共享用,任何人都可以通过公共目录与其它部门交流文件,本部门的文件只允许本部门操作,本部门只能看到
自己部门的文件夹,同时每个用户有一个私人目录用作保存私有文件。现在有sale,ad,pro三个部门,分别有员工sale1,sale2,sale3
ad1,ad2,ad3 pro1,pro2,pro3
mkdir -p -m 1777/samba/public
mkdir -m 770 /samba/sale
mkdir -m 770 /samba/ad
mkdir -m 770 /samba/pro
groupadd sale
groupadd ad
groupadd pro
useradd -g sale -s /sbin/nologin sale1
useradd -g sale -s /sbin/nologin sale2
useradd -g sale -s /sbin/nologin sale3
useradd -g ad -s /sbin/nologin ad1
useradd -g ad -s /sbin/nologin ad2
useradd -g pro -s /sbin/nologin pro1
useradd -g pro -s /sbin/nologin pro2
useradd -g pro -s /sbin/nologin pro3
chown sale1:sale /samba/sale
chown ad1:ad /samba/ad
chown pro1:pro /samba/pro
vi /etc/samba/smb.conf
[global]
workgroup = workgroup
server string = File System
security = user
username map = /etc/samba/smbusers
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = yes
log file=/var/log/samba/%m.log
max log size=50
include = /etc/samba/%U.smb.conf
include = /etc/samba/%G.smb.conf
[homes]
comment = users directories
browseable = no
writable = yes
valid users = %U
主配置文件配置完成,Copy成组、用户的单独配置文件
cp /etc/samba/smb.conf /etc/samba/sale.smb.conf
cp /etc/samba/smb.conf /etc/samba/ad.smb.conf
cp /etc/samba/smb.conf /etc/samba/pro.smb.conf
vi /etc/samba/sale.smb.conf
把include = /etc/samba/%U.smb.conf 和 include = /etc/samba/%G.smb.conf行注释掉,在最后加入如下:
[sale]
comment = sale directory
path = /samba/sale
browseable = yes
write list = @sale
valid users = @sale
create mask = 1640 //本配置是基于组的,所以1640权限同组用户只有读权限,而其它用户则无权限
directory mask = 1750
另外两个组配置文体操作相同,只是路径、可写用户、有效用户不同
启用tcp_wrapper访问控制
vi /etc/hosts.allow
smbd:192.168.6.0/24:allow
nmbd:192.168.6.0/24:allow
vi /etc/hosts.deny
smbd:all:deny
nmbd:all:deny
//除开6网段,其他的都拒绝访问
启用虚拟账号映射
vi /etc/samba/smbusers
sale1 = sale11
sale2 = sale21
ad1 = ad11
ad2 = ad21
pro1 = pro11
pro2 = pro21
重启服务,查看是否正常
service smb restart
testparm 测试一下smb是否正常
没问题了,你会看当一个用户,假如ad1访问时,可以看到ad这个部门文件夹,ad1这个ad1的用户目录,以及public这个文件,其他的都看不到。
下面介绍一个基于用户的个性化配置
上面的介绍中,ad1这个用户只能看到ad ad1
public3个共享,假如我想让ad1这个用户看到pro这个文件,要怎么实现呢?很简单,用用户的个性化配置
也就是上面smb.conf文件里include = /etc/samba/%U.smb.conf 这个定义的内容,好了 废话少说,开始行动
#cp /etc/samba/smb.conf /etc/samba/ad1.smb.conf
#vi /etc/samba/ad1.smb.conf
把include = /etc/samba/%U.smb.conf 和 include = /etc/samba/%G.smb.conf行注释掉,在最后加入如下:
[pro]
comment = sale directory
path = /samba/pro
browseable = yes
好了 重启samba服务,然后在客户端上访问(有时候在windows客户端上有缓存,可以用net use * /d /y 清楚)你会看到现在ad1 可以看到pro这个目录了!