redhat enterprise linux 5 samba相关问题

Linux实用技巧篇-Redhat 5 配置Samba服务器

原文地址  http://www.cstc.org.cn/plus/view.php?aid=2245

    为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两中不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大的方便,本章将以Redhat 5为例,简要介绍如何在Linux操作系统上搭建Samba服务器,本章只对Samba的安装及配置过程进行简要讲解。

1. 服务查询

    默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分,为了让大家对整个过程有一个完整的了解,在此先将这部分卸载掉。可以在“/”下输入命令rpm –qa samba*,或者rpm –qa |grep samba,默认情况下可以查到两个已经存在的包:

samba-client-3.0.33-3.7.el5

samba-common-3.0.33-3.7.el5

将rpm –e两个包卸载掉。对于samba-common-3.0.33-3.7.el5,因为与其它rpm包之间存在依赖关系,所以必须加参数-f和--nodeps,-f是指强制,--nodeps是指不检查依赖关系,具体完整命令为rpm –e –f –nodeps samba-common-3.0.33-3.7.el5,这样可以将此包顺利卸载。

2. 安装Samba

a) 挂载系统安装盘

使用命令mount /dev/cdrom /mnt/cdrom完成系统安装盘的挂载,完成之后进入/mnt/cdrom/Server,使用命令find samba*查询和samba服务相关的rpm包,可以查到如下4条记录:

[root@localhost /]# rpm -qa |grep samba

samba-client-3.0.33-3.7.el5

samba-3.0.33-3.7.el5

samba-common-3.0.33-3.7.el5

samba-swat-3.0.33-3.7.el5

samba-3.0.33-3.7.el5.i386.rpm:为Samba服务的主程序包。后面的数字为此包的版本号,要搭建Samba服务器,必须安装此软件包;

samba-client-3.0.33-3.7.el5.i386.rpm:为连接服务器和连接网上邻居的客户端的Samba客户端工具;

samba-common-3.0.33-3.7.el5.i386.rpm:存放通用的工具和库文件,通常此包必须安装;

samba-swat-3.0.33-3.7.el5.i386.rpm:为服务器图形化管理工具,此包安装完成之后,用户可以通过IE或其它浏览器来对Samba服务器进行图形化管理。

b) 安装Samba服务包

对于上面查询出来的4个Samba服务安装包进行逐一安装。如果直接用rpm –ivh安装samba-3.0.33-3.7.el5.i386.rpm包,将会报错,提示如下:

[root@localhost Server]# rpm -ivh samba-3.0.33-3.7.el5.i386.rpm

warning: samba-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

error: Failed dependencies:

perl(Convert::ASN1) is needed by samba-3.0.33-3.7.el5.i386

samba-common = 0:3.0.33-3.7.el5 is needed by samba-3.0.33-3.7.el5.i386

这是因为包之间存在依赖关系,所以正确安装方式应该是:

[root@localhost Server]# rpm -ivh -f --nodeps samba-3.0.33-3.7.el5.i386.rpm

warning: samba-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba ########################################### [100%]

同理,另外三个包也采用同样的方式进行安装:

[root@localhost Server]# rpm -ivh -f --nodeps samba-client-3.0.33-3.7.el5.i386.rpm

warning: samba-client-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba-client ########################################### [100%]

[root@localhost Server]# rpm -ivh -f --nodeps samba-common-3.0.33-3.7.el5.i386.rpm

warning: samba-common-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba-common ########################################### [100%]

[root@localhost Server]# rpm -ivh -f --nodeps samba-swat-3.0.33-3.7.el5.i386.rpm

warning: samba-swat-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba-swat ########################################### [100%]

    四个包安装完成之后,使用命令rpm -qa | grep samba进行查询,发现搭建samba服务器所依赖的所有服务器都已经安装好了。

    另外,必须保证系统安装了xinetd服务包,如果没有,需要自行安装。使用命令rpm –ivh xinetd-2.3.14-10.el5.i386.rpm。

3. 配置smb.conf文件

Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,该文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部分主要配置都在该文件中进行。

    Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放到日志文件中。

    下面简要介绍smb.conf配置文件的内容,用vi /etc/samba/smb.conf打开该配置文件,可以看到该配置文件按照功能不同分成了三部分:

a) 配置项说明

    这里主要对smb.conf文件的作用及相关信息进行简要说明,以“#”、“;”开头的行都是Samba的解释信息以及格式规范,默认是不生效的,可以通过去掉前面的符号来进行设置并使之生效。

b) 全局设置

全局设置区是从[global]行开始,主要完成一些对所有共享资源都生效的设置,比较有用的设置具体如下:

# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH

# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can

# specifiy it as a per share option as well

#

workgroup = MYGROUP

server string = Samba Server Version %v

; netbios name = MYSERVER

; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24

; hosts allow = 127. 192.168.12. 192.168.13.

其中,“workgroup = MYGROUP”行可以完成对samba服务器所在工作组的设置;server “string = Samba Server Version %v”行可以对服务器的描述进行设置,这主要用途是通过不同的描述,可以使用户能够对工作组中不同的Samba服务器进行区分。

c) Samba安全模式

以“Standalone Server Options”行开始为Samba服务器的安全级别设置区域,如下:

# ----------------------- Standalone Server Options ------------------------

#

# Security can be set to user, share(deprecated) or server(deprecated)

#

# Backend to store user information in. New installations should

# use either tdbsam or ldapsam. smbpasswd is available for backwards

# compatibility. tdbsam requires no further configuration.

security = user

passdb backend = tdbsam

其中,“security = user”为系统默认的安全级别, 在Samba服务器中,为了适应不同企业的安全需求,共有五种安全级别,分别是:

