SAMBA实现Solaris和Windows之间的文件共享

一、概述
Samba提供了Unix系统和Windows之间的文件和打印机共享服务 。一台Solaris的机器 , 如果配置了Samba Server , 就能充当共享服务器;同时也能作为客户机访问网络中其它Windows系统上的共享文件 , 或其它安装了Samba Server的Solaris/Linux系统上的共享文件 。
OpenSolaris在系统安装的时候就已经包含了Samba , 只需要简单的配置就可以成为Samba Server 。
二、配置Solaris的 Samba服务器
Samba服务器包含两个Daemon , nmbd和smbd 。smbd是 samba的内核 , 是建立对话 , 验证客户和提供文件系统和打印服务的基础; nmbd则处理所有的名字注册和解析请求 , 实现了网络浏览的功能;它的任务是向局域网广播Samba服务器所提供的服务;Nmbd使得Samba服务器显示在windows操作系统的网络邻居中 , 允许用户浏览可以通过samba使用的资源 。
缺省OpenSolaris并没有使能Samba服务 。
# svcs -v | grep samba
# ps -eaf | grep mbd【SAMBA实现Solaris和Windows之间的文件共享】Samba的共享方式包括share、user、server、domain 和ads 。本文主要主要介绍share和user的共享方式 。
2.1 配置share方式
采用share方式 , 用户不需要输入帐号和密码就可以登陆samba服务器 。其配置步骤为:
1) 创建一个Samba共享目录
# mkdir -p /export/home/smbshare
2) 创建Samba配置文件
# cp /etc/sfw/smb.conf-example /etc/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 -D2.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 andy3) 编辑配置文件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包中已经包括了smbclIEnt、smbmount等的实用程序 。smbclient程序提供了一个类似FTP 的模式界面 , 允许用户共享Windows、Linux的资源 , 还可以用户列出服务器上的可用共享资源 。smbmount类似mount命令 , 将 Windows的共享目录安装到Linux的本地目录 。

推荐阅读