搭建samba服务器


Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。

部署环境如下:

然后分别安装服务端和客户端对应的软件(samba-client在这里并不只是samba的客户端,也是一个提供了samba相关命令的工具)

 可查看samba-client软件包安装了哪些命令

 切换至samba配置文件的目录,然后操作samba的配置文件(smb.conf.example为samba的示例配置文件)

 然后编辑smb.conf配置文件,在配置文件中加入以下内容

================== Share Definitions ==================

[共享名]

comment = 任意字符串

说明:comment是对该共享的描述,可以是任意字符串。

path = 共享目录路径

说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 

browseable = yes/no

说明:browseable用来指定该共享是否可以浏览

writable = yes/no

说明:writable用来指定该共享路径是否可写。

available = yes/no

说明:available用来指定该共享资源是否可用

admin users = 该共享的管理者

说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。

例如:admin users =bobyuan,jane(多个用户中间用逗号隔开)。

valid users = 允许访问该共享的用户

说明:valid users用来指定允许访问该共享资源的用户。

例如:valid users =bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)

invalid users = 禁止访问该共享的用户

说明:invalid users用来指定不允许访问该共享资源的用户。

例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)

write list = 允许写入该共享的用户

说明:write list用来指定可以在该共享下写入文件的用户。

例如:write list = bobyuan,@bob

public = yes/no

说明:public用来指定该共享是否允许guest账户访问。

guest ok = yes/no

说明:意义同“public”

 (上面为samba配置文件的一些共享参数)

然后使用testparm命令查看配置文件是否正确,并重启服务载入配置文件和设置下次开机启动

 然后创建要共享的目录和共享用户

 给共享用户设置一个samba密码,即客户端访问服务端需要输入的密码,和用户登录密码没关系

 服务端关闭防火墙和SELinux(防火墙放行samba服务的流量且/smbshare目录打上samba_share_t的标签也可以)

 Linux客户端访问samba服务端(可以用?查看支持的命令,因为配置文件中我们编辑了可写入文件操作,所以在这里也可以写入文件,如果不能写入,记得给/smbshare目录其他人赋予写的权限)

 Windows客户端运行cmd访问samba服务端(Windows中的路径以\作为分隔,访问的前提是Windows和Linux间网络可达)

 第一次登录需要输入用户名和密码,用户名这里是share,密码是自己设置的samba密码

因为之前登录过,有缓存,所以在这里没提示输入登录账户和密码,所以,直接看登录后的效果

 Windows中写入操作不再举例

相关