红联Linux门户
Linux帮助

实战fedora9 samba共享

发布时间:2008-12-29 17:01:17来源:红联作者:藤真
实验环境:虚拟机+[font=Tahoma]fedora9[/font]
实验目的:练习[font=Tahoma]fedora9[/font]的[font=Tahoma]samba[/font]共享
教程适用:想在[font=Tahoma]fedora9[/font]上面使用共享的菜鸟
[size=14pt]一、
samba[/size][size=14pt]简介

[font=Tahoma]SMB[/font]协议是建立在[font=Tahoma]NetBIOS[/font]协议之上的应用协议,是基于[font=Tahoma]TCP138[/font]、[font=Tahoma]139[/font]两个端口的服务,[font=Tahoma]NetBIOS[/font]出现之后,[font=Tahoma]Microsoft[/font]就使用[font=Tahoma]NetBIOS[/font]实现了一个网络文件[font=Tahoma]/[/font]打印服务系统。这个系统基于[font=Tahoma]NetBIOS[/font]设定了一套文件共享协议,[font=Tahoma]Microsoft[/font]称之为[font=Tahoma]SMB[/font]([font=Tahoma]Server Message Block[/font])[font=Tahoma] [/font]协议,这个协议被用于[font=Tahoma]Lan Manager[/font]和[font=Tahoma]Windows[/font]服务器系统中,实现不同计算机之间共享[font=Tahoma] [/font]打印机和文件等。因此,为了让[font=Tahoma]Windows[/font]和[font=Tahoma]Unix/Linux[/font]计算机相集成,最好的办法就是在[font=Tahoma] Unix/Linux[/font]计算机中安装支持[font=Tahoma]SMB[/font]协议的软件。这样使用[font=Tahoma]Windows[/font]的客户端不需要更改设置,[font=Tahoma] [/font]就能像使用[font=Tahoma]Windows NT[/font]或[font=Tahoma]Windows 2000[/font]服务器一样,使用[font=Tahoma]Unix/Linux[/font]计算机上的共享资源了。
[/size][font=Tahoma]
Samba[/font]使[font=Tahoma]SMB[/font]协议运行在[font=Tahoma]NetBIOS[/font]协议上,并且使用[font=Tahoma]Windows[/font]的[font=Tahoma] NetBEUI[/font]协议让[font=Tahoma]Unix/Linux[/font]服务器[font=Tahoma] [/font]可以在[font=Tahoma]Windows[/font]的网络邻居上被访问到。


[size=14pt]二、
Samba[/size][size=14pt]的守护进程

[/size]
[font=Tahoma]
1. smbd
[/font]监听[font=Tahoma]139
TCP[/font]端口[font=Tahoma] [/font]设置共享目录、打印等
[font=Tahoma]2. nmbd
137. 138 UDP[/font]端口[font=Tahoma] [/font]管理群组、[font=Tahoma]NetBIOS [/font]等解析工作
[size=5][size=10.5pt]这里要注意的是fedora9基于安全考虑,把smb和nmb两个服务给分离了,平时我们在使用samba服务的时候,在启动smb服务的同时nmb这个服务也会跟着启动,fedora9中则不然,这就造成了我们设置好fedora9中共享的时候,只能使用\\ip 来访问,而不能使用\\计算机名 来访问,解决的办法就是同时启动smb和nmb服务
[/size]

[/size][size=14pt]三、
[/size]
[size=14pt]软件的安装

使用[font=Tahoma]rpm -qa|gerp samba[/font]来检查是否安装了[font=Tahoma]samba [/font]软件包,如果没有安装的话请自行安装以下的软件包
#[font=Tahoma] rpm -ivh samba-3.2.0-1.pre3.9.fc9.i386.rpm[/font]
#[font=Tahoma] rpm -ivh samba-winbind-3.2.0-1.pre3.9.fc9.i386.rpm[/font]
#[font=Tahoma] rpm -ivh samba-common-3.2.0-1.pre3.9.fc9.i386.rpm[/font]
#[font=Tahoma] rpm -ivh samba-client-3.2.0-1.pre3.9.fc9.i386.rpm[/font]
#[font=Tahoma] rpm -ivh system-config-samba-1.2.63-1.fc9.noarch.rpm[/font]
或者你用[font=Tahoma]yum install samba* -y[/font]就可以一次搞定了。


[/size][size=14pt]四、
[/size]
[size=14pt]启动samba服务

[/size][font=Tahoma]service smb start
[/font]
[font=Tahoma]/etc/init.d/smb start [/font])启动[font=Tahoma]smb[/font]服务

[font=Tahoma]service nmb start [/font][font=Tahoma]/etc/init.d/nmb start [/font])启动[font=Tahoma]nmb[/font]服务

当然你也可以使用[font=Tahoma]chkconfig --level smb 35 on [/font]来设置启动级别,这个不多说了。
我们来检查一下是是否正常启动两个服务,使用命令[font=Tahoma] pstree | grep mb[/font]
显示为如下如果则为正常启动:
[font=Tahoma]
|-nmbd[/font]

