使用SmbFile创建LinuxSamba协议共享协议出来的路径,结果抛出SmbException:The network name cannot befound.

Samba是在Linux和UNIX系统上实现SMB协议的一个免費软件有服务端和客户端程序构成。随着Linux的普及如何共享协议Linux下的文件成为用户关心的问题。其实几乎所有的Linux发行套件都提供了一個很好的工具Samba——通过它可以轻松实现文件共享协议。

通用lnternet文件系统(CIFS)也称为服务器信息块(SMB)是适用于MicrosoftWindows服务器和客户端的标准文件囷打印机共享协议系统。
Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享协议进行共享协议并将Linux打印机作为CIFS/SMB打印机共享协议进行共享协议。

因為在服务端未设置所以不用输入密码,直接回车登陆成功

2、添加smb用户(在服务端)

smb用户必须是本地用户!!!

–L:列出Samba用户列表,读取passdb.tdb数据库文件 –Lv:列出Samba用户列表的详细信息。

在服务端tom用户家目录查看:

二、samba的访问控制

2、黑白名单(Samba服务器默认对所有用户开放权限)

(如果黑皛名单同时存在该ip则该ip为白名单里)

删除或者注释的黑白名单

(1)共享协议自己建立的目录


323 [mnt] # 共享协议系统目录的名称,这个名称也是任意的

在服务端:由于这是系统文件如果更改安全上下文,会影响其他用户的访问所以我们让samba服务对读写功能权限不做限制

查看权限并給该目录加r(是否可以查看目录中有什么子文件或者子目录)权限

4、samba服务的权限管理

在客户端查看共享协议目录:

与前面在客户端查看共享协议目录,该目录已被隐藏


(8)指定root用户

所有用户对目录是否可写
对指定用户组tom可写
允许其他用户(也就是匿名用户)登陆
指定tom用户超級用户
}

是一款专门为Linux系统而打造的资源囲享协议工具Samba能够打破操作系统之间的隔阂,从而让您的文件可以实现共享协议并且软件非常的安全,帮助您可以放心的来进行共享協议、使用


Block,信息服务块)是一种在局域网上共享协议文件和打印机的一种通信协议它为局域网内的不同计算机之间提供文件及打印機等资源的共享协议服务。SMB协议是客户机/服务器型协议客户机通过该协议可以访问服务器上的共享协议文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源还能与全世界的电脑分享资源。


最主要的设定档了!在较为简单的设定当中这也是唯一的一个设定档!此外,这个档案本身就含有相当丰富的说明所以,在设定之前请使用vi 好好的详细的观看一下这个档案吧!这个设萣档主要的设定分为两部份,分别是[global] 这个设定主机功能的项目以及接下来的每个分享出去的目录的属性设定。

NetBIOS name 对应 IP 的信息因此,这个檔案通常可以不用设定了

/etc/samba/smbpasswd:这个档案预设并不存在。它是SAMBA 预设的使用者密码对应表当设定的 SAMBA 服务器是较为严密的,需要使用者输入账號与密码后才能登入的状态时使用者的密码预设就是放置在这里( 当然啰,您可以自行在 smb.conf 里面设定密码放置的地方及密码文件名不过,峩们这里都以预设的状态来说明) 比较需要注意的是,这个档案因为包含了使用者的密码所以,当然权限方面要较为注意啦!这个档案嘚拥有者需要是root 且权限设定为 600 才行。

testparm:当设定完成了smb.conf 这个主要设定档之后而想要查看一下 SAMBA 的所有设定参数与 smb.conf的设定项目是否正确时,僦需要使用这个 testparm 来查看( test parameters 的简写!)!所以每次在修改完 smb.conf之后,请务必要使用 testparm 查看看是否有设定错误

smbpasswd:如果SAMBA 设定的较为严格,需要规定使鼡者的账号与密码那么那个密码档案的建立就需要使用smbpasswd 来建置才可以,所以这个指令与建立 SAMBA 的密码有关 smbclient:当Linux 主机想要藉由『网络上嘚芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用smbclient 来查看啦!这个指令也可以使用在 SAMBA 主机上面用来查看是否设萣成功。

smbmount:在Windows 上面可以设定『网络磁盘驱动器』来连接到主机上面同样,在Linux 上面可以透过 smbmount 来将远程主机分享的档案与目录挂载到Linux 主机仩面。不过其实也可以直接使用 mount 这个指令来进行同样的功能就是了。


【Samba功能介绍】

和打印共享协议是Samba最主要的功能Samba为了方便文件共享協议和打印共享协议,还实现了相关的控制和管理功能具体来说,Samba完成的功能有

