启动Linux Samba服务器安装配置实现构建

运维 系统运维
在进行到服务端的连接之前,需要预先对用于登录 Linux Samba的用户进行设置。这里我们以 Fedora 中 Samba 标准的 Linux Samba 用户数据库管理工具“smbpasswd”为例,创建用于登录Linux Samba的用户数据。这里需要注意的一点:用 smbpasswd 创建用户的前提是,系统用户中存在该用户 -- 在基于系统用户之上,才可以创建该用户在 Linux Samba 用户数据库中的信息。

在我们使用 Windows 作为客户机的时候,通常有文件、打印共享的需求。作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过 Windows Network 固有的功能实现这些要求。然而,通过 Linux Samba 我们也可以让一台 Fedora 主机来兼容 Windows 网络,实现同样的功能,进而充分发挥 Fedora 主机的可用性。

本文主要介绍怎样通过Linux Samba服务器的构建实现 Windows 网络中的文件共享。

SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务,NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block) 协议,这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。

因此,为了让Windows和Unix/Linux计算机相集成,***的办法就是在 Unix/Linux计算机中安装支持SMB协议的软件。这样使用Windows的客户端不需要更改设置, 就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。

Linux Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的NetBEUI协议让Unix/Linux服务器可以在Windows的网络邻居上被访问到。

安装 Linux Samba

首先,通过 yum 来在线安装 Linux Samba 。yum -y install samba

配置 Linux Samba

然后,通过编辑 /etc/samba/smb.conf ,根据需求配置 Linux Samba。在这里,本文的原则是只将文件共享应用于内网,并让将要被共享的目录拥有充分的读写权限属性。

  1. [root@sample ~]# vi /etc/samba/smb.conf ← 编辑 Samba 的配置文件   
  2. workgroup = WORKGROUP //设置工作组  
  3. server string = %U's samba %v //描述信息%U代表当前登陆用户  
  4. netbios name = fedora //netbios名字,fedora9 默认没有启用  
  5. log file = /var/log/samba/log.%m //日志文件保存路径%m你的windows主机名  
  6. max log size = 50 //日志***容量  
  7. security = user //安全级别,user需要用户名和密码,share级别则不要  
  8. [samba] //建立一个共享名为samba的共享  
  9. comment = samba   //描述信息  
  10. path = /home/suyang/samba   //共享路径  
  11. public = no //是否允许guest用户访问(相当于guest ok = yes/no)  
  12. writable = yes //是否可写  
  13. write list = suyang //可以写入的用户列表(@代表用户组) 

接下来,创建将要通过 Linux Samba共享给 Windows 网络的专用目录。

  1. [root@sample ~]# mkdir /home/suyang/samba  ← 建立共享文件专用目录  
  2. [root@sample ~]# chown -R nobody. /home/suyang/samba  ← 设置专用目录归属为 nobody   
  3. [root@sample ~]# chmod 777 /home/suyang/samba  ← 将专用目录属性设置为 777  

在进行到服务端的连接之前,需要预先对用于登录 Linux Samba的用户进行设置。这里我们以 Fedora 中 Samba 标准的 Linux Samba 用户数据库管理工具“smbpasswd”为例,创建用于登录Linux Samba的用户数据。这里需要注意的一点:用 smbpasswd 创建用户的前提是,系统用户中存在该用户 -- 在基于系统用户之上,才可以创建该用户在 Linux Samba 用户数据库中的信息。

  1. [root@sample ~]# smbpasswd -a suyang  ← 将系统用户 suyang(例)加入到 Samba 用户数据库  
  2. New SMB password:  ← 输入该用户用于登录 Samba 的密码  
  3. Retype new SMB password:  ← 再次确认输入该密码 

启动 Linux Samba服务 

在启动Linux Samba 服务之前,首先将防火墙设置中 Samba 所用到的端口进行开放。

  1. [root@sample ~]# vi /etc/sysconfig/iptables  ← 编辑 iptables 配置文件  
  2. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT  ← 找到此行,在下面添加如下行:  
  3. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT  
  4. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT  
  5. -A RH-Firewall-1-INPUT -p udp -m udp --dport 137 -j ACCEPT  
  6. -A RH-Firewall-1-INPUT -p udp -m udp --dport 138 -j ACCEPT  
  7. [root@sample ~]# /etc/rc.d/init.d/iptables restart  ← 重新启动 iptables ,使新的规则生效   
  8. Flushing firewall rules:          [ OK ]  
  9. Setting chains to policy ACCEPT: filter   [ OK ]  
  10. Unloading iptables modules:       [ OK ]  
  11. Applying iptables firewall rules:      [ OK ] 

