背景:
我们今天要实现的环境是,假如一个公司有3个部门,分别是财务部cwb,工程部gcb,领导层ldc.由于windows病毒泛滥,作为文件服务器经常在使用中被病毒感染导致经常维护,直接的导致了工作效率也增加了管理员的工作量。因此领导层要求管理员立刻解决问题。

要求:
1.每一个员工有各自独立的目录,并且之能由本人访问。其它员工不能看到更不能访问。
2.各个部门有自己独立的共享目录,并且只能由本部门的员工访问,但领导层可以访问所有部门共享目录。
3.建立一个公用目录,员工可以写自己的数据和删除,但别人不能修改其它员工数据。

备注:
1.为了实验的测试需要,我们建立3个测试帐号,顺便演示怎么创建samba用户.
2.由于有朋友反应说文本下配置服务。我想想也是,文本模式才是最原始的东西,也是最核心的东西。大家会文本模式,图形模式就基本没问题了。

步骤:
安装samba参考前篇文章 [url]http://eric86.blog.51cto.com/115287/48311[/url]
我们这里因为只用到文本模式,所以只要安装samba-3*.rpm就可以了

创建三个部门组
#groupadd cwb

#groupadd gcb

#groupadd ldc

创建测试数据
#useradd cwb01 -g cwb

#useradd gcb01 -g gcb

#useradd ldc -g ldc

把用户添加到samba数据库
#smbpasswd -a cwb01

#smbpasswd -a gcb01

#smbpasswd -a ldc01

创建文件夹
#mkdir /home/samba

#mkdir /home/samba/cwb

#mkdir /home/samba/gcb

#mkdir /home/samba/ldc

#mkdir /home/samba/exch

我们为了避免麻烦可以在这里把上面所有的文件夹的权限都设置成777

配置samba文件.
#vi /etc/samba/smb.conf

以下部分为我在smb.conf里修改或增加的内容。没有出现的不要动,默认就好。 蓝色修改红色增加
[global]
        server string = Eric86's Samba Server
        log file = /var/log/samba/%m.log
        max log size = 50
        dns proxy = No
        cups options = raw
        encrypt passwords = yes
        smb passwd file = /etc/samba/smbpasswd      

[homes]
        comment = Home Directories
        valid users = %S     #区分大小写
        read only = No
        create mask = 0664
        directory mask = 0775
        browseable = No
#以上第一个要求就完成了

[cwb]
        path = /home/samba/cwb
        valid users = @cwb, @ldc
        write list = @cwb
        public = no
        printable = no

[gcb]
        path = /home/samba/gcb
        valid users = @gcb, @ldc
        write list = @gcb
        public = no
        printable = no

[ldc]
        path = /home/samba/ldc
        valid users = @ldc
        browseable = No
        public = no
        printable = no
#以上完成第二要求

[exch]
        path = /home/samba/exch
        read only = No
        guest ok = Yes
        public = yes
        writable = yes
#以上为完成第三要求而作

完成以后保存.再对数据进行测试
#testparm

然后大家可能会发现我在配置时说第三要求没有真正实现,是的我们现在来实现。
#chmod -R 1777 /home/samba/exch
注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求.其实这里只是设置unix的一个粘着位!

到此为止我们的设置已经能实现我们的共享文件要求,记得重启服务
#service smb restart

测试方面大家可以用windows测试,也可以用smbclient工具测试。
#smbclient -L 服务器ip -U 用户名
或挂载目录到本地
#smbmount //服务器ip/目录 /mnt/目录 -o username=用户名

终于都完成了!希望大家踊跃提出自己的见解,使这个实践更加完善!