您的位置: 网站首页 > 千军万马 > Linux操作系统 > 第9章 Samba服务器配置 > 【9.5 Samba相关命令和程序】

9.5 Samba相关命令和程序

 

9.5  Samba相关命令和程序

文本界面的用户可以通过命令行程序进行Samba服务操作文件。本节将对其内容进行简单的介绍。与Samba服务相关的其他程序也将在本节进行介绍。

9.5.1  Samba相关命令

Samba服务相关的命令为smbclientsmbmountsmbumount

1smbclient命令

smbclient命令用来存取远程Samba服务器上的资源,它的界面到目前为止还是文本方式的。smbclient命令的语法是:

smbclient <servicename> [password] [options]

其中servicename是要连接的资源名称,资源名称的形式如下:

//server/service

其中server是远程服务器的Net BIOS名字,对于Windows服务器来说,就是它们出现在网络邻居中的名字。service是各server所提供的资源的名字,同样是出现在“网络邻居”中的名字。password是存取该资源所需的口令。

如果既没有给出password参数,也没有使用-N选项。smbclient会提示用户输入口令;如果目标资源并不需要口令,用户可直接按Enter键跳过。

-N选项禁止smbclient提示用户输入口令,当连接不需要口令的资源时可以使用该选项。

使用-L选项将列出远程服务器提供的所有资源。如果不知道服务器的Net BIOS名,可以使用-I选项来指定它的IP地址,如:

smbclient //unknown/service -I 192.168.1.2

使用了-I选项之后,servicename中的Net BIOS名部分将被忽略。

smbclient命令运行之后,会出现如下提示符(和DOS提示符比较相像):

smb:\>

用户在该提示符下输入各种命令。其命令和FTP相似,如cdlcdgetmgetputmput等,其他比较常用的命令如下所示。

·    ?[comand]显示有关command的帮助信息,若无command参数,则列出所有可能的命令。

·    ![shell command]在本地执行shell命令,如果没有给出shell command,则在本地运行一个shell。用户可以在该shell中执行各种命令,用exit回到smbclient

·    lowercase关闭或者打开文件名小写转换。如果打开,smbclient会自动将getmget命令取回的文件以相应的小写文件名命名。

·    print <filename>在远程服务器上打印文件filename

·    queue显示打印队列。

·    quit或者exit退出smbclient

smbclientmgetmput命令可以使用通配符“*”和“?”,它们还可以工作在递归模式下。当工作在递归模式时,它们将处理当前目录以及所有由mask命令指定的子目录。用recurse命令打开或关闭递归模式。

mask命令指定一个含通配符的模式,当mgetmput工作在递归模式时,它们将只处理能匹配该模式的目录;如果不工作在递归模式,则忽略该模式。mask命令的使用方法是:

mask <expr>

expr是含通配符的模式。smbclient 还可以发送WinPopup 消息,方法是:

smbclient -M NetBIOS_name

NetBIOS_name是目标计算机的NetBIOS名。连接建立后,键入要发送的消息,按Ctrl+D组合键结束。

smbclient的工作模式:当我们要处理绝大多数的文件(如执行一个在远端的文件)时必须先下载到本地系统上,然后才能执行相应的操作。

这种操作方法自有它的好处,如比较节省网络资源,但也会造成文件的重复存取。smbclient命令则可以直接利用远端的文件资源而不用先下载。

可用的smbclient参数如下所示。

·    sharename完整的共享名路径。如\\server\share

·    -U username登录的用户名。

·    password登录用口令。

·    -L列出所有已知的服务器和共享资源。

连接到Windows 2003服务器comet 以访问共享目录dir1,登录的用户名与口令之间用%分开:

smbclient \\\\comet\\dir1 -U gugong%password

smbclient -L comet

参数-L查询服务器comet中的可用共享资源。它还会查询系统(comet)的浏览器,以发现该服务器(comet)已经在网上发现的其他共享资源。

2smbmount命令

要使用smbclient安装Samba文件系统,Fedora 6内核必须包含smbfs的支持模块。除非你自己重新编译了新内核才需要加以注意。smbmount命令的语法是:

smbmunt <servicename> <mount-point>

其中servicename是资源名,mount-point是安装点。smbmount常用的选项有如下几个。