***,启动Linux Samba 服务(含两个守护进程:smb,nmb)。

  1. [root@sample ~]# chkconfig smb on  ← 设置 Samba 自启动  
  2. [root@sample ~]# chkconfig --list smb  ← 确认 Samba 启动标签,确认 2-5 为 on 的状态  
  3. smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off  
  4. [root@sample ~]# chkconfig nmb on  ← 设置 nmb 自启动  
  5. [root@sample ~]# chkconfig --list nmb  ← 确认 nmb 启动标签,确认 2-5 为 on 的状态  
  6. nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off  
  7. [root@sample ~]# /etc/rc.d/init.d/smb start  ← 启动 Samba 服务  
  8. Starting SMB services:       [ OK ]  
  9. [root@sample ~]# /etc/rc.d/init.d/nmb start  ← 启动 nmb 服务  
  10. Starting NMB services:       [ OK ] 

[注意:]
1. smbd   监听139 TCP端口       设置共享目录、打印等
2. nmbd   137. 138 UDP端口     管理群组、NetBIOS 等解析工作

这里要注意的是fedora9基于安全考虑,把smb和nmb两个服务给分离了,平时我们在使用Linux Samba服务的时候,在启动smb服务的同时nmb这个服务也会跟着启动,fedora9中则不然,这就造成了我们设置好fedora9中共享的时候,只能使用[url=file://ip/]""ip[/url] 来访问,而不能使用[url=file://计算机名/]""计算机名[/url] 来访问,解决的办法就是同时启动smb和nmb服务。

从 Windows 客户端连接到 Linux Samba 服务器 

在服务端启动Linux Samba服务后,我们就可以从 Windows 客户端通过 Windows 网络连接到 Samba。这里以 Windows XP 为例,说明如下连接过程:

1、从桌面打开“网上邻居”,并点击“查看工作组计算机”选项;

2、确认出现 Linux Samba 服务端的连接,并双击该连接;(本站文档的主机名以 Sample 为例)

3、输入在服务端预先设置好的 Linux Samba 用户的用户名及密码;(用户名同系统用户名,密码需要输入在通过 smbpasswd 为该系统用户设置的 Samba 专用的密码。)

4、然后确认能够连接到 Linux Samba 服务器,并出现根目录及 Samba 专用共享目录。***,在相应目录进行新建、修改以及删除文件的操作,测试相应权限的可操作性。

[注意:]
在其它版本的linux中(AS5,AS4,Centos)中做如上设置后就可以正常访问共享了,但是在fedora9中却不行,我们只能看到共享,但是访问的时候会出现拒绝访问的情况,这是为什么呢?因为selinux对samba共享做了限制,我们只用把selinux中对samba的限制给解决了就行了,我们做如下设置就OK了,这也是我做此教程的目的:

  1. #setsebool –P samba_enable_home_dir on  
  2. #setsebool –P samba_export_all_ro on  
  3. #setsebool –P samba_export_all_rw on 

我们可以用命令getsebool –a | grep samba查看上面三项是否打开,打开的话你的共享应该就正常了。

【编辑推荐】

  1. Linux Samba安装服务与修改防火墙配置以允许访问
  2. 教会你Linux Sambauser共享方式配置
  3. linux samba服务器客户端详细配置方案
  4. 拨号用户使用局域网上的Linux Samba服务器
  5. Linux Samba Server的配置文件解析
责任编辑:佚名 来源: CSDN
相关推荐

2009-09-17 16:55:02

WSUS服务器

2009-12-28 17:23:54

Fedora Samb

2010-03-31 10:05:40

CentOS Samb

2009-03-01 14:40:16

LinuxNF安装

2009-09-17 17:37:05

Nis服务器

2009-09-24 14:58:19

打印服务器

2010-05-18 13:02:30

2009-03-04 09:48:52

安装配置桌面虚拟化Xendesktop

2014-08-04 11:22:21

linuxsamba服务器

2011-09-01 18:12:43

Linuxsamba

2009-09-17 16:50:23

WSUS服务器

2015-12-25 14:30:47

LinuxISC DHCP服务器

2009-10-26 08:46:37

linux samba

2009-06-14 18:37:53

Linux刀片服务器安装

2009-11-26 09:24:48

Suse Linux

2010-05-13 18:18:50

IIS服务器

2010-03-31 10:41:49

CentOS Samb

2017-12-18 14:27:26

LinuxDNS服务器安装、配置和维护

2010-06-10 09:56:46

OpenSUSE使用

2010-01-04 16:54:00

Ubuntu DNS
点赞
收藏

51CTO技术栈公众号