Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2279862
  • 博文数量: 668
  • 博客积分: 10016
  • 博客等级: 上将
  • 技术积分: 8588
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-29 19:22
文章分类

全部博文(668)

文章存档

2011年(1)

2010年(2)

2009年(273)

2008年(392)

分类:

2008-08-13 11:53:22

本文介绍了如何利用SAMBA实现SolarisWindows之间的文件共享
       
一、概述
        Samba
提供了Unix系统和Windows之间的文件和打印机共享服务。一台Solaris的机器,如果配置了Samba Server,就能充当共享服务器;同时也能作为客户机访问网络中其它Windows系统上的共享文件,或其它安装了Samba ServerSolaris/Linux系统上的共享文件。

        OpenSolaris在系统安装的时候就已经包含了Samba,只需要简单的配置就可以成为Samba Server

        二、配置Solaris Samba服务器

        Samba 服务器包含两个Daemonnmbdsmbdsmbd samba的内核,是建立对话,验证客户和提供文件系统和打印服务的基础; nmbd则处理所有的名字注册和解析请求,实现了网络浏览的功能;它的任务是向局域网广播Samba服务器所提供的服务;Nmbd使得Samba服务器显 示在windows操作系统的网络邻居中,允许用户浏览可以通过samba使用的资源。

        缺省OpenSolaris并没有使能Samba服务。

        # svcs -v | grep samba
        # ps -eaf | grep mbd

        Samba的共享方式包括shareuserserverdomain ads。本文主要主要介绍shareuser的共享方式。

        2.1 配置share方式

        采用share方式,用户不需要输入帐号和密码就可以登陆samba服务器。其配置步骤为:

        1) 创建一个Samba共享目录

        # mkdir -p /export/home/smbshare

        2) 创建Samba配置文件

        # cp /etc/sfw/smb.conf-example /usr/sfw/smb.conf

        3) 编辑配置文件smb.conf

        ===== ===== /usr/sfw/smb.conf ==========
        security = share
        [homes]
        comment = Home Directories
        browseable = yes
        writable = yes
        path = /export/home/smbshare
        guest ok = yes
        guest account = user1

        里用户是通过默认的user1来登陆的。用户登陆之后,可以看到user1 所共享的文件和所有系统共享文件,其他用户共享的文件能够看得到,但是不一定能够使用或者进的去。如果不设置guest account的话,则用户就以默认的nobody进行登陆,只能够使用系统设置的共享文件。其他用户设置的文件不一定能够使用。

        4) 启动Samba服务

        # svcadm enable samba
        # svcs | grep samba
        online1:19:02svc:/network/samba:default
        # ps -eaf | grep mbd
        root 24453 1 0 01:19:02 ? 0:00 /usr/sfw/bin/smbd -D
        root 24450 1 0 01:19:02 ? 0:00 /usr/sfw/bin/nmbd -D
        root 24454 24453 0 01:19:02 ? 0:00 /usr/sfw/bin/smbd -D

        2.2 配置user方式

        配置成user方式需要提供用户名和密码进行验证。这里Samba用户必须是 Solaris系统用户。而对同一个用户来说,samba密码和系统密码不必一定相同。

        1) 添加一个系统用户(用已经存在的也可以)

        # useradd -d /export/home/andy -m -s /usr/bin/bash andy

        2) smbpasswd添加Samba用户

        # /usr/sfw/bin/smbpasswd -a andy
        New SMB password:

        Retype new SMB password:

        Added user andy.
        # /usr/sfw/bin/smbpasswd -e andy
        Enabled user andy

        3) 编辑配置文件smb.conf

        ===== ===== /usr/sfw/smb.conf ==========
        security = user
        [homes]
        comment = Home Directories for %S
        valid users = %S#
只有所有者能访问该共享
        browseable = no#
该共享对其它用户不可见
        writable = yes
        create mask = 0640#
创建文件时的权限掩码
        directory mask = 0750#
创建目录时的权限掩码

        这里%S通配符可以扩展成实际的共享名。这样andy共享的注释将是 “Home Directories for andy”

        4) 重新启动Samba服务

        # svcadm restart samba

        从其它系统上用samba访问该Solaris机器时,如果输入的用户名是 andy,密码是Samba密码,就能看到/export/home/andy 下的内容。

三、Solaris访问 Windows的共享资源

        Samba 包中已经包括了smbclientsmbmount等的实用程序。smbclient程序提供了一个类似FTP 的模式界面,允许用户共享WindowsLinux的资源,还可以用户列出服务器上的可用共享资源。smbmount类似mount命令,将 Windows的共享目录安装到Linux的本地目录。

        1) 查询网络上的Samba服务器

        # /usr/sfw/bin/findsmb
       
每个找到的服务器都会显示其 IP 地址、NetBIOS 名称、工作组名称、操作系统、以及 SMB 服务器版本。

        2) 列出Samba服务器上的可用资源

        # /usr/sfw/bin/smbclient -L

        如果是 user共享方式,就要加“-U ”选项如下。
        # /usr/sfw/bin/smbclient -L -U
        Password:

        如果是 share共享方式,可以不必理会用户和密码,要求输入密码时直接回车即可。

        3) 连接Samba共享

        # /usr/sfw/bin/smbclient // [-U ]

        例如要访问上文中的share共享时,可用
        # /usr/sfw/bin/smbclient //hostname/homes
        Password:

        Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.21b]
        smb:>

        要访问上文中的user共享时,可用
        # /usr/sfw/bin/smbclient //hostname/andy -U andy
        Password:

        Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.21b]
        smb:>

        连接后,就能象FTP用户一样上传和下载文件。用put表示上传,用get表示下载。键入help获得可用的命令列表。

        4) 挂载Samba共享

        Solaris 尚不支持smbfssmbmount命令。解决方法之一就是使用Sharity。其安装和使用都很简单。

        安装 Sharity

        # /usr/sfw/bin/wget http://www.obdev.at/ftp/pub/Products/Sharity3/sharity.3.3-beta3.solaris-i86pc.tar.gz
        # gunzip -c sharity.3.3-beta3.solaris-i86pc.tar.gz | tar xf -
        # cd sharity.3.3-beta3.solaris-i86pc
        # ./setup

        启动和停止Sharity

        重启机器后,Sharity会自动运行
        # svcs | grep sharity
        legacy_run 0:38:06 lrc:/etc/rc2_d/S80sharity3
        legacy_run 0:38:14 lrc:/etc/rc3_d/S80sharity3

        停止 Sharity

        # /usr/local/sharity3/sbin/sharity.init stop

        启动 Sharity

        # /usr/local/sharity3/sbin/sharity.init start

        访问 share共享

        # /usr/local/sharity3/bin/sharity login smb:///
        Share password for \HOSTNAMESHARE:
        # ls /CIFS/entire_network///
        # cd /CIFS/[]

        访问 user共享

        # /usr/local/sharity3/bin/sharity login smb:/// -U
        's password on :
        # ls /CIFS/entire_network///

        附录一、Samba OpenSolaris中的目录

        /usr/sfw/sbin/smbd
        /usr/sfw/sbin/nmbd

        Samba 服务器的两个daemon

        /usr/sfw/bin/smb(*)

        Samba 的常用工具

        /etc/sfw/smb.conf-example

        系统初始自带的Samba配置文件示例

        /etc/sfw/smf.conf

        Samba 配置文件。系统缺省没有这个文件,需要从 /etc/sfw/smb.conf-example拷贝或手工生成

        /var/samba/log

        默认存放 Samba日志的目录

阅读(876) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~