1、共享协议目录:在局域网上共享协议某个或某些目录使得同一个网络内的Windows用户可以在网上邻居里访问该目录,就跟访问网上邻居里其他Windows机器一样

2、目录权限:决定每一个目录可以由哪些人访问具有哪些访问权限。Samba允许设置一个目录让一个人、某些人、组和所有人访问

3、共享协议打印机:在局域网上共享协议打印机使得局域网嘚其他用户可以使用Linux操作系统下的打印机

4、打印机使用权限:决定哪些用户可以使用打印机

安装和配置好了Samba服务器后,Linux就可以向局域网中的Windows鼡户提供文件和打印服务了


首先需要安装samba程序部分Ubuntu镜像已经自带;执行如下命令即可

如果可以看到版本号即为安装成功

第二步需要配置samba垺务器,使用如下命令打开samba的配置文件

这其中比较重要的参数为path和valid users, path指定了samba服务器的根目录可以任意指定合法路径; valid users表示可以访问samba服务器嘚合法用户;用户在配置时注意需要将路径改为自己需要的路径,切勿全盘照抄

由于在上文中配置的samba服务器根文件路径在我的Ubuntu上还不存在所以我需要在对应路径下创建文件夹,并修改其权限

接下来需要为samba服务器添加用户了由于我的配置中使用的是名为"zhang"的用户(该用户其实僦是我的登录用户),所以我需要通过如下命令来为samba添加此用户并设置密码

配置完成后需要重启samba服务器使用如下命令重启samba服务器

接下来就鈳以在windows上访问samba服务器了,通过如下的方式访问

输入地址后我们应该就可以看到我们之前创建的share文件夹了

点击文件夹,系统会弹出一个窗ロ让我们输入用户名和密码这个地方有个小坑,就是在用户名的前面会自带域名如果我们在带有域名的前提下输入用户名,是无法通過验证的所以我们需要在用户名前加一个'\'符号

输入用户名密码后我们就进来了,然后由于此时没有什么文件我们看见的是空白一片,吔无法确定是否成功了;那么如何验证呢很简单,在linux上创建一个文件然后在windows上刷新一下,看能否看见创建的文件即可,我们安装如下的步骤来

1.在linux上使用命令创建一个空白的test文件并往其中写入一定的内容

2.在windows上刷新查看是否可以看到test.txt文件且内容与在linux中写入的一致

如果验证无誤,则表明我们的samba服务器已经成功创建

为了更方便地使用我们可以将samba服务器映射到磁盘,按照如下的步骤即可将samba服务器映射到磁盘

1.打开計算机界面点击映射网络驱动选项

2.在文件夹选项中输入对应的路径

3.点击确定,即可在计算机界面看见映射成功的磁盘了


一、有一个共享協议目录为rule里面放公司的规章制度,所有用户都可以查看但是不能修改,解决方法:

二、一部分人只对file1这个目录有权限一部分人只对file2這个目录有权限,解决方法:

1.首先建立两个samba用户user1和user2,这两个用户要保证是在Linux系统中存在的用户命令如下:

4.在客户端登录samba服务的时候分配给访問file1的用户user1的用户名,访问file2的用户user2的用户名

三、只有user1组里的人对file1这个目录有权限并且user1组中用户a有读写权限,而用户b只有读权限解决方法:

1.艏先建立两个samba用户a和b,这两个用户要保证是在linux系统中存在的用户并且在同一个用户组user1中,创建方法同上

2.然后对目录file1设置访问权限让用戶组user1可以访问file1,命令如下:


NETLOGIN 进程pre-fork 模型现在重启了失败进程以及其他进程模型的改进。

此外新版本带来了 GPO 的改进、脱机域的备份、组成員身份的统计、JSON 日志的增强及其他改动。

简而言之此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无


}

Samba使用大全(绝对经典)

(一)samba服務器

NT服务器系统中实现不同计算机之间共享协议打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。

随着 Internet的流行Microsoft希望将这个协議扩展到Internet上去,成为Inter net上计算机之间相互共享协议数据的一种标准因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System)并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议

因此,为了让Windows和Unix计算机相集成最好的办法即是在Unix计算机中安装支持SMB/CIFS协议的軟件,这样Windows客户就不需要更改设置就能如同使用Windows NT服务器一样,使用Unix计算机上的资源了Samba是用来实现SMB的一种软件,它的工作原理是让NETBIOS(Windows95網络邻居的通讯协议)和SMB(Server Message Block)这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Unix计算机可以在网络邻居上被Windows 计算机看到它的功能有:

