SAMBA简单应用

首先: 做一个共享目录public ,使匿名用户可读,可写。
    第一步 编辑samba配置文件 /etc/samba/smb.conf

    [global] 全局配置
    workgroup = MYHOME     ---- 指定工作组
    server string = File Server ---- 服务器的说明 
    security = share   ----安全级别: 共分四种
                    1.share (任何用户都不需要密码,直接可以访问)
                    2.user   要提供用户名和密码才能访问
                    3.server 将用户和密码提交到另一服务器验证,如果递交失败,就 退到user安全级。 要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
       
    [public]              
    comment = Public Stuff        
    path = /home/public        
    public = yes                
    browseable = yes        
    writeable = yes


常用参数:
    comment :         目录说明
    path :             目录路径
    public             开放共享 默认为no , 如果=yes 表示无需身份验证
    browseable:       显示共享名称。
    valid users:       允许列表中的用户访问
    read only:         默认为yes,共享目录只读 。
    write able:         write able =no 与read only = yes 一样的效果
    wire list:           如果前面只读,只有在此里面的用户才有写的权利
    creat mask:       指定在共享目录里面建立文件的权限, 权限最高只能为 766
    directory mask:   指定建立目录的权限
    force user:         指定存取的用户张号
    force group:     指定用户存取组

  然后 建立共享目录,并设定目录的权限
    # mkdir /home/public
    # chmod 777 /home/public

实例:公司有三个部门分别是: 业务 财务 经理
每个部门假设有2个人员,分别为 yewu01,yewu02 caiwu01,caiwu02 jingli01 jingli02
  1   每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,
    而其他人不能看到你的宿主目录。
  2   建立一个caiwu 的文件夹, 要求对财务组和领导组的可看到, 只有caiwu01有写入的权限 ,   其他的不能访问
  3   建立一个yewu的文件夹, 要求对业务组可读写, 经理组的可查看.
  4   建立一个公司文件共享目录, 要求全部人可查看, 但每个人只能删除自己的文件, 不能删除别人。

  第一步 先建立用户的帐号与所属工作组, 建立对应的目录并给目录777的权限
            # groupadd caiwu
            # groupadd yewu
            # groupadd jinli
            # useradd caiwu01 -g caiwu
            # useradd caiwu02 -g caiwu
            # userdel yewu01 -g yewu
            # useradd yewu01 -g yewu
            # useradd yewu02 -g yewu
            # useradd jinli01 -g jinli
            # useradd jinli02 -g jinli
            # mkdir -p /home/samba/caiwu
            # mkdir -p /home/samba/yewu
            # mkdir -p /home/samba/public
            # chmod 777 -R /home/samba
            这里给777的权限,避免后面的因为权限而产生的麻烦.
            # 使用smbpasswd -a caiwu01(caiwu02...)将6个用户加到samba用户中.
           
第二步 设定samba配置文件.
              一般主要修改下面几个选项就可以了
#======================= Global Settings=====================================
            [global]
            workgroup = MYHOME
            hosts allow = 192.168.1.   (安全设定允许访问的网段, 注释掉意思不加限制允许任意网络访问)
            security = user
#============================ Share Definitions ==============================
            [homes]
            comment = Home Directories
            browseable = no
            writable = yes
            上面是设定每个用户的宿主目录, 一般samba是设定好的,无需更改.
            [caiwu]
            comment = caiwu directory
            path = /home/samba/caiwu
            public = no
            write list = caiwu01
            valid users = @caiwu,@jinli

            [yewu]
            comment = yewu directory
            path = /home/samba/yewu
            public = no
            write list = @yewu
            valid users = @jinli

            [public]
            comment = Public Stuff
            path = /home/samba/public
            public = yes
            browseable = yes
            writeable = yes
           
            完成后记得重起samba
            # service smb restart

第三步 设定public的权限, 因为samba的不能做到每个人只能删除自己的文件, 不能删除别人的功能,linux设置目录Sticky bit权限. 目录设定了Sticky的权限,在这个目录下的文件只有root与文件的所有者才能删除, 这样可以实现我们上面第四个要求.
            # chmod 1777 /home/samba/public

五   测试
    用windows或samba client测试你所做的是否正确.
 
加强配置
hosts deny = 192.168.0. 表示禁止所有来自192.168.0.0/24网段的IP地址访问
hosts allow = 192.168.0.24 表示允许192.168.0.24这个IP地址访问
 
hosts deny = .sale.com .net free 表示禁止.sale.com域和.net域及主机名为free的客户端访问public这个共享目录。中间用空格分开。
 
browseable = no表示隐藏该目录,直接输入文件夹路径还是可以看到
 
配置用户独立配置文件
cp smb.conf smb.conf.bose
编辑smb.conf ,在[global]中加入config file = /etc/samba/smb.conf.%U,表示samba服务器读取/etc/samba/smb.conf.%U文件,其中%U代表当前登录用户。命名规范与独立配置文件匹配
 
编辑boss帐号的独立配置文件smb.conf.boss,将tech目录里面的browseable = no删除,这样当boss帐号访问samba时,tech共享目录对boss帐号访问就是可见滴,这样主配置文件smb.conf和boss帐号的独立配置文件相搭配就有实现其他用户访问时tech共享目录是隐藏滴,而boss帐号访问时就是可见滴。
 
帐号映射
在global下添加一行字段username map = /etc/samba/smbusers开启用户帐号映射功能。
编辑/etc/samba/smbusers
smbusers文件保存帐号映射关系,其有固定滴格式:
samba帐号 = 虚拟帐号(映射帐号)