一、samba要求:
公司有财务,技术,领导3个部门,我们分别为3个部门建立3个用户组为caiwu,network,lingdao;

三个部门里各有2个用户,我们建用户分别为caiwu01,caiwu02,network01,network02,lingdao01,lingdao02

然后我们分别就公司的具体情况建立相应的目录及访问权限,通过以下的例子,希望大家能在平时的工作中灵活的应用samba的安全权限来设置你们的samba文件服务器。

1。首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。

2。建立一个caiwu的文件夹,希望caiwu组和lingdao组的人能看到,network02也可以访问,但只有caiwu01有写的权限。

3。建立一个lindao的目录,只有领导组的人可以访问并读写,还有network02也可以访问,但外人看不到那个目录

4。建议一个文件交换目录exchange,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。

5。建议一个公共的只读文件夹public,所有人只读这个文件夹的内容。

二、操作

#groupadd caiwu

#groupadd network

#groupadd lingdao

#useradd caiwu01 -g caiwu

#useradd caiwu02 -g caiwu

#useradd network01 -g network

#useradd network02 -g network

#useradd lingdao01 -g lingdao

#useradd lingdao02 -g lingdao

然后我们使用smbpasswd -a caiwu01的命令为6个帐户分别添加到samba用户中

#mkdir /home/samba

#mkdir /home/samba/caiwu

#mkdir /home/samba/lingdao

#mkdir /home/samba/exchange

#mkdir /home/samba/public

我们为了避免麻烦可以在这里把上面所有的文件夹的权限都设置成777,我们通过samba灵活的权限管理来设置上面的5点要求。



三、vim /etc/samba/smb.conf


[global] 

        workgroup = Ubuntu 

        server string = Ubuntu Samba Test 

        security = user 

        encrypt passwords = true 

        smb passwd file = /etc/samba/smbpasswd 


[homes] 

        comment = Home Directories 

        browseable = no 

        writable = yes 

        valid users = %S 

        create mode = 0664 

        directory mode = 0775



#homes段满足第1条件,需要说明的是需要在/home目录里手动为每位用户建立相应的家目录,并设置好相应权限。


[caiwu]#满足我们的第2要求
        comment = caiwu
        path = /home/samba/caiwu
        public = no
        valid users = @caiwu,@lingdao,network02
        write list = caiwu01[lingdao]#满足我们的第3要求
         comment = Lingdao 

        path = /home/samba/lingdao 

        public = no 

        valid users = @lingdao,network02 

        writeable = yes 


[exchage] 

        comment = Exchange File Directory 

        path = /home/samba/exchange 

        public = yes 

        writable = yes



#exchange段基本能满足我们的第4要求,但不能满足每个人不能删除别人的文件这个条件,即使里设置了mask也是没用,其实这个条件只要unix设置一个粘着位就行

chmod -R 1777 /home/samba/exchange

注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求"有些疑问!!!"

[Public]#满足我们的第5要求。


        comment = read only Public


        path = /home/samba/public


        public = yes


        read only = yes



重启服务:#/etc/rc.d/init.d/smb restart



到此配置结束,可以使用命令:testparm /etc/samba/smb.conf检测samba配置文件



四、验证samba


在windows下直接在运行里输入://server


然后输入相应用户名和密码就可以访问



在linux下可以使用:


smbclient //服务器ip/caiwu -U caiwu01

#以caiwu01用户的名义登录caiwu目录

smbmount //服务器ip/caiwu /mnt/caiwu -o username=caiwu01

#把服务器的财务目录映射到本地的/mnt/caiwu目录