。这里讲比较有用的使用方法:

smbclient -L IP或者NETBIOS名称作用是显示某台提供samba服务的服务器上的共享协议资源。命令执行效果如下:

第一段列举了该机器(glass)上面的共享协议资源第二段列举了glass所在的工作组里面所有提供samba服务的机器,第三列举了其他工作组提供 browse服务的Master机器(关于Master和Browse服务鈳以参考我的前面一篇samba使用大全-samba服务器)

 
接下来的操作和ftp的时候命令一样,用get下载文件而用put上传文件命令可以用help查看。


常用的的option有username=<用戶名>password=<密码>,guest(指定为用guest访问不用提供密码,前面的即使用username=guest参数的话也会要求输入密码)ro(有时候为了系统安全要指定为只读模式),rw同时多个 option的话用逗号隔开。



如果不需要使用的时候可以简单地使用smbumount /test或者umount /test来解除这个挂接。
关于samba的功能(共享协议Linux磁盘给Win95/NT、共享协议Linux咑印机给win95/NT、共享协议win95/NT打印机给Linux机器、共享协议Win95/NT磁盘给Linux机器),前面两个属于samba服务器的内容而后两个属于samba客户段的内容在我的两篇文章Φ都有介绍了他们的实现方法,但是samba实在是一个强大的工具无法十分详细地介绍它地全部功能,而且限于笔者的知识有限有不到之处請各位指出,还望各位多多交流
Samba使用大全中有这样一段:

如上面所述,我建立一个共享协议文件夹(smb.conf片断)

  
 
按照资料的意思不论我以任何鼡户登陆到这个共享协议文件夹,在这个文件夹里建立的文件都是属于root用户的当前用户建立文件之后应该就是没有删除的权限了。
-rwxr--r--,这样應该说我在win2000上就应该不能删除这个test.txt文件了但是,在win2000里却可以删除这个文件,不知道兄弟们有没有注意这个问题到底怎样解释?
还有┅个问题/home/myshare目录是root用户建立的,用命令chmod 777 /home/myshare 更改过权限上面的权限问题是不是和这个文件夹的权限有关?





0755这样guest就不能删除了”这个意思,洏是任何登陆的用户进入这个目录时就被当作root作为root当然可以进行任何操作,登陆身份的改变是在刚登陆之后
我在linux系统中察看当前连接箌samba的用户id时发现:不管我用那一个用户登陆samba服务器,只要我进入MyShare目录当前的用户id就变为root,
可是,这样的话我就无法实现限制用户在指定目录里只能写,不能删除的权限了这样的权限限制在windows的ntfs文件系统中是很容易实现的,
不知道在samba中如何才能实现这样的限制抑或根本就實现不了?

Samba服务器的使用




Block服务信息块)协议可以看作是局域网上的共享协议文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息
SMB的工作原理是让NetBIOS(Win95网络邻居通信协议)与SMB这两种协议运行在TCP/IP的通信协议上,且使用NetBIOS
nameserver让用户的Linux机器可鉯在Windows的网络邻居里被看到所以就可以和Win95/NT主机在网络上相互沟通,共享协议文件与服务了

System,通用网络文件协议)该协议支持TCP/IP和DNS等协议,能在www上支持文件和打印共享协议在CIFS下服务器实际上是DNS名,由主机名和域名组成这种变化是从NetBIOS命令结构中分离出来的。目前CIFS还没有得箌广泛的应用现在在Linux和Win95/NT之间的文件共享协议注意还是 SMB和NFS。

Samba是用来实现SMB的一种软件由澳大利亚的Andew Tridgell开发,是一种在Linux(Unix)环境下运行的免费軟件
通过使用Samba,Linux系统可以实现如下功能:
文件服务和打印服务(在Linux和Win95/NT之间系统之间提供打印机和磁盘的共享协议)
登陆服务器使用Windows客戶能注册到网络上
作为主要域控制器和域中成员的功能
WINS服务器以及浏览功能



在Samba的软件包中所包括的组件参看表1-1:


Samba为smbd、nmbd和访问Samba的客户提供了丅列记录文件,分别记录有关smbd、nmbd运行信息和每个客户的访问信息:







Samba的运行包含两个后台守护进程:smbd和nmbd它们是Samba的核心,在全部时间内运行nmbd
程序使得通过企图计算机可以浏览Linux服务器。Smbd守护进程在SMB软件包到达网上时对它们进行处理并且为使用或共享协议它的资源与Linux进行协调。如果指定的是一个文件该资源就是一个文件;而一个打印机请求就要求访问一台打印机。实际上在请求访问打印机时,Smbd把要打印的信息存储到打印机队列中;在请求访问一个文件时Smbd把数据发到内核,最后将它存到磁盘上
你可以从inetd选择启动它们,但这种方法会使Samba变慢建议使用下面命令可以启动这两个进程:




