Samba服务器搭建完全指南
?
?
?
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协定做连结的自由软件。目前的版本(v3)不仅可存取及分享SMB的资料夹及打印机,本身还可以整合入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。
本文主要介绍samba服务器在企业内部的利用,以实际运行中的例子作为参考。
(操作系统:CentOS 6.0 32bit)
1、文件系统结构规划:
[root@backup1 share]# tree -a
.
`-- samba
? ? `-- admin
? ? ? ? |-- 营业部 ? ? ? drwxrwxr-x admin admin
? ? ? ? | ? |-- 员工1 ? ? ? ? ?drwxrws--- ?user1 admin ??
? ? ? ? | ? |-- 员工2 ? ? ?drwxrwsr-x ?user2 admin ?
? ? ? ? | ? `-- 员工3 ? ? ?drwxrwsr-x ?user3 admin ?
? ? ? ? |-- 其他 ? ? ?drwxrwxr-x admin admin
? ? ? ? | ? |-- 完全共享 ? ? ?drwxrwsrwt admin admin 该目录属性为3777
? ? ? ? | ? `-- 资料共享 ? ? ? ?drwxrwxr-x ?admin admin ?
? ? ? ? | ? ? ? |-- 书籍 ? ? ?drwxrwxr-x ?admin admin?
? ? ? ? | ? ? ? |-- 各种文档 ? ? ? ? ? ?drwxrwxr-x ?admin admin ?
? ? ? ? | ? ? ? `-- 软件下载 ? ? ?drwxrwxr-x ?admin admin?
? ? ? ? |-- 开发部? ? ? ? ? ? ?drwxrwxr-x ?admin admin
? ? ? ? | ? |-- 员工4 ? ? ? ? ? ? ?drwxrwsr-x user4 ?admin?
? ? ? ? | ? |-- 员工5 ? ? ? ? ? ? ? ? drwxrwsr-x user5 ?admin?
? ? ? ? | ? |-- 员工6 ? ? ? ? ? ? ? ? ? drwxrwsr-x user6 ? ?admin?
? ? ? ? | ? |-- 员工7 ? ? ? ? ? ? ? ? ? drwxrwsr-x user7 ?admin?
? ? ? ? | ? |-- 员工8 ? ? ?drwxrwsr-x user8 ?admin?
? ? ? ? | ? |-- 员工9 ? ? ? ? ? ? ?drwxrwsr-x user9 ?admin?
? ? ? ? | ? `-- 员工10 ? ? ? ? ? ? ? ? ? drwxrwsr-x user10 ?admin ? ??
? ? ? ? |-- 管理部 ? ? ? ? ? ? ? ? ? ? ? drwxrwsr-x ?admin admin ? ?
|-- |--财务相关 ? ? ? ? ? ? ? ?drwxrws--- ?finance admin ??
|-- |--人事相关 ? ? ? ? ? ? ? ?drwxrws--- ?finance admin ??
|
? ? ? ? `-- 董事会?
? ? ? ? ? ? `-- 董事长? ? ? ? ? ? drwxrwx--- ?admin admin ??
?
注:以下admin/ceo/user1设为管理员用户
2、文件及目录说明?
? 1)该文件系统的入口为/home/share/samba/admin目录,所以共享的目录都保存于该目录之下
? 2)admin目录下设“营业部”、“开发部”、“其他”、"管理部"、"董事会"等部门。各部门之间的功能如下:
? ? ?营业部:用于存放营业部用户的文件内容,目前用户相互之间不影响,除管理员之外,不接受任何用户访问。
? ? ?开发部:主要存放开发部用户的数据资料,相互之间不影响,除管理员之外,不接受任何用户访问。
? ? ?董事会:主要存放股东的资料,除管理员之外,不接受任何用户访问。
? ? ?管理部:用于存放出纳、会计、人事等相关资料,除管理员之外,不接受任何用户访问。
? ? ?其他:内含完全共享文件夹(用于临时备份用,为我们所有用户具有读写权限,但建立的文件只有该用户及admin具有删除修改权限)和资料共享文件夹(只读共享,除管理员之外,其余用户为只读访问)。
?
3、目录权限、用户权限及相关说明
? ?用户权限:admin具有最高的权限,ceo,user1具有可以管理除完全共享中的部分内容之外的全部权限。
? ?其他用户对本文件夹及其在“完全共享”中建立的文件夹具有所有权限,对“资料共享”文件夹具有查看权限。
? ?完全共享文件夹:主要给用户用于临时备份用的文件夹,可以具有所建文件夹的全部权限,并只有该用户和admin才有修改权限。
? ?资料共享文件夹:普通用户具有查看内容权限,管理员用户具有修改内容的权限。
? ?管理部:普通用户无访问权限,管理员用户及用户所属主具有所有权限。
?
4、目录的建立
? ?注:假设所有设定都是在root权限下进行.
? ?1) 建立相关目录结构
? ? ? mkdir -p /home/share/samba/admin/营业部/员工1
? ? ? cd /home/share/samba/admin/营业部/
? ? ? mkdir 员工2 员工3
? ? ? mkdir -p /home/share/samba/admin/开发部/员工4
? ? ? cd ../开发部
? ? ? mkdir 员工8 员工6 员工10 员工9 员工7 员工5 ? ? ?
? ? ? mkdir -p /home/share/samba/admin/管理部/财务相关
? ? ? cd ../管理部
? ? ? mkdir 人事相关
? ? ? mkdir -p /home/share/samba/admin/董事会/董事长
? ? ? mkdir -p /home/share/samba/admin/其他/完全共享
? ? ? cd ../其他
? ? ? mkdir -p 资料共享/书籍
? ? ? cd 资料共享
? ? ? mkdir 软件下载 各种文档
?
5、创建用户和用户组
? 1)创建用户组 admin、business、develop、finance
? ? groupadd admin;groupadd business;groupadd develop;groupadd finance
? 2)创建各自的用户
? ? useradd -g admin -G business,develop,finance -d /home/share/samba/admin -s /sbin/nologin admin
? ? useradd -g admin -G business,develop,finance -d /home/share/samba/admin/董事会/董事长 -s /sbin/nologin ceo
? ? useradd -g admin -G business,develop,finance -d /home/share/samba/admin/营业部/员工1 -s /sbin/nologin user1
? ? useradd -g business -G develop -d /home/share/samba/admin/营业部/员工2 -s /sbin/nologin user2
? ? useradd -g business -G develop -d /home/share/samba/admin/营业部/员工3 -s /sbin/nologin user3
? ? useradd -g develop -G business -d /home/share/samba/admin/开发部/员工4 -s /sbin/nologin user4
? ? useradd -g develop -G business -d /home/share/samba/admin/开发部/员工6 -s /sbin/nologin user6
? ? useradd -g develop -G business -d /home/share/samba/admin/开发部/员工8 -s /sbin/nologin user8
? ? useradd -g develop -G business -d /home/share/samba/admin/开发部/员工10 -s /sbin/nologin user10
? ? useradd -g develop -G business -d /home/share/samba/admin/开发部/员工5 -s /sbin/nologin user5
? ? useradd -g develop -G business -d /home/share/samba/admin/开发部/员工7 -s /sbin/nologin user7
? ? useradd -g develop -G business -d /home/share/samba/admin/开发部/员工9 -s /sbin/nologin user9
? ? useradd -g finance -G business,develop -d /home/share/samba/admin/管理部 -s /sbin/nologin finance
?
6、设置目录相关权限
? 1)设置admin文件夹权限为@admin为具有所有权限,其他为只读。
? ?chown admin:admin -R /home/share/samba/admin/
? 2)设置营业部的权限
? ?cd /home/share/samba/admin/营业部/
? ?chown user1.admin -R 员工1/
? ?chown user2.admin -R 员工2/
? ?chown user3.admin -R 员工3/
? ?chmod 2775 -R *
? ?chmod 2770 -R 员工1/?
?
? 3)设置开发部的权限
? ? cd /home/share/samba/admin/开发部
? ? chown user4.admin -R 员工4/
? ? chown user8.admin -R 员工8/
? ? chown user5.admin -R 员工5/
? ? chown user10.admin -R 员工10/
? ? chown user7.admin -R 员工7/
? ? chown user9.admin -R 员工9/
? ? chown user6.admin -R 员工6/
? ? chmod 2775 -R *
?
? 4)设置董事会的权限
? ? cd /home/share/samba/admin/董事会
? ? chown ceo.admin -R 董事长/
? ? chmod 2770 -R 董事长/
? 5)设置管理部的权限
? ? cd /home/share/samba/admin/管理部
? ? chown finance.admin -R 财务相关/
? ? chown finance.admin -R 人事相关/
? ? chmod 2770 -R 财务相关/
? ? chmod 2770 -R 人事相关/
?
? 6)共享目录的权限设定
? ? cd /home/share/samba/admin/其他/
? ? chown admin.admin -R *
? ? chmod 3777 -R 完全共享
? ? chmod 755 -R 资料共享/
?
7、建立samba配置文件smb.conf
====================Samba 配置文件====================
[global]
workgroup=WORKGROUP
netbios name=安徽开源软件
server string = Anhui OSS Linux Samba Server
security=user
[admin]
comment=管理所有文件夹
path=/home/share/samba/admin/
create mask= 0664
directory mask= 0775
writeable = yes
valid users = user1,@admin
browseable = no
[资料共享]
path=/home/share/samba/admin/其他/资料共享/
writeable = yes
browseable = yes
? ? ? ? guest ok = no
?
[管理部]
path=/home/share/samba/admin/管理部
writeable=yes
browseable=yes
directory mask =0770
create mask=0660
guest ok=no
valid users =@admin,@finance
[完全共享]
path=/home/share/samba/admin/其他/完全共享
writeable = yes
browseable = yes
#guest ok = yes
create mask=0664
directory mask = 0775
[员工1]
path=/home/share/samba/admin/营业部/员工1
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user1,@admin
browseable = yes
? ?comment = 员工1的文件夹
[员工3]
path=/home/share/samba/admin/营业部/员工3
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user3,@admin
browseable = yes
? ?comment = 员工3的文件夹
[员工2]
path=/home/share/samba/admin/营业部/员工2
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user2,@admin
browseable = yes
comment=员工2的文件夹
?
[员工4]
path=/home/share/samba/admin/开发部/员工4
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user4,@admin
browseable = yes
comment=员工4的文件夹
?
[员工10]
path=/home/share/samba/admin/开发部/员工10
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user10,@admin
browseable = yes
comment=员工10的文件夹
?
[员工5]
? ?path=/home/share/samba/admin/开发部/员工5
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user5,@admin
browseable = yes
comment=员工5的文件夹
?
[员工7]
? ?path=/home/share/samba/admin/开发部/员工7
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user7,@admin
browseable = yes
comment=员工7的文件夹
?
[员工6]
? ?path=/home/share/samba/admin/开发部/员工6
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user6,@admin
browseable = yes
comment=员工6的文件夹
?
[员工8]
? ?path=/home/share/samba/admin/开发部/员工8
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user8,@admin
browseable = yes
comment=员工8的文件夹
?
[员工9]
? ?path=/home/share/samba/admin/开发部/员工9
writeable = yes
directory mask = 0775
create mask = 0664
valid users = user9,@admin
browseable = yes
comment=员工9的文件夹
?
[董事长]
? ?path=/home/share/samba/admin/董事会/董事长
writeable = yes
directory mask = 0775
create mask = 0664
valid users = ceo,@admin
browseable = yes
comment=董事长的文件夹
?
[公司网站]
? ?path=/var/www/html
? ? ? writeable = yes
? ? ? directory mask = 0775
? ? ? create mask = 0664
? ? ? valid users = @admin,@apache
? ? ? browseable = yes
? ? ? comment=公司网站的文件夹
?
?
====================Samba 配置文件====================
?
8、建立samba登录密码,该密码文件保存于/etc/samba/smbpasswd中。
? 格式:smbpasswd -a 用户名(必须为linux中存在的用户)
? ? ? ?smbpasswd -a admin;smbpasswd -a ceo;smbpasswd -a user1;smbpasswd -a user4;smbpasswd -a user8;smbpasswd -a user2;smbpasswd -a user3;smbpasswd -a user6;smbpasswd -a user5;smbpasswd -a user7;smbpasswd -a user9;smbpasswd -a user10;smbpasswd -a finance
?
?
9、开放防火墙,将tcp端口139,445和UDP端口137,138通过
? iptables -I INPUT -p tcp -m multiport --dport 139,445 -j ACCEPT
? iptables -I INPUT -p udp --dport 137:138 -j ACCEPT
?
10、客户端访问Samba服务器
? ?1)通过windows客户端访问?
? ? ?在地址栏中输入\\server_ip 或 \\server_ip\共享文件夹名
? ?2)通过ubuntu访问:
? ? ?nautilus smb://server_ip/ 或 nautilus smb://server_ip/共享文件夹名
?
?
11、磁盘限额设定
? ? 1)首先查找是否有限额程序安装,执行rpm -qa|grep quota,未安装的话,自行安装。
? ? 首先设置需要限额使用的盘符(必须为独立的盘符)
? ? vi /etc/fstab
? ? /dev/VolGroup00/LogVol01 /home ? ? ? ? ? ? ? ? ? ext3 ? ?defaults,usrquota,grpquota ? ? ? ?1 2
? ? (保存后重启)
? ? 2)重启完成之后,执行如下命令
? ? quotacheck -cmug /home/
? ? 在/home下产生以2个文件,分别为:aquota.group ?aquota.user
? ? 3)执行quotaon -auvg ,将用户和组的限额全部打开
? ? 4)进行限额设定:
? ? ? ?edquota -u user8 (设定值:3-3.5GB)
? ? ? ?edquota -u user3 (设定值:4-4.5GB)
? ? ? ?edquota -u user6 (设定值:3-3.5GB)
? ? ? ?edquota -u user10 (设定值:3-3.5GB)
? ? ? ?edquota -u user2 (设定值:4-4.5GB)
? ? ? ?edquota -u user3 (设定值:4-4.5GB)
? ? ? ?edquota -u user4(设定值:5-6GB)
? ? ? ?edquota -u user5(设定值:3-3.5GB)
? ? ? ?edquota -u user9(设定值:3-3.5GB)
? ? ? ?edquota -u user7(设定值:3-3.5GB)
? ? ? ?edquota -u finance(设定值:3-3.5GB)
? ? ? ?edquota -u ceo(设定值:10-15GB)
? ? ? ?edquota -u user1(设定值:15GB-20GB)
? ? ? ?(依次增加:......)
?
到此为止,Samba的操作已经完成,您也赶紧试试吧!
?
?
来源:安徽开源软件有限公司
地址:http://www.anhuioss.com/cn/
?
?