Samba基本概念
Samba就是一组程序,可以使用Windows作为访问远程资源的客户本地支持,来访问非Windows服务器上的文件和打印机。可以在Samba的Web主页http://Samba.org上找到完整的镜像站点列表。
Samba的核心是两个守护进程smbd和nmbd,服务器启动到停止期间持续运行。smbd监听139 TCP端口;nmbd监听137和138 UDP端口。smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。smb.conf向smbd和nmbd两个守护进程说明输出什么、共享输出给谁及如何进行输出以便共享。smbd进程的作用是处理到来的SMB数据包,为使用该数据包的资源与Unix 进行协商,nmbd进程使其他主机(或工作站)能浏览Unix服务器。
在此环境中,运行Samba服务器的Solaris 10系统为所有的Windows 客户提供文件服务器和打印服务器的功能。当Samba服务器在Unix计算机上运行以后,Unix 计算机在Windows 上的网上邻居中看起来如同一台Windows计算机。另外,Samba还可以被配置成为WINS名字服务器、Windows NT/2000/2003的域控制器等。Samba可以取代Windows“网络邻居”的文件及打印机共享功能,Samba也可以xx取代NT PDC(Primary Domain Controler)成为NT网域主控者管理NT网域;若是在同一台Server架设Samba及Apache,则在办公室或校园环境内,使用者可用自己的账号及密码从Windows登入网域,再由“网络上的芳邻”进入使用者个人账号下放置网页的目录,进行编辑个人网页(传统的方式是先在个人计算机上编辑网页,再使用FTP上传)。
GAdmin-SAMBA 0.2.8
GAdmin-SAMBA
GAdmin-ProFTPD是一个基于GTK的可视化SAMBA的管理工具。
主页:
下载:
Solaris下配置Samba
Solaris版本:Sun OS 5.11 snv_50 64bit
配置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的共享方式包括share、user、server、domain 和ads。本文主要主要介绍share和user的共享方式。
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 -D
2 配置user方式
配置成user方式需要提供用户名和密码进行验证。这里Samba用户必须是 Solaris系统用户。而对同一个用户来说,samba密码和系统密码不必一定相同。
1) 添加一个系统用户(用已经存在的也可以)
# useradd -d /export/home/jerry -m -s /usr/bin/bash jerry
2) 用smbpasswd添加Samba用户
# /usr/sfw/bin/smbpasswd -a jerry
New SMB password:
Retype new SMB password:
Added user jerry.
# /usr/sfw/bin/smbpasswd -e jerry
Enabled user jerry
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通配符可以扩展成实际的共享名。这样jerry共享的注释将是 “Home Directories for jerry”。
4) 重新启动Samba服务
# svcadm restart samba
从其它系统上用samba访问该Solaris机器时,如果输入的用户名是 jerry,密码是Samba密码,就能看到/export/home/jerry 下的内容。
Solaris访问Windows的共享资源
Samba包中已经包括了smbclient、 smbmount等的实用程序。smbclient程序提供了一个类似FTP 的模式界面,允许用户共享Windows、Linux的资源,还可以用户列出服务器上的可用共享资源。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/jerry -U jerry
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.21b]
smb:>
连接后,就能象FTP用户一样上传和下载文件。用put表示上传,用get表示下载。键入help获得可用的命令列表。
4) 挂载Samba共享
Solaris 尚不支持smbfs和smbmount命令。解决方法之一就是使用Sharity。其安装和使用都很简单。
安装 Sharity
# /usr/sfw/bin/wget http://www.obdev.at/ftp/pub/Prod … olaris-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日志的目录
———————–
solaris 10下快速部署samba服务
samba服务是linux与windows共享文件的一种方式,从某种意义上讲,samba服务属于文件服务器的一种。下面,我们就来部署这个服务器。
1、下载samba软件包.网站地址是 www.samba.org,我下载的版本是samba-3.0.22.tar.gz.
2、解包解压。 # gzip -d samba-3.0.22.tar.gz;tar xvf samba-3.0.22.tar
3、切换目录。 # cd samba-3.0.33/source
4、配置。 # ./c –prefix=/opt/samba
5、编译及安装。 # make ;make install
6、拷贝samba配置文件。# cd ..;cd examples;cp smb.conf.default /opt/samba/lib/smb.conf。注意源文件的位置,同时也要清楚配置文件的位置,如果没有这样做,samba服务将不能正确启动。如果要使用samba的更多高级功能,需要自己修改配置文件smb.conf
7、添加系统用户。 # useradd -m -d /export/home/sery -s /usr/bin/bash sery 此处添加了一个用户sery.
8、添加samba用户。 /opt/samba/bin/smbpasswd -a sery .输入两次密码。注意:此处的用户必须是系统存在的用户。
9、验证配置。 # /opt/samba/bin/testparm,只有没有抱错信息时,才可以正常启动samba服务。
10、启动samba服务。samba有两个服务:smbd和nmbd。执行命令 # /opt/samba/sbin/smbd& ;/opt/samba/sbin/nmbd&.
11、windwos客户端连接。网上邻居右键“搜索计算机”,输入samba服务器的ip地址,然后鼠标点击搜索出来的电脑图标,在输入用户名和密码即可访问samba服务器。
References
Solaris10上的Samba配置
Samba:提供Unix和Windows之间的文件和打印机共享服务
Solairs10? Jan/2006之后的都已经默认安装了Samba3.0
Samba 服务器包含两个Daemon,smbd和nmbd。
smbd是samba的内核,是建立对话,验证客户和提供文件系统和打印服务的基础;
nmbd则处理所有的名字注册和解析请求,实现了网络浏览的功能;它的任务是向局域网广播Samba服务器所提供的服务;
nmbd使Samba服务器显示在windows操作系统的网络邻居中,允许用户浏览可以通过samba使用的资源。
1、相关的文件
配置文件
/etc/sfw/smb.conf-example??? Samba配置文件示例,系统自带,是smb.conf的示例文件
/etc/sfw/smf.conf??????????? Samba配置文件,系统自己没有这个文件,需要手工建立
可执行文件
[root@Zianed-Solaris /]$ls -l /usr/sfw/bin/smb*
-r-xr-xr-x?? 1 root???? bin????? 1998376 2007?? 6月 23 /usr/sfw/bin/smbcacls
-r-xr-xr-x?? 1 root???? bin????? 1222324 2007?? 6月 23 /usr/sfw/bin/smbclient
-r-xr-xr-x?? 1 root???? bin?????? 661320 2007?? 6月 23 /usr/sfw/bin/smbcontrol
-r-xr-xr-x?? 1 root???? bin????? 1900224 2007?? 6月 23 /usr/sfw/bin/smbcquotas
-r-xr-xr-x?? 1 root???? bin????? 1966300 2007?? 6月 23 /usr/sfw/bin/smbget
-r-xr-xr-x?? 1 root???? bin????? 1898996 2007?? 6月 23 /usr/sfw/bin/smbpasswd
-r-xr-xr-x?? 1 root???? bin?????? 812848 2007?? 6月 23 /usr/sfw/bin/smbspool
-r-xr-xr-x?? 1 root???? bin? ?????647452 2007?? 6月 23 /usr/sfw/bin/smbstatus
-r-xr-xr-x?? 1 root???? bin???????? 4896 2007?? 6月 20 /usr/sfw/bin/smbtar
-r-xr-xr-x?? 1 root???? bin????? 1137736 2007?? 6月 23 /usr/sfw/bin/smbtree
[root@Zianed-Solaris /]$
执行日志文件
/var/samba/log??????????? 默认samba日志目录
samba服务启动文件
/etc/init.d/samba?????????? samba管理命令,Solaris10已改为更简便的SVC服务管理方式
[root@Zianed-Solaris /]$ls -l /etc/init.d/samba
/etc/init.d/samba: 无此文件或目录
#svcs -l samba
#svcadm enable samba
2、修改配置文件
[root@Zianed-Solaris /]$ls -l /etc/sfw
总数 88
-r–r–r–?? 1 root???? bin???????? 2561 2005?? 1月? 8 a2ps-site.cfg
-r–r–r–?? 1 root???? bin??????? 15250 2005?? 1月? 8 a2ps.cfg
drwxr-xr-x?? 2 root???? bin????????? 512? 2月? 2日 16:07 foomatic
drwxr-xr-x?? 2 root???? bin????????? 512? 2月? 2日 15:59 mysql
drwxr-xr-x?? 4 root???? sys????????? 512? 2月? 2日 16:02 openssl
dr-x——?? 2 root???? bin????????? 512? 2月? 2日 15:12 private
drwxr-xr-x?? 2 root???? bin????????? 512? 2月? 2日 16:10 ser
-r–r–r–?? 1 root???? bin???????? 9663 2007?? 6月 20 smb.conf-example
drwxr-xr-x?? 2 root???? bin????????? 512? 2月? 2日 15:52 zebra
[root@Zianed-Solaris /]$
[root@Zianed-Solaris /]$cp /etc/sfw/smb.conf-example /etc/sfw/smb.conf
[root@Zianed-Solaris /]$svcs -l samba
fmri???????? svc:/network/samba:default
名称???????? SMB file server
启用???????? 真
状态???????? maintenance
next_state?? none
state_time?? 2010年02月04日 星期四 14时30分45秒
logfile????? /var/svc/log/network-samba:default.log
重启程序???? svc:/system/svc/restarter:default
contract_id
dependency?? require_any/none svc:/network/loopback (online)
dependency?? require_all/none svc:/network/service (online)
dependency?? require_all/none svc:/network/physical (online)
dependency?? require_all/none svc:/system/filesystem/local (online)
[root@Zianed-Solaris /]$
———-Samba实战设置
1、启用全局共享方式
2、启用用户登录认证方式
[root@Zianed-Solaris /]$/usr/sfw/bin/smbpasswd -a zianed
New SMB password:
Retype new SMB password:
Added user zianed.
[root@Zianed-Solaris /]$/usr/sfw/bin/smbpasswd -e zianed
Enabled user zianed.
[root@Zianed-Solaris /]$/usr/sfw/bin/smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
[root@Zianed-Solaris /]$/usr/sfw/bin/smbpasswd -e root
Enabled user root.
[root@Zianed-Solaris /]$svcadm restart samba
[root@Zianed-Solaris /]$svcs -a |grep samba
online ????????17:46:20 svc:/network/samba:default
[root@Zianed-Solaris /]$ps -ef |grep mbd
root?? 758???? 1?? 0 17:46:21 ??????????? 0:00 /usr/sfw/sbin/smbd -D
root?? 759?? 758?? 0 17:46:21 ??????????? 0:00 /usr/sfw/sbin/smbd -D
Zianed上的操作
C:\Documents and Settings\Zianed>net share
共享名?? 资源??????????????????????? 注释
——————————————————————————-
print$?????? C:\WINDOWS\system32\spool\drivers 打印机驱动程序
IPC$???????????????????????????????????????? ??????????? 远程 IPC
test???????? ?????? D:\test
工作相关???? ???? E:\工作相关
ZianedAdobePDF? My Documents\*.pdf??? ?????????? ????? 后台处理 Adobe PDF
命令成功完成。
C:\Documents and Settings\Zianed>
C:\Documents and Settings\Zianed>net view 192.112.122.45
在 192.112.122.45 的共享资源
Samba-Zianed
共享名? 类型? 使用为? 注释
——————————————————————————-
root??? Disk????????? Home Directories for IPC_
命令成功完成。
C:\Documents and Settings\Zianed>
Zianed-Solaris上的操作
[root@Zianed-Solaris /]$/usr/sfw/bin/smbclient //192.112.119.27/test -U Zianed
Password:
Domain=[ZIANED] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \>
smb: \> pwd
Current directory is \\192.112.119.27\test\
smb: \>
———-Samba实战设置
按照手册进行配置
[root@Zianed-Solaris /]$groupadd office
[root@Zianed-Solaris /]$useradd -m -d /export/home/abmas? abmas
64 块
[root@Zianed-Solaris /]$passwd abmas
新口令:
请重新输入新口令:
passwd:abmas 的口令已成功更改
[root@Zianed-Solaris /]$
[root@Zianed-Solaris /]$chmod -R ug+rwxs /data
[root@Zianed-Solaris /]$chmod -R o-w /data
[root@Zianed-Solaris /]$chmod -R o+rx /data
[root@Zianed-Solaris /]$
[root@Zianed-Solaris /]$ls -ld /data
drwsrwsr-x?? 2 abmas??? office?????? 512? 2月? 4日 16:04 /data
[root@Zianed-Solaris /]$
[root@Zianed-Solaris /]$/usr/sfw/bin/testparm
Load smb config files from /etc/sfw/smb.conf
Processing section “[homes]”
Processing section “[printers]”
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = MYGROUP
server string = Samba Server
log file = /var/samba/log/log.%m
max log size = 50
dns proxy = No
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
[root@Zianed-Solaris /]$
出现的错误
[root@Zianed-Solaris /]$/usr/sfw/bin/smbclient -L localhost
Error connecting to 127.0.0.1 (不允许联接)
Connection to localhost failed
[root@Zianed-Solaris /]$
[root@Zianed-Solaris /]$/usr/sfw/bin/smbstatus -b
sessionid.tdb not initialised
/var/samba/locks/connections.tdb not initialised
This is normal if an SMB client has never connected to your server.
Failed to open byte range locking database /var/samba/locks/brlock.tdb
ERROR: Failed to initialise locking database
Can’t initialise locking module – exiting
[root@Zianed-Solaris /]$
正确的配置结果
[root@Zianed-Solaris /]$/usr/sfw/bin/smbclient -L localhost
Password:
Domain=[ZIANED-SOLARIS] OS=[Unix] Server=[Samba 3.0.25a]
Sharename???? ??Type????? Comment
———?????? —-????? ——-
IPC$??????????? IPC?????? IPC Service (Samba-Zianed)
root??????????? Disk????? Home Directories for IPC_
Domain=[ZIANED-SOLARIS] OS=[Unix] Server=[Samba 3.0.25a]
Server? ?????????????Comment
———??????????? ——-
Workgroup??????????? Master
———??????????? ——-
[root@Zianed-Solaris /]$
[root@Zianed-Solaris /]$su – zianed
Sun Microsystems Inc.?? SunOS 5.10????? Generic January 2005
$ /usr/sfw/bin/smbclient -L localhost
Password:
Domain=[ZIANED-SOLARIS] OS=[Unix] Server=[Samba 3.0.25a]
Sharename?????? Type????? Comment
———?????? —-????? ——-
IPC$??????????? IPC?????? IPC Service (Samba-Zianed)
zianed????????? Disk????? Home Directories for IPC_
Domain=[ZIANED-SOLARIS] OS=[Unix] Server=[Samba 3.0.25a]
Server?????????????? Comment
———??????????? ——-
Workgroup??????????? Master
———??????????? ——-
$
References