[font=Tahoma]
|-smbd---2*[smbd][/font]

[font=Tahoma]
|-tomboy---2*[{tomboy}][/font]



[size=14pt]五、
[/size]
[size=14pt]配置smb.conf文件

知识点,[font=Tahoma]samba [/font]有四种安全级别,它们分别是:[font=Tahoma] [/font]
[/size][font=Tahoma]
share[/font]:用户不需要用户名和就可登陆[font=Tahoma]samba [/font]服务器[font=Tahoma] [/font]
[font=Tahoma]
user[/font]:用户需要输入用户名和密码才可以登陆[font=Tahoma]samba[/font]服务器
[font=Tahoma]
server[/font]:请自行查资料,不常用,略
[font=Tahoma]
domain[/font]:请自行查资料,不常用,略

对于我们小菜来说,我们使用[font=Tahoma]user[/font]级别就可以了,如果偷懒的话你可以用[font=Tahoma]share[/font]
我们先备份配置文件[font=Tahoma]smb.conf[/font]
[font=Tahoma]cp /etc/samba/smb.conf
/etc/samba/smb.conf.bak

[/font]

然后查找你的[font=Tahoma]security = user[/font]是否为[font=Tahoma]user[/font]如果是[font=Tahoma]share[/font]的话改为[font=Tahoma]user[/font]
[font=Tahoma]vi /etc/samba/smb.conf
[/font]
[size=10.5pt]workgroup = WORKGROUP //
设置工作组

server string = %U's samba %v //描述信息%U代表当前登陆用户

netbios name = fedora //netbios[/size][size=10.5pt]名字,fedora9默认没有启用

log file = /var/log/samba/log.%m //[/size][size=10.5pt]日志文件保存路径%m你的windows主机名

max log size = 50 //[/size][size=10.5pt]日志最大容量

security = user //安全级别,user需要用户名和密码,share级别则不要

[/size][size=10.5pt][share]
//
建立一个共享名为share的共享

[/size]
[size=4]comment = samba
//
[/size][size=10.5pt]描述信息

[/size]
[size=4]path = /tmp/share
//
[/size][size=10.5pt]共享路径

[/size]
[size=4]public = no //
[/size][size=10.5pt]是否允许guest用户访问(相当于guest ok = yes/no)

[/size]
[size=4]writable = yes //
[/size][size=10.5pt]是否可写

[/size]
[size=4]write list = lovehack //
[/size][size=10.5pt]可以写入的用户列表(@代表用户组

[/size][align=right]
[/align][/size]
[size=4]下面建立共享目录并添加权限
[font=Tahoma]mkdir /tmp/share[/font]
[font=Tahoma]chmod 775 /tmp/share[/font]
[font=Tahoma]chown lovehack.lovehack /tmp/share[/font]
[size=14pt]六、
[/size]
[size=14pt]添加用户并测试共享

添加访问[font=Tahoma]samba[/font]的用户,命令[font=Tahoma]smbpasswd -a [/font]用户名
#[/size][font=Tahoma]smbpasswd -a lovehack
//lovehack[/font]为事先建立好的用户
然后输入两次密码就可以了,注意这里的密码和你登陆系统的密码是不一样的,只是用来访问共享的密码。
现在我们就可以来测试一下配置文件是否正确:[font=Tahoma]testparm [/font]一般是没有什么问题的。
现在我们可以用[font=Tahoma]\\ip[/font]或者[font=Tahoma]\\[/font]计算机名[font=Tahoma] [/font]来访问共享了。
[size=14pt]七、
[/size]
[size=14pt]解决fedora9中selinux拒绝访问共享的问题

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

[/size][size=10.5pt]#setsebool -P samba_enable_home_dir on
#setsebool -P samba_export_all_ro on
#setsebool -P samba_export_all_rw on[/size]

[/color]
我们可以用命令[color=red][font=Tahoma]getsebool -a | grep samba[/font]

查看上面三项是否打开,打开的话你的共享应该就正常了。
[font=Tahoma][/font]
教程记录:独自等待
[font=Tahoma]QQ:59161949 [/font]
我的博客:[font=Tahoma]http://hi.baidu.com/lovehack2006[/font]

[ 本帖最后由 藤真 于 2008-12-29 17:02 编辑 ]
文章评论

共有 6 条评论

  1. love35459 于 2009-11-22 16:21:06发表:

    多谢了

  2. only_oneday 于 2009-03-15 17:03:25发表:

    很我错的文章

  3. zhoumi 于 2009-03-15 02:02:45发表:

    谢谢

  4. hunhunsheng 于 2009-03-14 15:20:54发表:

    顶一个....
    正需要.!哈哈
    太幸运了!!!

  5. superfan 于 2009-03-14 11:32:21发表:

    谢谢分享
    0:w(5(

  6. hospcuq 于 2008-12-29 17:59:53发表:

    受教了