二、Samba配置及使用

在安装完Samba后,还需要定制它的配置文件smb.conf才能使Samba正常工作以符合要求。由于SMB昰一个非常复杂的协议所以配置Samba的工作也是比较繁琐的,大约有超过170条配置项出现在smb.conf文件中

smb.conf文件有一个清晰的语法结构,与Windows的*.ini文件十汾类似如下所示:
该文件被分成几部分,每一部分都包括几个参数用来定义Samba输出的共享协议及其详细操作。
文件被分隔成若干节每┅节都由一个被方括号括起来的标识开始(例如,[global]、[home]、[printers])每一个配置参数或是一个全局参数(影响或控制整个服务器),或是一个服务參数(影响或控制服务器提供的某项服务 )
global部分定义的参数用来控制Samba的总特性。除global部分外每一部分都定义了一个专门的服务。
你可以使用下面的语句来指定一个参数:

name可以是一个单词或者用空格隔开的多个单词VALUE可以是布尔值(ture或false;yes或no;1或0)、数字或字符串。
注释以分號开头可以单独一行,也可以跟在一条语句之后
通过在一行的最后一个字符后加反斜杠"\\"可以将一行分成多行。
每一部分的名字和参数嘟不区分大小写例如,参数browseable=yes与browseable=YES是完全等价的

smbd和nmbd这两个守护进程启动时(通常为系统引导时)读配置文件smb.conf这一配置文件向这两个守护进程说明输出
什么共享协议、共享协议输出给谁以及如何进行输出等等。
因为安全问题是最重要的所以你必须指定哪些计算机可以访问这┅共享协议,smb.conf文件可以很灵活的明确指定每一服务有哪些用户可以访问随着Linux网络的增大,这一控制越来越重要

smb.conf文件主要包括三部分:



其中,global参数用来设置整个系统的规则;[home]部分和[printer]部分是服务的特定例程services(服务)这一术语是网络客户机共享协议或输出的目录和打印机的Samba術语。这些服务定义了哪些用户可以访问这些目录和打印机以及如何访问这些目录和打印机
清单1-1给出了smb.conf文件的一个简单的例子。
 
在 [global] 段中設置了主机名称, 主机所在的工作组名称和浏览时可看到的对本机的描述安全参数告诉 Samba
使用"用户级别"的安全保护方式。 SMB 有两种安全模式: 囲享协议级别, 将资源加密码控制;用户级别, 可以使用某一用户的所有资源
这里不能详细解释两种方式的微妙差别, 但大部分情况下, 你会想鼡用户级别安全控制。
[global] 段中还定义了日志文件目录和锁定文件的位置日志文件在解决故障和完善系统时是很有用的,锁定文件可以阻止哆个用户同时修改相同的文件
[homes] 段中的设置控制了每一个用主目录的共享协议权限。comment 参数指定的字符串在你浏览本机资源时出现在指定资源的旁边
browseable 参数控制一项服务是否能够出现在网络资源浏览表中。这里是一些非直觉的东西, browseable = no
意味着这个目录将在浏览时显示为要验证的用戶名称 举例来说, 指定 browseable = no, 当我浏览这个 Samba 服务器时,

的共享协议目录。设置 read only = no 将允许通过验证的用户对主目录有写入的权限 但是, 如果他们的主目錄的 UNIX 权限 不允许写入,
那么他们就没有写的权限。 无论 UNIX 的权限怎样, 设置 read only = yes 后, 他们的主目录是只读的
printing 命令描述了本地打印系统类型, 这可以让 Samba 知噵怎样提交打印任务, 显示打印队列, 删除打印任务和其它操作。
如果打印系统是 Samba 所不知道的, 你必须在每次执行打印操作时指明命令
清单中[printing]┅段配置允许任何能够登录到 Samba 服务器的用户使用 printcap 中出现的 每一台打印机。 正常情况下,
如果使用用户级别安全控制, guest ok = yes 并不能授权每一个用户(使鼡系统) 每一个打印服务必须定义为 printable =

下面的一段配置片断增加了一个命名为 public 的共享协议目录, 直接对匿名FTP目录有只读的 权限。 你必须在客户機上建立打印机驱动程序 对于

  
 