·    -Csmbmount默认将口令转换成大写,使用-C选项禁止这种转换。

·    -N当连接不需要口令的资源时应该使用本选项。

·    -P password指定口令。如果没有指定-N-P选项,smbmount会提示用户输入口令。

·    -s server-namesmbmount的行为和smbclient不同,它使用服务器的Internet主机名(即hostname命令给出的主机名)来获得其IP地址,而不是使用服务器的NetBIOS名。如果服务器使用不同的NetBIOSInternet名,则应该用-s选项指定其NetBIOS名,而在servicename中使用Internet主机名。

·    -c command-string执行指定的相对独立的命令。

·    -i hostname/IP本选项恰好和-s选项相反,它允许在servicename 中使用服务器的NetBIOS名,而在-i之后指定服务器的Internet主机名或IP地址。-i-s的效果是一样的,smbmount总是利用Internet主机名查找主机。然后用服务器的NetBIOS名登录(有些服务器要求客户机给出自己的NetBIOS名)。

·    -U username如果用户在服务器上的账号和本地机上的不同,则应该使用该选项指定在服务器上的账号。

如果要装载一个SMB的文件系统,建议使用“-c”选项来使smbmount执行mount命令。例如:

smbmount "\\\\server\\tmp" -c 'mount /mnt -u 123 -g 456'

这样就可以把名字叫做server的计算机的共享资源tmp的内容装载到本地的/mnt 目录下,并给这个目录以及其下所有的文件分配一个本地的uidUserID123gidGroup ID456。这样正确执行了之后(指用户输入了正确的路径和密码),读者就可以在/mnt目录下看到本来是远端计算机上的内容,并且可以与操作本地的文件一样进行各种被允许的操作,这样非常节省本地的系统资源。

卸载一个已经装载的SMB文件系统用smbumount命令。smbumount 令的格式非常简单,只要指定要卸载的装载点就可以了。常用的smbmount参数如下所述。

·    sharename//server/share格式输入的共享名。

·    mount point希望附着共享文件的目录。

·    -I server包含共享资源的服务器。

·    -U username登录时使用的用户名(-n类似,但比-n更管用!)

·    -P password登录时使用的口令。

·    -N没有口令的登录名,不用提示输入口令。

·    -h列出可用开关的简单帮助信息。

想用登录名“gugong”和口令“111111”来安装共享文件“\\comet\dir1”到目录“/mnt/comet”:

smbmount \\\\comet\\dir1 /mnt/comet -I comet -U gugong -P 111111

3smbumount

要卸掉上一例子中创建的共享安装,可以输入:

smbumount /mnt/comet

9.5.2  Samba相关程序

除了客户服务功能,Samba还允许Fedora 6系统发布文件和打印共享。Samba有两个服务器程序为:nmbd/usr/sbin/nmbd)和smbd/usr/sbin/smbd)。

1nmbd

nmbd实用工具控制系统的NetBIOS通信。它作为后台程序运行,并且负责监听用于名字服务请求的NetBIOS端口。当接收了名字服务请求时,nmbd用系统的IP地址作出回答。负责保持浏览器能通报在一个已知的工作组中哪个成员在编写NetBIOS名字目录。可用的nmbd参数有如下几个。

·    -D告诉nmbd作为后台进程运行。

·    -H  lmhost_file路径和NetBIOS主机名字文件的路径名字。

·    -d number告诉nmbd运行于由number指定的调试级,05有效。

·    -l log_file_base指定日志文件的名称。

·    -n NetBIOS_name在主机名不宜用的条件下,指定该系统的NetBIOS名字。

·    -p port_number改变默认的监听端口号。

·    -s config_filesmb.conf没有在/etc目录下,则指定其位置。

2smbd

smbd实用工具是负责所有文件和打印共享服务的后台进程。一旦客户通过nmbd寻址到一个Samba服务器,就由smbd负责客户的文件和打印请求。可用的smbd参数有如下几个。

·    -D告诉smbd作为后台进程运行。

·    -O socket_option调节通信参数。

·    -a重写日志文件,默认是添加。

·    -d number告诉smbd运行于由number指定的调试级。05有效。

·    -l log_file_base指定日志文件的名称。

·    -p port_number改变默认的监听端口号。

·    -s config_filesmb.conf没有在/etc目录下,则指定其位置。