相关软件包及其用途:

 

samba-3.0.25b-0.el5.4.i386.rpm:该包为Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号(我们安装时使用的是RHEL5.1DVD版,如果是RHEL5.1CD版则该软件包位于第二张RHEL5安装光盘上)。

samba-client-3.0.25b-0.el5.4.i386.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具(该软件包位于第一张RHEL5安装光盘哈~)

samba-common-3.0.25b-0.el5.4.i386.rpm:该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包(这个软件包也位于第一张RHEL5安装光盘哈~)

samba-swat-3.0.25b-0.el5.4.i386.rpm:当安装了这个包以后,就可以通过浏览器(比如IE等哈)来对Samba服务器进行图形化管理(这个软件包位于第三张RHEL5安装光盘哈)。

 

----------------------------------------------------------

 

 

Share Definitions共享服务的定义

 

Share Definitions设置对象为共享目录和打印机,如果我们想发布共享资源,需要对Share Definitions部分进行配置。

1)设置共享名

共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。

共享名设置非常简单:[共享名]

我们来看个例子,Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public

 

【public】

comment = comment

path = /share

public = yes

 

2)共享资源描述

 

络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么哈。

格式:comment = 备注信息

举个例子哈,samba服务器上有个/sales目录存放公司销售部的数据,为了对公司部门员工进行区分,可以添加备注信息。

【sales】

comment = Share Directory of sales

path = /sales

valid users = @sales

 

3)共享路径

共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。

格式:path = 绝对地址路径

samba服务器上/share/tools目录存放常用工具软件,需要发布该目录为共享,我们可以这样做。

【tools】

comment = tools

path = /share/tools

public = yes

 

4)设置匿名访问

共享资源如果对匿名访问进行设置,可以更改public字段。

格式:

public = yes #允许匿名访问

public = no #禁止匿名访问

samba服务器/share共享目录允许匿名用户访问,可以这样设置。

【public】

commnet = share

path = /share

public = yes #允许匿名访问

 

5)设置访问用户

如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid users字段进行设置哈~

格式:

valid users = 用户名

valid users = @组名

我们来看下面一个例子哈,samba服务器/share/tech目录存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理帐号为gm

【tech】

comment = tech

path = /share/tech

valid users = @tech,gm

 

6)设置目录只读

共享目录如果限制用户的读写操作,我们可以通过readonly实现哈~

格式:

readonly = yes #只读

readonly = no #读写

samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入哈~

【public】

comment =/public

path = /public

readonly = yes

 

7)设置目录可写

如果共享目录允许用户写操作,可以使用writablewrite list两个字段进行设置哈~

writable格式:

writable = yes #读写

writable = no #只读

write list格式:

write list = 用户名

write list = @组名

 

注意:Attention:

[homes]为特殊共享目录,表示用户主目录。

[printers]表示共享打印机。

 

3.2 Samba服务日志文件

 

日志文件对于samba非常滴重要哈,它存储着客户端访问samba服务器的信息,以及samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。

/etc/samba/smb.conf文件中,log file为设置samba日志的字段。

 

; logs split per machine

;log file = /var/log/samba/%m.log

;max 50kb per log file. the rotate

; max log size = 50

 

samba服务的日志文件默认存放在/var/log/samba/中,其中samba会为每个连接到samba服务器的计算机分别建立日志文件。

我们启动smb服务:/etc/rc.d/init.d/smb start

使用ls -a命令可以查看日志的所有文件:

 

ls -a /var/log/samba/

 

其中,当samba服务器刚刚建立好后,只有两个文件,分别是nmbd.logsmbd.log,它们分别记录nmbdsmbd进程的运行日志。

nmbd.log记录nmbd进程的解析信息。
smbd.log记录用户访问samba服务器的问题,以及服务器本身的错误信息,可以通过该文件获得大部分的samba维护信息。

当客户端通过网络访问samba服务器后,会自动添加客户端的相关日志。