这段描述并不是解释一些微妙的主题,
例如用户级和共享协议级安全性的区别或者其它的授权认证主题。它僅仅让我们看到了Samba这座冰山的一角另一方面,这是一个良好的例子从中我们可以了解产生一个简单但可工作的smb.conf文件是多么容易。
下面我们举另一个例子说明如何通过Samba把Linux的打印机共享协议给Windows机器。
为了共享协议Linux的打印机给Windows机器必须确定Linux机器上的打印机已经设置好。如果能从Linux上打印那么设定Samba的打印机共享协议是很简便的。只要根据自己的情况对smb.conf文件有关打印的部分进行修改就可以了。在修改中唯一需要注意的是确保打印机的路径要与 /etc/printcap中的spool目录相符合然后就可以在Win95/NT上配置网络打印机了(关于如何在Win95/NT上配置网络打印机,本文不做介绍)

在Samba的软件包里的example目录中有一个缺省的配置文件 smb.conf.defaults。我们可以对它做适当修改后拷贝到你的安装目录下的lib目录里并改名为smb.conf。清单1-2是Samba 系统提供的标准的配置文件为方便读者阅读,本文翻译了文件中的注释并适当的添加了解释
# 这是服务器的主要配置文件。您应该阅读smb.conf(5)的用戶手册以了解下面
# 列出的每一个选项Samba有很多的选项,它们之中的大多数并没有出现在这
# 以分号";"或井号"#"开始的每一行都是注释在执行時被忽略。在本例中
# 我们使用"#"作为注释而使用";"作为可选配置的注释
# 注意:无论何时修改了这个配置文件,您都要运行"testparm"命令来检查您所
# 莋的修改有没有基本的语法错误
# workgroup用来指定您的机器在网络上所属的NT域名或组名。格式是
# 下面的选项对于安全很重要它允许您设置哪些領域的机器可以访问您的Samba
# 服务器。下面的这个例子允许两个C类子网和"lookup"的连接请求而禁止来
# 自其他网段机器的连接请求有关的例子请参看smb.conf嘚用户手册。
# 允许自动加载打印机列表而不需要您单独设置每一台打印机。
# 您也许希望覆盖原有的printcap 文件
# spool中自动获得打印列表。
# 除非您嘚打印机不是标准型号否则您没有必要在下面指定打印机系统的类型。
# 如果希望建立一个客户帐号去掉下面语句前面的分号";"。同时您必须在
# /etc/passwd中加入这个帐号的定义,否则将使用用户"nobody"作为客户帐户
# 此选项将为每一个与服务器连接的机器定义一个单独的日志文件。
# 此選项设置最大的日志文件的大小(以KB为单位)
# 定义安全模式大多数人都喜欢用户级安全模式,详细内容参看security_level.txt
# 只有当安全模式设置为服务器级(security = server)时才定义下面选项。
# 文件请在阅读以上文件后使用下面选项。
# 使用此选项允许您对每一个机器使用不同的配置%m将被替换成與服务器
# 大多数人会发现此选项将显著提高服务器的执行效率,请参读speed.txt和用户
# 手册以了解更多细节
# 配置Samba来使用多个网络界面,如果您有哆个网络界面那么必须按照下面
# 格式在这里列出。请参阅用户手册以获得更多的细节
#如果不想使您的Samba服务器成为局域网内部的主浏览垺务器,将此选项设为no
# OS Level决定了该服务器在局域网内的访问优先权
#网列表中比较浏览。如您已经有一台Windows NT域控制器不要使用此选项
# Preferred Master使Samba在启動时选择一个本地浏览器并给它获得选择的较高
#仅当您的网络中有一台在安装时设置为主域控制器的NT服务器时使用此选项。
# 如果想使Samba成为Windows95笁作站的登录服务器则使用此选项。
# 如果允许域登录服务那么您也许希望每台机器或每个用户的登录脚本运行一
# 个特定的每工作站的登录批处理文件。
# 运行一个特定的每用户名登录批处理文件。
# NetBIOS名%U是用户名,您必须取消后面定义的[Profiles]前面的注释号
# 注意:Samba既可以作为WINS垺务器也可以作为 WINS客户机,但不能兼
# WINS Prox代表一个非WINS客户通知Samba响应名字解析请求要使此选项
# 正常工作必须保证网络中至少有一台WINS服务器。缺渻值是NO
# 名。对于1.9.17 以前的版本内置值是yes 对于1.9.18之后的版本内置值是no 。
# 所有使用者的home目录
# 当一个客户程序以客人用户类出本服务器的共享协議服务时不列出homes服务。
# 但是本机用户创建的主目录服务仍使用[global]节设定的browseable
# 如果要创建一个netlogon目录则取消下面的注释。
# 如果要提供一个特定嘚共享协议roving profile则取消下面的注释
# 缺省值是使用用户的home目录。
# 注意:如果您有一个BSD 风格的打印系统您不需要单独定义每台打印机。
# 此选项萣义网络用户共享协议文件的临时目录
# 一个用户共享协议目录,除了在"staff "组里的用户有些写的权限之外之外对
# 其它用户是只读的。
# 下面萣义了一台只有fred可以使用的私人打印机Spool数据放在fred的home
# 目录里。注意:fred必须对Spool目录有写的权限不管这个目录在什么位置。
# 下面定义一个只囿用户fred才能使用的私人目录fred 必须对这个目录拥有
# 下面定义的是对每个域服务器连接的机器有不同的目录的服务。这将允许您
# 对于不同的機器使用不同的配置同样也可以使用%U选项为每个用户使用不
# 同的配置。%m在连接时将被替换为客户机的主机名
# 下面定义一个所有用户都鈳以读写的共享协议目录。注意用户在这个目录中创建的
# 文件都将归默认用户所有所以任何可以访问这个目录的用户都可以删除别的
# 用戶在这个目录里放置的文件。显然这个目录对于默认用户必须是可写的。
# 当然也可以指定某个用户,这时该目录的所有文件将为此鼡户所有。
# 下例说明了如何定义让两个用户共享协议一个目录他们在这个目录里放置的文件
# 归他们各自所有。在此例中这两个用户对該目录都有写的权限。当然文件的
# 保护应该设置恰当很显然,这个例子可以扩展到适合于多个用户的情况
 


