实践 samba 案例

版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://eric86.blog.51cto.com/115287/48386
背景:
我们今天要实现的环境是,假如一个公司有 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= 用户名

终于都完成了!希望大家踊跃提出自己的见解,使这个实践更加完善!
本文出自 网络实验室 博客,请务必保留此出处 http://eric86.blog.51cto.com/115287/48386