文中有不对或者有不清楚的地方,请大家告诉我,谢谢!
 
Samba之文件共享配置实例
本例实现了不同的用户访问同一个共享目录具有不同的权限,便于管理和维护。基本上能满足一些企业用户的需求。
 
一.需求
1. 某公司有5个大部门,分别为:人事行政部、财务部、技术部、市场部、生产部。
2. 各部门的文件夹只允许本部门员工有权访问;各部门之间交流性质的文件放到公用文件夹中。
3. 每个部门都有一个管理本部门文件夹的管理员账号和一个只能新建和查看文件的普通用户权限的账号。
4. 公用文件夹中分为存放工具的文件夹和存放各部门共享文件的文件夹。
5. 对于各部门自己的文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。不是本部门用户不能访问本部门文件夹。
6. 对于公用文件夹中的各部门共享文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。本部门用户(包括管理员和普通用户)在访问其他部门共享文件夹时,只能查看不能修改删除新建。对于存放工具的文件夹,只有管理员有权限,其他用户只能访问。
 
二.规划
根据公司需求情况,现做出如下规划:
1. 在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:HR、 CaiWu、JiShu、ShiChang、ShengChan和Share。在Share下又有以下几个文件夹:HR、CaiWu、JiShu、ShiChang、ShengChan和Tools。
2. 各部门对应的文件夹由各部门自己管理,Tools文件夹由管理员维护。
3. HR管理员账号:hradmin;普通用户账号:hruser。
   CaiWu管理员账号:caiwuadmin;普通用户账号:caiwuuser。
   JiShu管理员账号:jishuadmin;普通用户账号:jishuuser。
   ShiChang管理员账号:shichangadmin;普通用户账号:shichanguser。
   ShengChan管理员账号:shengchanadmin;普通用户账号:shengchanuser。
   Tools管理员账号:admin。
 
文件夹之间的关系请见下图:
clip_image002
 
三.SAMBA RPM安装和启动
在系统中使用rpm –qa |grep samba和rpm –qa |grep smb来查看系统有没有安装该软件,如果没有安装则挂载系统盘,找到samba软件包,使用rpm –ivh samba*和rpm –ivh smb*即可安装。
使用RPM包安装后,samba的配置文件smb.conf默认在/etc/samba/下。
使用service smb start启动samba。
使用chkconfig --level 35 smb on,可以使samba随系统一起启动。
在/etc/selinux/config中将“SELINUX”项关闭,SELINUX=disabled。
 
四.新建用户
使用useradd命令新建系统账户,然后再使用smbpasswd –a建立SMB账户。
[root@Samba /]#useradd –s /sbin/nologin jishuadmin
[root@Samba /]#useradd –g jishuadmin –s /sbin/nologin jishuuser
[root@Samba /]#useradd –s /sbin/nologin shichangadmin
[root@Samba /]#useradd –g shichangadmin –s /sbin/nologin shichanguser
[root@Samba /]#useradd –s /sbin/nologin shengchanadmin
[root@Samba /]#useradd –g shengchanadmin –s /sbin/nologin  shengchanuser
[root@Samba /]#useradd –s /sbin/nologin admin
 
[root@Samba /]#smbpasswd –a hradmin
[root@Samba /]#smbpasswd –a hruser
[root@Samba /]#smbpasswd –a caiwuadmin
[root@Samba /]#smbpasswd –a caiwuuser
[root@Samba /]#smbpasswd –a jishuadmin
[root@Samba /]#smbpasswd –a jishuuser
[root@Samba /]#smbpasswd –a shichangadmin
[root@Samba /]#smbpasswd –a shichanguser
[root@Samba /]#smbpasswd –a shengchanadmin
[root@Samba /]#smbpasswd –a shengchanuser
[root@Samba /]#smbpasswd –a admin
 
五.新建目录
[root@Samba /]#cd Company
[root@Samba Company]#mkdir HR CaiWu JiShu ShiChang ShengChan Share
[root@Samba Company]#cd Share
[root@Samba Share]#mkdir HR CaiWu JiShu ShiChang ShengChan Tools
 