使用以下参数来限制通过主機地址访问:





allow"这两个功能相同的参数指定允许访问一个服务的主机列表,主机列表用""号、空格或制表符隔开。如用于[global]段则应用于所有垺务,而忽略在每个服务中的各自的设置
主机列表的组成可以是主机名、IP地址、子网地址或网络号码/掩码。也可以使?quot;EXCEPT"关键字来限制子网Φ的个别主机的访问例如:





使用以下参数来限制通过用户口令访问:

参数security可以确定对客户用户名/口令的验证方式。缺省为"user"即对Samba服务器嘚任何访问都要通过用户名/口令的验证。如果客户登录客户机如Windows
所用的用户名与Samba服务器上的UNIX用户名一致,则通过口令验证后就可以访问;如Windows
所用的口令也与UNIX一样那么不经任何提示就可以访问。
但如果客户机上登录的用户名与Samba服务器上的UNIX用户名不一致则需要在一个映射攵件中(如/etc/smbusers)写入客户机用户名到UNIX用户名的映射,同时使用"username
map"参数指定映射文件例如:



这样,在客户机上以"cuckoo


security 参数的另一个值是"share"表示Samba服务器不需要客户机使用用户名/口令来登录,而是根据每个共享协议的设置来决定是否需要用户名/口令验证设置security为share一般用于客户机上大多数鼡户名与Samba服务器上UNIX用户名不相同的情况,以及Samba服务器主要提供guest 访问

passwords",Samba将使用UNIX的password数据库来验证用户口令这需要客户机将口令以"普通文件"嘚方式传递过来。如果设置了"encrypt






上面的两个参数的功能相同都可以使用相应的服务允许guest用户,即不需要用户名/口令验证如果还指定了"guest
only",那么相应的服务器只允许由guest用户来访问


这两个参数分别设置不允许注册某个服务和允许注册某个服务的用户列表。一个用户同时出现在兩个列表中的时候不允许注册优先。列表中的用户名可以用空格隔开以"@"开头的名字被认为是NIS
组名或UNIX组名;以"+"开头的名字被认为是UNIX组名;以"&"开头的名字只被认为是NIS组名。

此参数控制是否只允许在"user ="列表中指定的用户访问某个服务如果设置为true,则只有在"user ="列表中的用户才能访問
4).通过是否可以读写来控制

此参数设置为"yes",则使用服务的用户不能在该服务的目录中创建或修改文件



这三个参数功能相同。如果它們被设置为"no"则使用服务的用户不能在该服务的目录中创建或修改文件。


这两个参数分别指定只允许对一个服务进行只读访问或同时有"写"權限的主机列表这里,如果一个主机同时在两个列表里则"写"优先。
5).通过是否在浏览器列表中显示来控制


这两个功能相同的参数控制該段是否在浏览列表中列出浏览列表列出的是可获得的共享协议列表。一般[home]段禁止浏览以提高安全性。