1) share模式:不用进行权限匹配检查即可访问共享资源,安全性比较差;

2) user模式:需要对用户名和密码进行验证,通过后才能访问共享资源,具有一定的安全性;

3) server模式:通过指定的服务器对用户名和密码进行验证,如果不通过,客户端会用user级别访问;

4) domain模式:domain级别的Samba服务器只作为域的成员客户端加入Windows域中,由Windows域控制器来完成对用户名和密码的验证;

5) ads模式:如果Samba服务器以ads方式加入Windows域中,将具备domian级别的所有功能,并且可以完成对用户名和密码的验证工作。

一般系统安装之后默认是的user级别。

d) 日志文件

    日志文件的设置在Samba服务器的搭建过程中同样非常重要,Samba服务器会为每个客户端分别建立日志文件,通过日志文件,可以了解到客户端访问的基本信息以及系统的包错信息等,方便对于系统的维护。日志文件默认保存在log file = /var/log/samba/%m.log。当启动Samba服务以后,会在/var/log/samba中看到nmbd.log和smbd.log两个日志文件。其中,nmbd.log记录nmbd进程的解析信息;smbd.log记录系统的错误信息以及用户的访问信息。当客户端访问时,这里会自动添加客户端的相关日志。

e) 共享设置

    在Samba服务器中,我们一般需要手工设置Samba的共享文件路径、访问规则等,下面进行简要说明。我们可以在 smb.conf 文件的最下面加上一段:

[public]

comment = jianw

path = /usr/share/jw

public = yes

readonly = yes

    加上之后保存smb.conf文件。其中,“[public]”为共享目录名,共享资源发布以后,存放共享资源的目录成为共享目录,必须为共享目录定义一个共享名;“comment”为共享资源的描述,方便用户访问时对共享文件进行区分,在这里定义设置为“jianw”;“path”为共享文件存放的绝对路径,例如可以在/usr/share中mkdir一个“jw”目录存放共享文件,那么这里的路径设置为“path = /usr/share/jw”;“public”行可以设置共享资源是否允许匿名访问,设置为“yes”表示允许匿名访问,设置为“no”表示禁止匿名访问;“readonly”行为对文件读取进行设置,设置为“yes”表示只读,设置为“no”表示可以读和写。

4. 设置访问用户

    对于访问Samba服务器的帐号,需要首先在系统中建立同名系统帐号,如想要建立一个名为“jianw”的Samba帐号,需首先在系统中建立名为“jianw”的系统用户。建立Samba帐号的命令为“smbpasswd -a 用户名”。输入命令之后,还需要设置Samba帐号密码,Samba帐号密码与系统帐号密码可以不一致。如下:

[root@localhost /]# smbpasswd -a jianw

New SMB password:

Retype new SMB password:

    用户名和密码信息通常存放在/etc/samba/smbpasswd中,Samba服务器在每次用户进行访问时,会将用户提交的信息与smbpasswd保存的信息进行对比,通过后才与客户端建立连接,允许客户端访问。如果在/etc/samba中找不到smbpasswd文件,是因为samba启用了tdbsam验证,可以修改smb.conf文件的“passdb backend = tdbsam”行,然后加上“smb passwd file = /etc/samba/smbpasswd”。

5. 开启Samba服务

OK,现在通常基本的配置已经完成,可以开启Samba服务器的服务了,用命令service smb start 或 /etc/rc.d/init.d/smb start,如下:

[root@localhost /]# service smb start

启动SMB服务: [确定]

启动SMB服务: [确定]

    这样,Samba服务就已经开启好了,现在还需要关闭系统防火墙,用命令iptables –F。

    现在,可以通过Windows客户端对Samba服务器进行访问了。在IE或者“运行”中输入:\172.16.23.165public,输入用户名和密码进行验证之后,即可进入Samba服务器的共享目录。如下:


图1

    上面介绍了最简单的Samba服务器配置,对于一些更复杂的高级操作,由于篇幅限制,在此不做介绍,有兴趣的朋友可以自己学习,谢谢!


在增加用户那一步出现

[root@localhost samba]# smbpasswd -a smbshare
New SMB password:
Retype new SMB password:
Failed to modify password entry for user smbshare

这一步的原因是 因为增加的用户需要是linux上面本来就用的用户,这里只是使该用户可以使用samba服务

有两种选择,一种是把现有的账户进行添加。例如我的linux用户名是davinci  所以用 sabpasswd -a  davinci 这个命令就可以顺利执行

还有一种选择就是在系统中添加一个专门用于samba分享的用户,然后添加到samba服务中。

参考如下

[root@www.unixnotes.net ~]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Failed to add entry for user test.
解决办法:
这是因为没有加相应的系统账号所以会提示Failed to add entry for user的错误,只需增加相应的系统账号test就可以了:
[root@www.unixnotes.net ~]# pw groupadd test -g 6000
[root@www.unixnotes.net ~]# pw useradd test -u 6000 -g 6000 -s/sbin/nologin -d/dev/null
这时就可以用smbpasswd -a test增加test这个samba账号了!为了增加系统的安全性,所以加的系统账号不要给shell它,也不给它指定目录,到时在/home目录给test账号建个文件夹,该文件夹只有test有读写权限即可!
如:
[root@www.unixnotes.net ~]# mkdir /home/test
[root@www.unixnotes.net ~]# chown -R test:test /home/test
若不想让另人访问,只让test用户可以访问,只需执行命令:
[root@www.unixnotes.net ~]# chmod u+rwx,g+rwx,o-rwx /home/test
这时可以用smbpasswd命令增加samba账号test了
[root@www.unixnotes.net ~]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值