六.更改目录属性
使用chown命令更改目录的属主和属组。
[root@Samba /]#cd /Company/
[root@Samba Company]#chown hradmin.hradmin HR
[root@Samba Company]#chown caiwuadmin.caiwuadmin CaiWu
[root@Samba Company]#chown jishuadmin.jishuadmin JiShu
[root@Samba Company]#chown shichangadmin.shichangadmin ShiChang
[root@Samba Company]#chown shengchanadmin.shengchanadmin ShengChan
[root@Samba Company]#chown admin.admin Share
 
使用chmod命令更改用户访问该目录的权限。
[root@Samba Company]#chmod 1770 HR CaiWu JiShu ShiChang ShengChan
[root@Samba Company]#chmod -R 0775 Share
 
[root@Samba Company]#cd /Company/Share/
[root@Samba Share]#chown hradmin.hradmin HR
[root@Samba Share]#chown caiwuadmin.caiwuadmin CaiWu
[root@Samba Share]#chown jishuadmin.jishuadmin JiShu
[root@Samba Share]#chown shichangadmin.shichangadmin ShiChang
[root@Samba Share]#chown shengchanadmin.shengchanadmin ShengChan
[root@Samba Share]#chown admin.admin Tools
[root@Samba Share]#chmod 1775 HR CaiWu JiShu ShiChang ShengChan
 
七.配置Samba
Samba的配置文件在/etc/samba目录下,文件名为smb.conf。
[root@Samba /]#cd /etc/samba
[root@Samba samba]#cp smb.conf smb.conf.bak
[root@Samba samba]#vi smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = SAMBA
log file = /var/log/samba/%m.log
max log size = 50
security = user
passdb backend = tdbsam
 
[HR]
     comment = This is a directory of HR.
     path = /Company/HR/
     public = no
     admin users = hradmin
     valid users = @hradmin
     writable = yes
     create mask = 0750
     directory mask = 0750
 
[JiShu]
     comment = This is a directory of Technology.
     path = /Company/JiShu/
     public = no
     admin users = jishuadmin
     valid users = @jishuadmin
     writable = yes
     create mask = 0750
     directory mask = 0750
 
[CaiWu]
     comment = This is a directory of the Ministry of Finance.
     path = /Company/CaiWu/
     public = no
     admin users = caiwuadmin
     valid users = @caiwuadmin
     writable = yes
     create mask = 0750
     directory mask = 0750
 
[ShiChang]
     comment = This is a marketing directory.
     path = /Company/ShiChang/
     public = no
     admin users = shichangadmin
     valid users = @shichangadmin
     writable = yes
     create mask = 0750
     directory mask = 0750
 
[ShengChan]
     comment = This is a directory of Production.
     path = /Company/ShengChan/
     public = no
     admin users = shengchanadmin
     valid users = @shengchanadmin
     writable = yes
     create mask = 0750
     directory mask = 0750
 
[Share]
     comment = This is a share directory.
     path = /Company/Share/
     public = no
     valid users = admin,@hradmin,@caiwuadmin,@jishuadmin,
                         @shichangadmin,@shengchanadmin
     writable = yes
     create mask = 0755
     directory mask = 0755
 
八.测试
修改完smb.conf需要重启smb服务。
[root@Samba /]#service smb restart
 
客户机通过UNC路径访问samba。如:\\samba server ip,然后输入用户名和密码即可访问。
 
有时候当我们要进入不同的samba目录,但是这些目录都有自己的密码设置时,如果我们在点击这个目录时输入访问该目录的用户名和密码时,会提示“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次。”出现此问题是windows自身的限制,通常我们会注销当前windows用户,然后再重新登陆samba来访问其他目录。这样很麻烦,其实,我们可以在windows命令提示符下输入“net use * /del /y”来切断你本机当前的所有远程连接。然后点击其他目录输入该目录用户名和密码即可正常访问了。如果还是有提示,那就多执行这个命令两次,或者刷新一下登陆samba的页面即可。