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