- 浏览: 48612 次
文章分类
最新评论
SMB 服务器
一、 samba简介
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计算机上的共享资源了。
Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的 NetBEUI协议让Unix/Linux服务器 可以在Windows的网络邻居上被访问到。
二、 Samba的守护进程
1. smbd 监听139 TCP端口 设置共享目录、打印等
2. nmbd 137. 138 UDP端口 管理群组、NetBIOS 等解析工作
这里要注意的是fedora9基于安全考虑,把smb和nmb两个服务给分离了,平时我们在使用samba服务的时候,在启动smb服务的同时nmb这个服务也会跟着启动,fedora9中则不然,这就造成了我们设置好fedora9中共享的时候,只能使用\\ip 来访问,而不能使用\\计算机名 来访问,解决的办法就是同时启动smb和nmb服务
三、 软件的安装
使用rpm –qa|gerpsamba来检查是否安装了samba 软件包,如果没有安装的话请自行安装以下的软件包
# rpm –ivhsamba-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivhsamba-winbind-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivhsamba-common-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivhsamba-client-3.2.0-1.pre3.9.fc9.i386.rpm
# rpm –ivhsystem-config-samba-1.2.63-1.fc9.noarch.rpm
或者你用yuminstall samba* -y就可以一次搞定了。
四、 启动samba服务
#service smbstart (/etc/init.d/smbstart )启动smb服务
#service nmbstart (/etc/init.d/nmbstart )启动nmb服务
当然你也可以使用chkconfig–-level smb 35 on 来设置启动级别,这个不多说了。
我们来检查一下是是否正常启动两个服务,使用命令 pstree | grep mb
显示为如下如果则为正常启动:
|-nmbd
|-smbd---2*[smbd]
|-tomboy---2*[{tomboy}]
五、 配置smb.conf文件
知识点,samba 有四种安全级别,它们分别是:
share:用户不需要用户名和就可登陆samba服务器
user:用户需要输入用户名和密码才可以登陆samba服务器
server:请自行查资料,不常用,略
domain:请自行查资料,不常用,略
对于我们小菜来说,我们使用user级别就可以了,如果偷懒的话你可以用share
我们先备份配置文件smb.conf
#cp/etc/samba/smb.conf /etc/samba/smb.conf.bak
然后查找你的security= user是否为user如果是share的话改为user
#vi/etc/samba/smb.conf
workgroup = WORKGROUP //设置工作组
server string = %U's samba %v //描述信息%U代表当前登陆用户
netbios name = fedora //netbios名字,fedora9默认没有启用
log file = /var/log/samba/log.%m //日志文件保存路径%m你的windows主机名
max log size = 50 //日志最大容量
security = user //安全级别,user需要用户名和密码,share级别则不要
[share] //建立一个共享名为share的共享
comment = samba //描述信息
path = /tmp/share //共享路径
public = no //是否允许guest用户访问(相当于guest ok = yes/no)
writable = yes //是否可写
write list = lovehack //可以写入的用户列表(@代表用户组)
下面建立共享目录并添加权限
#mkdir/tmp/share
#chmod 775/tmp/share
#chownlovehack.lovehack /tmp/share
六、 添加用户并测试共享
添加访问samba的用户,命令smbpasswd –a 用户名
#smbpasswd –alovehack //lovehack为事先建立好的用户
然后输入两次密码就可以了,注意这里的密码和你登陆系统的密码是不一样的,只是用来访问共享的密码。
现在我们就可以来测试一下配置文件是否正确:testparm 一般是没有什么问题的。
现在我们可以用\\ip或者\\计算机名来访问共享了。
七、 解决fedora9中selinux拒绝访问共享的问题
在其它版本的linux中(AS5,AS4,Centos)中做如上设置后就可以正常访问共享了,但是在fedora9中却不行,我们只能看到共享,但是访问的时候会出现拒绝访问的情况,这是为什么呢?因为selinux对samba共享做了限制,我们只用把selinux中对samba的限制给解决了就行了,我们做如下设置就OK了,这也是我做此教程的目的:
#setsebool –Psamba_enable_home_dir on
#setsebool –Psamba_export_all_ro on
#setsebool –Psamba_export_all_rw on
我们可以用命令getsebool–a | grep samba
查看上面三项是否打开,打开的话你的共享应该就正常了。
如果还是出现不能访问的情况,请清除你的防火墙规则:
iptables -F //清除规则
iptables -L //查看是否清除掉了!
smb服务(Linux和windows共享)
首先关掉防火墙
在终端输入 iptables-F
或者
系统——管理——防火墙——禁用
第一步: 更改smb.conf
我们来实现一个最简单的功能,让所有用户可以读写一个Samba 服务器共享的一个文件夹;我们要改动一下
smb.conf ;首先您要备份一下smb.conf文件;
[root@localhost ~]# cd /etc/samba
[root@localhost samba]# mv smb.conf smb.confBAK
然后我们来重新创建一个smb.conf文件;
[root@localhost samba]#touch smb.conf
然后我们把下面这段写入smb.conf中;
[global]
workgroup = RANBE
netbios name = wzlinux
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /media/ranbe
writeable = yes
browseable = yes
guest ok = yes
注解:
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;在这里我设置的是RANBE (用大写);
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是
user的验证方式;如果用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来
,那就设置为browseable=no
guest ok 匿名用户以guest身份是登录;
在配置完/etc/smb.conf后运行testparm检测配置文件中是否有相应语法错误
在samba服务起来后,用smbstatus报告用户使用和登录情况。
在更改过配置文件后,运行/etc/rc.d/init.d/smbrestart重读配置文件
或者service smbrestart
第二步:建立相应目录并授权;
[root@localhost ~]# mkdir -p /media/ranbe
[root@localhost ~]# id nobody
显示uid=99(nobody)gid=99(nobody) groups=99(nobody)
[root@localhost ~]# chown -R nobody:nobody /media/ranbe
注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以
这个为准。有些系统nobody用户组并非是nobody ;
(第三步:启动smbd和nmbd服务器
([root@localhost ~]# smbd
[root@localhost ~]# nmbd)可省略
[root@localhost ~]# service smb restart
第四步:查看smbd进程,确认Samba 服务器是否运行起来了;
[root@localhost ~]# pgrep smbd
13564
13568
查看Samba服务运行状态:# service smb status
)可省略
第五步:访问Samba 服务器的共享;
在终端上输入“ifconfigeth0 192.168.0.2(要和你的windows在一个IP段)”为linux配置一个IP。
最好在这里ping一下windows的IP地址,看网络是否已连接。
连接好了就可以了。
在Linux 中您可以用下面的命令来访问;
mount //222.204.17.106/s3c2410 /root/windows
222.204.17.106 xp的 ip
s3c2410 xp的共享目录
root/windows 挂载到linux的位置
在Windows中,您可以用下面的办法来访问;
在ie地址栏
\\222.204.17.70\meida\ranbe
无法访问 还未解决
也可设置系统重启时,自动启动Samba服务:# chkconfig --level 345 smb on
或者在终端输入setup
选择系统服务 选中
·smb
Linux与windows共享实例-smb
LINUX 2010-03-22 02:42:31 阅读48 评论0 字号:大中小
setup
system services
选定smb服务保存退出
service smb restart (重起smb)
启动 Samba
#service smb start//启动 Samba
#pstree | grep mbd //检查Samba是否启动
| -nmbd
| -smbd //出现这二行,就表明Samba已经启动
************************
#启动服务乱码解决方法
#vi /etc/sysconfig/i18n
#写入LC_ALL=POSIX
#保存重启
************************
SMB配置
1.备份smb.conf文件
#cp /etc/samba/smb.conf/etc/samba/smb.conf.bak
2.编辑smb.conf
A.#vi /etc/samba/smb.conf
找到[GLOBAL]
添加:
unix charset = gb2312
dos charset = gb2312
修改 workgroup = mygroup 为 workgroup = workgroup
修改 security = user 为 security = share
找到[home]
添加:
Path = /home/netgame 添加一个游戏工作目录路径
Valid users = linux
然后到文件最后添加一段脚本
[netgame] 名字随意!!!
Path = /home/netgame
Valid users = linux
Public = yes
Only guest = yes
[netgames]:
Path = /home/netgame/game
Valid users = linux
Public = yes
Only guest = yes
保存,退出!
3.新建用户
#useradd linux
#passwd linux
输入两次口令,完成口令设置
#smbpasswd –a linux 更新SMB口令
也要输入两次口令,完成口令设置
smb.conf 详解
服务名:smb
配置目录:/etc/sabma/
主配置文件:/etc/sabma/smb.conf
#==============================Global Settings =============================
17行workgroup
语法 workgtoup = <工作组群>;
预设 workgroup = MYGROUP
说明设定 Samba Server 的工作组
例 workgroup = workgroup 和WIN2000S设为一个组,可在网上邻居可中看到共享
21行server string
语法 server string = <说明>;
预设 sarver string = Samba Server
说明设定 Samba Server 的注释
其他支持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端用户名
例 server string = this is a Samba Server 设定出现在Windows网上邻居的 Samba Server 注释为 this is a Samba Server
28行hosts allow
语法 hosts aoolw = <IP地址>; ...
预设 ; host allow = 192.168.1. 192.168.2. 127.
说明限制允许连接到 Samba Server 的机器,多个参数以空格隔开。表示方法可以为
完整的IP地址,如 192.168.0.1
网段,如 192.168.0.
例 hosts allow = 192.168.1. 192.168.0.1 表示允许192.168.1 网段的机器网址为192.168.0.1 的机器连接到自己的samba server
32行printcap name
语法 printcap name = <打印机配置文件>;
预设 printcap name = /etc/printcap
说明设定 samba srever 打印机的配置文件
例 printcap name = /etc/printcap 设定 samba srever 参考 /etc/printcap 档的打印机设定
33行load printers
语法 load printers = <yes/no>;
预设 load printers = yes
说明是否在开启 samba server 时即共享打印机
38行printing
语法 printing = <打印机类型>;
预设 printing = lprng
说明设定 samba server 打印机所使用的类型,37行为目前所支持的类型
42行guest account
语法 guert account = <帐户名称>;
预设 guert account = pcguest
说明设定访问 samba server 的来宾帐户(即访问时不用输入用户名和密码的帐户),若设为pcguest的话则为默认为"nobody"用户
例 guert account = andy 设定设定访问 samba server 的来宾帐户以andy用户登陆,则此登陆帐户享有andy用户的所有权限
46行log file
语法 log file = <日志文件>;
预设 log file = /var/log/samba/%m.log
说明设定 samba server 日志文件的储存位置和文件名(%m代表客户端主机名)
49行max log size
语法 max log size = <??KB>;
预设 max log size = 0
说明设定日子文件的最大容量,单位KB 这里的预设值0代表不做限制
53行security
语法 security = <等级>;
预设 security = user
说明设定访问 samba server 的安全级别共有四种
share---不需要提供用户名和密码
user----需要提供用户名和密码,而且身份验证由 samba server 负责
server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台 samba server作身份验证
domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证
60行password server
语法 password server = <IP地址/主机名>;
预设 password server = <NT-Server-Name>;
说明指定某台服务器(包括windows 和 linux)的密码,作为用户登入时验证的密码
其他此项需配合 security = server时,才可设定本参数
64行password level
65行username level
语法 password level = <位数>;
username level = <位数>;
预设 password level = 8
username level = 8
说明设定用户名和密码的位数,预设为8位字符
70行encrypt passwords
语法 encrypt passwords = <yes/no>;
预设 encrypt passwords = yse
说明设定是否对samba的密码加密
71行smb passwd file
语法 smb passwd file = <密码文件>;
预设 smb passwd file = /etc/samba/smbpasswd
说明设定samba的密码文件
130行local master
语法 local master = <yes/no>;
预设 local master = no
说明设定 samba server 是否要担当LMB角色(LMB负责收集本地网络的Browse List资源),通常无特殊原因设为no
134行os level = 33
语法 os level = <数字>;
预设 os level = 33
说明设定 samba server的os level. os level从 0 到 255 . winNT的os level为33, win95/98的os level 是 1 .
若要拿samba server 当LMB或DMB则它的os level至少要大于NT的33以上
139行domain master
语法 domain master = <yes/no>;
预设 domain master = yes
说明设定 samba server 是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no
143行preferred master
语法 preferred master = <yes/no>;
预设 preferred master = yes
说明设定 samba server 是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no.
(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次)
163行wins support
语法 wins support = <yes/no>;
预设 wins support = yes
说明设定samba server 是否想网络提供WINS服务,通常无特殊原因设为no.
除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes
其他 wins support 和 wins server 只能选择一个
167行wins server
语法 wins server = <IP地址>;
预设 wins server = w.x.y.z
说明设定samba server 是否要使用别台主机提供的WINS服务.通常无特殊原因设为no.除非所处网络上有一台主机提供WINS服务才要设yes
其他 wins support 和 wins server
例 wins server = 192.168.0.1 表示samba server要使用192.168.0.1提供的WINS服务
#==============================Share Definitions =============================
[homes]
comment = HomeDirectories
browseable = no
writable = yes
valid users = %S
使用者本身的"家"目录,当使用者以samba使用者身份登入samba server 后,
samba server 底下会看到自己的家目录,目录名称是使用者自己的帐号
[分享的资源名称]
<指令1>; = (参数)
<指令2>; = (参数)
..........................
要提供分享资源时,须先把欲分享的资源以 [ ] 符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下
comment---------注释说明
path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable-------是yes/否no允许打印
hide dot ftles--是yes/否no隐藏隐藏文件
public----------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
vaild users-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalid users---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list-------设定此名单内的成员为只读(用户名/@组名)
write list------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
create mask-----建立文件时所给的权限
directory mask--建立目录时所给的权限
force group-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts-----设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段 except IP
deny hosts------设定只有此网段/IP的用户不能访问共享资源
allow hosts=本网段指定IP指定IP
deny hosts=指定IP本网段指定IP
相关推荐
Android读取SMB服务器资源或者下载资源文件
使用Linux系统搭建FTP与SMB服务器.pdf
Samba是Linux发行版常用的文件共享服务器,可用于实现与Windows系统之间的文件共享交换,让即时不了解Linux的用户也能够轻易的访问Linux系统中的文件。但是如何搭建Samba服务器是其中的关键。这里我们就来搭建一个...
Smb服务器的配置过程,smb协议 Smb服务器的配置过程,smb协议 Smb服务器的配置过程,smb协议
解决 win7 无法访问linux下 smb服务器
smb 服务器配置 smb 服务器配置 smb 服务器配置 smb 服务器配置 smb 服务器配置 smb 服务器配置 smb 服务器配置
SMB服务器的配置与管理PPT课件.pptx
Linux SMB服务器搭建.pdf
linux下smb服务器架设,凑够20个字符。
Ubuntu的SMB服务器安装.pdf
SMB服务器配置与使用.docx
Ubuntu的SMB服务器安装参考.pdf
Ubuntu的SMB服务器安装收集.pdf
Ubuntu的SMB服务器安装实用.pdf
Ubuntu的SMB服务器安装文件.pdf
SMB服务器的配置与管理.ppt
SMB服务器的配置与管理学习教案.ppt
内附:Linux SMB服务器 实验配置抓图文档,以及一个相关实验作业抓图。
SMB服务器的配置与管理学习教案.pptx