passwords"即使用"普通文本"格式的口令,则必须要编辑注册表来允许使用"普通文本"格式的口令。
在Windows的注册表的以下条目中:



重新启动计算机以用户名/口令登陆。该用户名/口囹将用于与SMB服务器连接时进行用户身份认证所以如果要访问SMB服务器上用户自己的home目录,建议使用与SMB服务器上相同的用户名/口令

通过网絡邻居浏览访问Samba服务器,可以在列表里选择也可以在命令窗口里使用命令:

4 、Samba服务器提供的其他命令

smbstatus指令用于显示当前的SMB服务器的连接状態。例如在IP地址为202.204.3.16的"cuckoo"客户机上,用户john访问SMB服务器的"public"服务时命令输出如下:








此命令可以附加一些开关来显示不同的内容,下表列出了主偠的开关及其含义:


nmblookup命令用于把一个NetBIOS名字映射到IP地址对于上面的例子,可以使用下面的命令查找主机cuckoo:

可以使用合适的选项来允许nmblookup查询一個IP广播域或是一个单独的机器该命令常用的选项参看表1-3。


smbclient是访问SMB服务器资源的客户程序该程序提供的接口与ftp程序类似,访问操作包括從SMB服务器下载文件到本地或从本地上载文件到SMB服务器,还可以在SMB服务器上检索目录信息等


其中,smbserver是SMB服务器的NetBIOS名一般与服务器的主机洺一样,但不是必须的"service"为服务器提供的服务,如文件服务public或打印服务printer
passwd是访问某些服务时需要的口令。如果在命令行输入后面则不会洅提示输入口令。否则将在后面提示输入口令。虽然有些要访问的服务器不需要口令但仍然会有输入口令的提示。如果不希望有口令提示则可以在命令行使用"-N"选项。
如果要使用其他的端口与SMB服务器进行TCP连接可以使用"-p"选项来指定,缺省值为139
"-U"可以指定与SMB服务器连接时使用的用户名。如果没有指定smbclient使用环境变量USER指定的值作用户名。如果没有USER环境变量则用"guest"。
在环境变量USER中可以设置"USER=username%password",这样就不用在命囹行上输入口令同时,使用ps命令看不到命令行参数具有一定的安全性。同样也可以使用"-U

"-L"选项可以列出在一个服务器上提供的服务,唎如:

使用下面的命令可以进入与ftp类似的提示状态:



其中"\\"表示服务器当前的工作目录在该提示符下可以使用的命令可以通过"?"、"help"命令列出。命令不分大小写
在该提示符下除了可以使用很多与ftp类似的命令外,还有命令recurse它可以被设置为on,以便在使用mget或mput命令时能够get或put匹配的子目录recurse缺省为off,即只get或put当前目录中的文件
在该提示符下还可以使用下面的命令:

将服务器上文件名为"filename"的文件和目录(可以使用通配符)經过tar 拷贝到本地的"localfile "文件中。或者:

可以把本地tar 文件localfile 中的文件filename拷贝到服务器上;如果filename省略则拷贝所有的文件。
上面的命令也可以在smbclient命令行仩来执行如:



smbprint是在Linux系统下将打印文件提交给远地SMB服务器打印的脚本程序。程序中调用的命令就是smbclient下面举例说明此命令的使用方法。

9X)提供打印服务。服务名为netpcl(NEC激光打印机)不需要口令。
在Linux系统中配置如下:



3.用下面命令建立记帐文件











lpr缺省使用的打印机名为lp这里使鼡的是smb。
5、使用Samba加密口令
客户机访问Samba服务器时进行的用户身份认证包括使用"普通文本"格式的口令通过网络传送给SMB服务器,与UNIX的帐户数据庫(如/etc/passwd)进行核查;或者使用加密口令通过"SMB
challenge/response"验证进行核查。本文着重介绍加密口令的用法
在Samba服务器中使用了与Windows NT兼容的口令加密算法,洇此可以像Windows NT一样对Samba的客户进行用户口令核实

NT 使用一个包含用户口令hashed值的文件,是通过对用户的"普通文本"的口令经过加密算法得到的称為"hashed口令"。不能从该hashed值返回得到原始的"普通文本"的口令在Samba服务器上可以形成同样的hashed口令,保存在smbpasswd文件中

或NT)使用Samba资源时,它先请求一个連接并商讨连接使用的协议。Samba回答客户请求时产生一个随机值发送给客户,并且还储存在Samba服务器上称为"challenge"。"challenge"对于每一个客户连接是不┅样的

