基于Samba的文件服务器的建设和维护
3.项目名称:基于Samba的文件服务器的建设和维护
4.项目需求分析
4.1项目背景:
在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用。然而,如果网络中操作系统比较复杂,拥有Linux,Unix类的系统以及Windows系统,Samba服务器则更加适合,它适合在Windows和Linux共存的网络中使用。
Samba服务器能够为Windows和Linux提供共享打印机和共享文件的功能。
4.2时间
开始时间: 结束时间:
4.3项目要求分析
i. 搭建一个Samba服务器,网络中的不同客户端都能够通过Samba访问服务器的共享文件以及文件夹,能够基本实现匿名用户登录,用户的读写权限。
ii. 设立3个用户A,B,C。A能够访问B,C的目录,而B与C之间不能相互访问。
iii. 创建空间1。A拥有对空间1的读写权限,但B,C只能读而不能写。
iv. 创建空间2。A,B,C都拥有读写的权限。
5 项目开发流程
5.1安装与配置Samba
5.1.1 下载与安装Samba。如果服务器基于Ubuntu操作系统,使用apt-get install samba命令来获取并自动安装samba软件,遇到选项YES即可。如果是CentOS则使用yum install samba命令即可。如果使用源码安装,可去http://www.samba.org/下载源码包。
5.1.2 配置Samba。Samba安装完毕后,在/etc/samba文件夹下有2个文件,分别是smb.conf和gdbcommonds。其中smb.conf就是Samba的主要配置文件,打开后如图5.1。
图5.1 smb.conf配置文件
其中,Global Settings是全局设定,Networking是网络设定,最后的Share Definitions是共享的配置信息,包括系统默认初始化的和用户自定义的。用户如需新建共享文件夹,则需在Share Definitions中定义。
5.1.3定义新共享。以下是一个新的共享的基本信息:
[share1] ------ 共享名
path = /home/share1 ------ 路径
valid users = user1 user2 user3 ------ 合法用户
invalid users = user4 user5 user6 ------ 非法用户
guest ok = yes / no ------ 匿名用户可/不可登录
readable = yes / no ------ 可读(单用户)
writable = yes / no ------ 可写(单用户)
read list = user1 user2 user3 ------ 可读用户列表(多用户)
write list = user1 ------ 可写用户列表(多用户)
5.2为Samba添加新用户
添加用户可以有2中方法,其中一个方法是通过cat /etc/passwd | mksmbpassad.sh> /etc/samba/smbpasswd命令来自动将系统中已有的用户添加到Samba中。另外一个方法是手动添加用户:
i. 首先添加Linux系统的用户(以下以用户user1为例):adduser user1
ii. 为user1用户添加密码:passwd user1
iii. 为user1用户添加用户目录:mkdir /home/user1
iv. 为目录设置权限:chown –R user1:user1 /home/user1
v. 将该用户添加至Samba中:smbpasswd –a user1
这样,我们就可以使用user1来配置smb.conf文件以及使用该用户登录Samba服务器了。
5.3添加3个用户
按照以下序列输入下列命令:
1. 添加用户a:adduser a
2. 添加用户b:adduser b
3. 添加用户c:adduser c
4.为用户a设置密码:passwd a
5.为用户b设置密码:passwd b
6.为用户c设置密码:passwd c
7.为用户a创建目录:mkdir /home/a
8.为用户b创建目录:mkdir /home/b
9.为用户c创建目录:mkdir /home/c
10.添加用户a至Samba:smbpasswd –a a
11.添加用户b至Samba:smbpasswd –a b
12.添加用户c至Samba:smbpasswd –a c
13.创建空间1:mkdir share1
14.创建空间2:mkdir share2
15.设置share1文件夹属性:chmod 777 /home/share1
16.设置share2文件夹属性:chmod 777 /home/share2
5.4配置共享信息
向smb.conf加入以下代码:
[a]
path = /home/a
valid users = a
guest ok = no
writable = yes
browseable = yes
[b]
path = /home/b
invalid users = c
valid users = a b
guest ok = no
writable = yes
browseable = yes
[c]
path = /home/c
invalid users = b
valid users = a c
guest ok = no
writable = yes
browseable = yes
[share1]
path = /home/share1
valid users =a b c
guest ok = no
read list = a b c
write list = a
[share2]
path = /home/share2
valid users =a b c
guest ok = no
read list = a b c
write list = a b c
5.5 重启Samba服务器。配置完毕后,使用/etc/init.d/samba restart命令重启Samba服务器使新配置生效。
6.项目测试
6.1登录Samba服务器测试
使用smbclient //192.168.1.104/b -U a来登录Samba服务器(使用用户a登录b的共享文件夹),输入密码后可以看到服务端返回Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.4.0]信息,输入ls命令可以查询该目录中的文件(如图5.2):
. D 0 Sat Jul 17 22:10:40 2010
.. D 0 Sat Jul 17 21:34:46 2010
you are in folder b 0 Sat Jul 17 21:20:37 2010
图5.2
使用smbclient //192.168.1.104/b -U c来登录Samba服务器(使用用户c登录b的共享文件夹),输入密码后可以看到服务端返回Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.4.0]信息(如图5.3)。
图5.3
使用smbclient //192.168.1.104/share1 -U a来登录Samba服务器(使用用户a登录share1共享文件夹,该用户具有读写操作权限),输入密码后可以看到服务端返回Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.4.0]信息,输入ls命令可以查询该目录中的文件(如图5.4):
. D 0 Sat Jul 17 22:10:40 2010
.. D 0 Sat Jul 17 21:34:46 2010
you are in folder share1 0 Sat Jul 17 21:20:37 2010
此时就可以使用mkdir adir命令对共享目录进行写操作。
图5.4
而使用smbclient //192.168.1.104/share1 -U b来登录Samba服务器(使用用户a登录share1共享文件夹,该用户具有读操作权限),输入密码后可以看到服务端返回Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.4.0]信息,输入ls命令可以查询该目录中的文件(如用户a登录该共享目录)。此时使用mkdir bdir命令对共享目录进行写操作,则返回NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory /bdir的错误信息(如图5.5)。
图5.5
6.2 Windows映射Samba中的共享文件夹
如图5.6,在工具中选择映射网络中的盘符,填入Samba服务器IP以及共享名,在弹出的窗口中输入用户名和密码,就可以连接到Samba了(如图5.7)。
图5.6使用windows映射共享文件夹
图5.7使用windows访问共享文件夹
7. 总结
1. 时间
这个项目从接受委托起,经过需求分析,概要设计,详细设计,代码撰写,测试,历时半个工作日。
2. 人员
程序员:
文档撰写员:
3. 遇到的困难