所以哈,我们Linux管理员可以根据这些文件来查看用户的访问情况和服务器的运行情况。另外当samba服务器工作异常时,也可以通过/var/log/samba/下的日志进行分析哈~

 

3.3 Samba服务密码文件

 

samba服务器发布共享资源后,客户端访问samba服务器,需要提交用户名和密码进行身份验证,验证合格后才可以登录。samba服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd中,在客户端访问时,将用户提交资料与smbpasswd存放的信息进行比对,如果相同,并且samba服务器其他安全设置允许,客户端与samba服务器连接才能建立成功哈~

那如何建立samba帐号呢?偶在说之前先强调一点哈,samba帐号并不能直接建立滴,需要先建立Linux同名的系统帐号。比如如果我们要建立一个名为michaelsamba帐号,那Linux系统中必须提前存在一个同名的michael系统帐号。

samba中添加帐号命令为smbpasswd,命令格式:

smbpasswd -a 用户名

我们来测试下,在samba服务器中添加samba帐号redking,我们建立samba帐号之前必须先添加相对应的系统帐号,使用useradd命令建立帐号redking,然后执行passwd命令为帐号redking设置密码哈~最后我们添加redking用户的samba帐号,执行smbpasswd添加帐号redkingsamba配置文件中。

----------

useradd user1

passwd user1

添加账户成功后再添加成为samba账户

smbpasswd -a user1 输入相应的samba密码

 

OKSamba帐号添加完毕哈,如果我们在添加samba帐号时输入完两次密码出错:Failed to modify password entry for user hongfan

这是因为Linux本地用户里没有hongfan这个用户,我们在系统里面添加一下就OK了哈~

呵,所以哈,务必要注意在建立samba帐号之前,一定要先建立一个与samba帐号同名的系统帐号。

我们经过上面的设置,再次访问samba共享文件时就可以使user1或hongfan帐号访问了。

注意:解决/etc/samba目录下没有smbpasswd文件

 

ls /etc/samba

 

原因:samba启用了tdbsam验证。如下:

 

security = user

passwd backend = tdbase

 

解决:smb.conf文件中注释掉passdb backend = tdbsam 一行,加上smb passwd file = /etc/samba/smbpasswd,然后保存退出。

 

security = user

;passdb backend = tdbase

smb passwd file = /etc/samba/smbpasswd

 

这样再建立用户就产生了/etc/samba/smbpasswd文件了。

使用cat命令查看smbpasswd文件滴内容哈~

 

cat /etc/samba/smbpasswd

 

 

3.4 Samba的启动与停止

 

1samba服务的启动

service smb start/etc/rc.d/init.d/smb start

2samba服务的停止

service smb stop/etc/rc.d/init.d/smb stop

3samba服务的重启

service smb restart/etc/rc.d/init.d/smb restart

 

 

4samba服务配置重新加载

service smb reload/etc/rc.d/init.d/smb reload

注意:Linux服务中,当我们更改配置文件后,一定要记得重启服务哈,让服务重新加载配置文件,这样新的配置才可以生效哈~

 

5)自动加载samba服务

 

chkconfig

我们可以使用chkconfig命令自动加载smb服务:
chkconfig --level 3 smb on #运行级别3自动加载
chkconfig --level 3 smb off #运行级别3不自动加载

 

chkconfig --list | grep smb

chkconfig --level 3 smb on

chkconfig --list | grep smb

chkconfig --level 3 smb off

chkconfig --list | grep smb

 

ntsysv

 

我们还可以使用ntsysv命令利用文本图形界面对smb自动加载进行配置,如果要自动加载smb可以在其前面选中“*”,否则取消掉就不自动加载了哈~

 

 

 

 

samba服务器安全模式

 

 

(1)share安全级别模式

客户端登录samba服务器,不需要输入用户名和密码就可以浏览samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba服务器的安全性。

(2)user安全级别模式

客户端登录samba服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。

(3)server安全级别模式

客户端需要将用户名和密码,提交到指定的一台samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。

(4)domain安全级别模式

如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域滴。

(5)ads安全级别模式

当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。