Samba服务器使用自己保存的hashed值的用户口令(保存在smbpasswd文件中)与先前产生的"challenge"进行同样的加密运算,将产生的结果与客户发送过来的结果進行比较如果结果相同,则客户被允许访问;否则禁止用户访问。
对于Samba服务器来说它不存储"普通文本"格式的口令,储存的是从"普通攵本"口令转换的hashed口令并且在网络连接时,"普通文本"和 "hashed口令"都不被传送所以比UNIX安全。因为当客户程序与UNIX服务器连接时(如telnet)口令往往昰以"普通文本"在网络上传送的,可以被网络窃听软件(如tcpdump)截获Samba加密口令文件smbpasswd会被利用成为潜在的漏洞。所以该文件是要由root所有读写權限应该为600。

或NT缺省的用户认证方式是使用加密的口令这?quot;普通文本"不在网络上传送。相应的Samba也要使用加密口令的认证方式。但如果想使用"普通文本"格式的口令可以编辑Windows
NT的注册表来允许。这样Samba服务器就可以使用/etc/psswd文件来验证用户口令,而不需要smbpasswd文件

NT兼容的口令加密算法,则必须在Samba服务器上保存包含与用户名对应的hashed值的口令文件可以使用/usr/bin/mksmbpasswd.sh程序产生加密口令文件的框架,文件名由"smb




root还可以使用smbpsswd 进行添加用戶、取消口令等操作但添加的用户必须在/etc/psswd文件中存在。普通用户使用smbpsswd
命令只能像使用passwd程序一样更改自己的smb口令
三、Samba常见故障排除
Samba的故障排除可以在SMB服务器和SMB客户机上通过各自的命令来完成。
1 SMB服务器上的操作
1).使用下面的命令来查看是否有错误的配置

2). 在服务器上以及愙户机上用ping命令检查tcp/ip是否正常工作。
3). 在SMB服务器上用

命令将得到一个共享协议的列表


refused",则检查Samba服务器进程是否启动;若Samba以守护进程形式運行的话用"netstat -a"命令检查端口是否处于监听状态



不能正确的得到广播地址,可以尝试在smb.conf文件中用interfaces参数人工设置IP地址、广播地址和子网掩码

\' \\\\SMBserver\\homes"命令,需要输入客户在SMB服务器上的用户口令然后会出现类似"smb>"的提示符。这时可以使用 dir命令浏览客户在SMB服务器帐户目录下的文件用help命令鈳以得到其他命令的帮助。如果不能出现类似"smb>"的提示符并且有 "invalid


2、SMB客户机上的操作



-L"命令中同样的错误结果的解决方法。要注意客户机将要鼡客户注册客户机时所用的用户名/口令去与SMB服务器连接所以在SMB服务器上,用户最好有同样的用户名/口令

x;\\\\SMBserver\\homes"命令,可以把SMB服务器上客户home目錄映射到客户机"x:"盘"x:"应该是一个客户机上未用的盘号。这样共享协议的目录可以在客户机上以"x:"盘来看待。正常的信息为"command

如果要停止使用"x:"盤可以使用"net use
x:/delete"命令。如果不能正常的把客户的home目录映射到"x:"盘则要检查SMB服务器上"hosts
allow"等参数的配置。如果客户机上的用户名不能与服务器上的鼡户名匹配尝试使用"username map"选项。
3). 如果在SMB服务器上没有使用"encrypted passwords"则在客户机上要在注册表中允许使?quot;普通文本"格式的口令。

Samba是SMB的一种实现方法主要用来实现Linux系统的文件和打印服务。Linux用户通过配置使用Samba服务器可以实现与Windows用户的资源共享协议
守护进程smbd和nmbd是Samba的核心,在全部时间内运荇nmbd
程序使得通过企图计算机可以浏览Linux服务器。Smbd守护进程在SMB软件包到达网上时对它们进行处理并且为使用或共享协议它的资源与Linux进行协調。
在安装完Samba后还需要定制它的配置文件smb.conf,才能使Samba正常工作以符合要求smb.conf文件的的语法结构与Windows 的*.ini文件十分类似;文件结构主要包括三部汾:全局参数部分、目录共享协议部分、打印共享协议部分;本文着重介绍了如何配置各选项以完成特定的功能。
通过使用不同的参数鈳以实现对Samba的不同访问控制:通过主机地址限制访问、通过用户口令限制访问、通过用户名限制访问、通过验证读写权限限制访问、通过昰否在浏览器列表里显示来控制等。所有这些方法大大的增强了Samba服务器的安全性。
}

我要回帖

更多关于 共享协议 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信