1 企业环境及需求  
服务器环境: RHEL5.1
samba
服务器目录:
企业数据目录: /companydata
公共目录: /companydata/share
销售部目录: /companydata/sales
技术部:/companydata/tech<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

企业员工情况:

经理: manager

销售部:销售部经理 king 、员工 sky 、员工 jay.......

技术部:技术部经理 kyhack 、员工 bill 、员工 kai ....

 

2 需求分析

对于建立公共目录 public 字段就可以实现匿名访问,员工只能访问本部门的共享目录,禁止访问非本部门的共享目录,我们可以通过设置目录共享字段“ browseable = no ”及字段“ valid users ”来实现其隐藏功能和相应的访问权限。这样设置不能很好得解决同一目录多种需求的权限设置,所以我们需要建立独立配置文件,为每个部门建立一个组后并为每个组建立配置文件来实现隔离用户权限会比较灵活。


3 解决方案

1 )建立各部门专用共享目录

使用 mkdir 建立需求的共享目录以便分门别类的存储相应资料。

[root@rhel5 ~]# mkdir /companydata

[root@rhel5 ~]# mkdir /companydata/share

[root@rhel5 ~]# mkdir /companydata/sales

[root@rhel5 ~]# mkdir /companydata/tech

[root@rhel5 ~]# chmod -R 777 /companydata/      // 设置共享目录权限

 

2 )添加 samba 服务器描述及设置 smbpasswd 文件

workgroup = worgroup      // 设置工作组

server string = Company Samba File Server     // 服务器描述

#passdb backend = tdbsam     // 注释掉,为了指定 Samba 用户验证

smb passwd file = /etc/samba/smbpasswd     // 添加这一条,指定 samba 密码存放位置

默认 /etc/samba/ 目录下没有 smbpasswd 文件 , 我们要先关闭 samba tdbsam 验证。再加上这一条 smb passwd file = /etc/samba/smbpasswd ,然后保存退出。

3) 添加用户和组

为各个部门建立相应的组,先建立销售部组 sales ,技术部组 tech ,然后用 useradd 命令添加总经理帐号 manager 及各个员工的帐号并加入相应的用户组。

[root@rhel5 ~]# groupadd sales

[root@rhel5 ~]# groupadd tech     // 添加组

[root@rhel5 ~]# useradd manager

[root@rhel5 ~]# useradd -g sales king

[root@rhel5 ~]# useradd -g sales sky

[root@rhel5 ~]# useradd -g sales jay

[root@rhel5 ~]# useradd -g tech kyhack

[root@rhel5 ~]# useradd -g tech bill

[root@rhel5 ~]# useradd -g tech kai     // 添加用户并加到相应的组

 

[root@rhel5 ~]# smbpasswd -a king

New SMB password:

Retype new SMB password:

Added user king.

[root@rhel5 ~]# smbpasswd -a sky

New SMB password:

Retype new SMB password:

Added user sky. ……………… // 添加 samba  用户


4 )配置 smb.conf 文件

1 )建立单独配置文件

用户配置文件使用用户名命令哈,组配置文件使用组名命令。

[root@rhel5 samba]# ls

manager.smb.comf  passdb.tdb      secrets.tdb  smbpasswd  tech.smb.conf

lmhosts      sales.smb.comf  smb.conf     smbusers

2 )设置主配置文件 smb.conf

这里我们配置 smb.conf 主配置文件,在 global 中添加相应字段哈,确保 samba 服务器的主配置文件可以调用独立的用户配置文件和组配置文件。

workgroup = workgroup

  server string = company samba file server

  include = /etc/samba/%U.smb.conf    // 加载 /etc/samba 目录下格式为 用户名 .smb.conf” 的配置文件

  include = /etc/samba/%G.smb.conf    // 加载 /etc/samba 目录下格式为 组名 .smb.conf” 的配置文件

[public]

   comment = company share

   path = /companydata/share

   public = yes


5 )设置总经理 manager 配置文件

vim /etc/samba/manager.smb.conf

[sales]

    comment = sales data

    path = /companydata/sales

    writable = yes

    valid users = manager

 

[tech]

    comment = tech tata

    path = /companydata/tech

    writable =yes

    valid users = manager


6 )设置销售部组 sales 配置文件

vim /etc/samba/sales.smb.conf

[sales]

    comment = sales data

    path = /companydata/sales

    writable = yes

    valid users = @sales ,manager    # 设置访问组


7 )设置技术部组 tech 配置文件

vim /etc/samba/tech.smb.conf

[tech]

   comment = company tech

   path = /companydata/tech

   writable =yes

   valid users = @tech,manager

8 )开启 samba 服务

service smb start

 

本文参考:王乾的 第2季 Samba服务全攻略