德克云技术联盟
标题:
搭建稳定的文件服务器
[打印本页]
作者:
李臻宇
时间:
2014-7-25 17:10
标题:
搭建稳定的文件服务器
本帖最后由 李臻宇 于 2014-7-25 17:12 编辑
samba.jpg
(3.9 KB, 下载次数: 437)
下载附件
保存到相册
2014-7-25 17:12 上传
What is Samba?
1、Windows 平台之间通过网络共享文件和打印机,使用的技术是:SMB(Server Message Block)。这种网络通信基微软的网络协议NetBlos over TCP/IP.
2、Linux平台提供了基于TCP/IP的SMB支持:Samba
3、RHEl4u3预装的smb是samba-3.0.10-1.4E.6。
其服务名称是:smb包含两个守护进程:smbd和nmbd,smbd提供SMB支持,nmbd提供NetBlos支持。
今天我们来通过一个简单的实例了解Samba
环境:公司财务部,技术部,领导三个部门,三个部门每个部门都有两个用户
财务部:finance01,finance02
技术部:tech01,tech02
领导:leader01,leader02
需求分析:
1、服务器采用用户验证方式,每个用户可以访问自己的目录,并且只有该用户可以访问自己的目录,并且具有完全的权限,而且他人不能看到别人的目录。
2、建立finance目录,希望finance组和leader组的人以及技术部tech02能看到,但只有finance01拥有写权限。
3、建立一个leader目录只有leader组的人可以看到及访问并且有用读写权限。
4、建立exechange目录,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。
5、建立public公共目录,所有人制度这个目录的内容。
ok需求了解过后我们来做这个实例。
1、建立用户以及用户组
[root@File ~]# groupadd finance
[root@File ~]# groupadd tech
[root@File ~]# groupadd leader
[root@File ~]# useradd finance01 -g finance
[root@File ~]# useradd finance02 -g finance
[root@File ~]# useradd tech01 -g tech
[root@File ~]# useradd tech02 -g tech
[root@File ~]# useradd leader01 -g leader
[root@File ~]# useradd leader02 -g leader
2、为每个用户添加smb账户
[root@File ~]# smbpasswd -a finance01
New SMB password:
Retype new SMB password:
Added user finance01.
[root@File ~]# smbpasswd -a finance02
New SMB password:
Retype new SMB password:
Added user finance02.
[root@File ~]# smbpasswd -a tech01
New SMB password:
Retype new SMB password:
Mismatch - password unchanged.
Unable to get new password.
[root@File ~]# smbpasswd -a tech01
New SMB password:
Retype new SMB password:
Added user tech01.
[root@File ~]# smbpasswd -a tech02
New SMB password:
Retype new SMB password:
Added user tech02.
[root@File ~]# smbpasswd -a leader01
New SMB password:
Retype new SMB password:
Mismatch - password unchanged.
Unable to get new password.
[root@File ~]# smbpasswd -a leader01
New SMB password:
Retype new SMB password:
Added user leader01.
[root@File ~]# smbpasswd -a leader02
New SMB password:
Retype new SMB password:
Added user leader02.
3、创建目录(为了避免麻烦我们把文件夹权限设置为777,通过samba灵活的权限管理来满足上面的5点要求)
[root@File ~]# mkdir -m 777 /samba/finance -p
[root@File ~]# mkdir -m 777 /samba/tech
[root@File ~]# mkdir -m 777 /samba/leader
[root@File ~]# mkdir -m 777 /samba/exchange
[root@File ~]# mkdir -m 777 /samba/public
4、我们来看一下主要配置文件(/etc/samba/smb.conf)
我贴出来关键部分加以说明
[homes] # 定义用户主目录
comment = Home Directories # 目录说明
browseable = no # 目录不可见
writeable = yes # 目录可写
valid users = %S # Samba用户可以访问自己的目录
create mode = 0664 # 用户建立文件的属性
directory mode = 0775 # 用户建立目录的属性
[public] # 定义一个名为public共享文件夹
comment = Public Stuff # 目录说明
path = /home/samba # 目录的路径
public = yes # 公开此目录
writable = yes # 目录可写
printable = no # 不是打印设备
browseable = yes # 目录可见
write list = @staff # 可写用户列表,所有Samba用户可写
5、下面来修改主要配置文件
# vi /etc/samba/smb.conf
首先更改全局参数(下面是更改以后的)
[global]
workgroup = LinuxServer #网络工作组
server string = FileServer #服务器描述
security = user #使用用户验证机制
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
#使用加密密码机制,因为在win95和winnt使用的是明文
其他的一些默认的就可以了。
添加文件夹描述。
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
#满足对home目录的要求(需求分析中的)
[finance]
comment = Finance Directory
path = /samba/finance
public = no
valid users = @finance,@leader,tech02
write list = finance01
printable = no
#满足对finance目录的要求(需求分析中的2)
[leader]
comment = Leader Directory
path = /samba/leader
public = no
browseable = no
valid users = @leader,tech02
printable = no
#满足对leader目录的要求(需求分析中的3)
[public]
comment = Public Stuff
path = /samba/public
public = yes
read only = yes
#满足对public目录的要求(需求分析中的5)
[exchage]
comment = Exchange File Directory
path = /samba/exchange
public = yes
writable = ye*
#**change目录基本能够满足需求分析中的4,但不能满足每个人不能删除别人的文件夹的条件,这时候我们就要用linux本身文件夹权限设置了,是否还记得sticky bit这个权限,刚好满足我们的需求。ok,我们保存退出。
#为了让exchange也满足我们的需求,我们再来做一步操作。
[root@File samba]# chmod o+t /samba/exchange/
好了,所有的要求都达到了,重新启动服务。
[root@File samba]# /etc/init.d/smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
下面大家自己去测试吧
windows测试不用说了吧?在开始-运行-输入//serveripadd 就可以了,如果要多账户在同一台机器测试就去修改hosts文件吧,多加几条,以免重复重新启动(ps:windows就是傻!)
linux测试命令:
smbclient -L //server -U username # 列出目标服务器的共享资源
smbclient //server/sharename -U username # 使用共享资源,ftp式界面
smbmount //server/sharename /mountpoint -o username=uname # 将目标服务器的sharename挂载到/mountpoint下
欢迎光临 德克云技术联盟 (http://www.decoclouds.com/)