配置Solaris的Samba服务器

网络整理 - 06-30

  本文介绍了如何利用SAMBA实现Solaris和Windows之间的文件共享

  一概述

  Samba 提供了Unix系统和Windows之间的文件和打印机共享服务一台Solaris的机器如果配置了Samba Server就能充当共享服务器同时也能作为客户机访问网络中其它Windows系统上的共享文件或其它安装了Samba Server的Solaris/Linux系统上的共享文件

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

  二配置Solaris的 Samba服务器

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

  缺省OpenSolaris并没有使能Samba服务

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

  Samba的共享方式包括shareuserserverdomain 和ads本文主要主要介绍share和user的共享方式

   配置share方式

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

  ) 创建一个Samba共享目录

  # mkdir p /export/home/smbshare

  ) 创建Samba配置文件

  # cp /etc/sfw/nfexample /etc/sfw/nf

  ) 编辑配置文件nf

  ===== ===== /usr/sfw/nf ==========
        security = share
        [homes]
        comment = Home Directories
        browseable = yes
        writable = yes
        path = /export/home/smbshare
        guest ok = yes
        guest account = user

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

  ) 启动Samba服务

  # svcadm enable samba
        # svcs | grep samba
        online::svc:/network/samba:default
        # ps eaf | grep mbd
        root :: ? : /usr/sfw/bin/smbd D
        root :: ? : /usr/sfw/bin/nmbd D
        root :: ? : /usr/sfw/bin/smbd D

   配置user方式

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

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

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

  ) 用smbpasswd添加Samba用户

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

  Retype new SMB password: <password>

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

  ) 编辑配置文件nf

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

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

  ) 重新启动Samba服务

  # svcadm restart samba

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

  三Solaris访问 Windows的共享资源

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

  ) 查询网络上的Samba服务器

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

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

  # /usr/sfw/bin/smbclient L <hostname>

  如果是 user共享方式就要加U <user>选项如下
        # /usr/sfw/bin/smbclient L <hostname> U <user>
        Password: <password>

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

  ) 连接Samba共享

  # /usr/sfw/bin/smbclient //<hostname/<share> [U <username>]

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

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

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

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

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

  ) 挂载Samba共享

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

  安装 Sharity

  # /usr/sfw/bin/wget betasolarisipctargz
        # gunzip c sharitybetasolarisipctargz | tar xf
        # cd sharitybetasolarisipc
        # /setup

  启动和停止Sharity

  重启机器后Sharity会自动运行
        # svcs | grep sharity
        legacy_run :: lrc:/etc/rc_d/Ssharity
        legacy_run :: lrc:/etc/rc_d/Ssharity

  停止 Sharity

  # /usr/local/sharity/sbin/sharityinit stop

  启动 Sharity

  # /usr/local/sharity/sbin/sharityinit start

  访问 share共享

  # /usr/local/sharity/bin/sharity login smb://<hostname>/<share>
        Share password for \HOSTNAMESHARE: <ENTER>
        # ls /CIFS/entire_network/<workgroup>/<hostname>/<share>
        # cd /CIFS/<share>[<hostname>]

  访问 user共享

  # /usr/local/sharity/bin/sharity login smb://<hostname>/<share> U <user>
        <user>s password on <hostname>: <password>
        # ls /CIFS/entire_network/<workgroup>/<hostname>/<share>

  附录一Samba在 OpenSolaris中的目录

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

  Samba 服务器的两个daemon

  /usr/sfw/bin/smb(*)

  Samba 的常用工具

  /etc/sfw/nfexample

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

  /etc/sfw/nf

  Samba 配置文件系统缺省没有这个文件需要从 /etc/sfw/nfexample拷贝或手工生成

  /var/samba/log

  默认存放 Samba日志的目录