茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671899 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00218.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]Samba使用和管理詳細指南

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Samba使用和管理詳細指南_part-1
Samba使用和管理详细指南

  Windows 最令人感到方便的特色莫过于『网上邻居』的档案分享功能,有了这项功能后,使得局域网络里资料的传递与分享得以落实。以往在 Linux 的世界里其实也有 NFS 可以在 Unix Like 的操作系统下做档案分享,但是与 Windows 作业环境的整合还是缺乏沟通的桥梁。
  Samba Server 建立了 Linux 与 Windows 环境的沟通管道,也可以做为Print Server提供Windows 远程联机打印;若是使用 Samba Server 搭配 Apache Web Server,可在 Windows 环境下藉由『网上邻居』登入 Linux 主机里使用者的个人帐号放置网页目录(当然是在局域网络内才行),有了这项功能,编辑个人网页就如同在本机操作一般方便。除此之外,Samba Server 也可以完全取代 NT/2000 PDC(Primary Domain Controler)成为 NT/2000 网域主控者管理 NT/2000 网域机群,当然,Samba 也可以将目录、档案分享给其它 Unix Like、Mac、OS/2 的机器使用,应用层面可以说是相当广阔,更令人惊讶的是 Samba Server 也可做为WINS Server,若配合 DHCP Server 更可以管理大型 NT/2000 网域,想想!这个集合众多优点的服务器,是不是会对不同机种的操作系统工作环境在整合上有着极大的助益呢?

  Samba 可以定位为一套功能极为强大的档案服务器软件,所谓档案服务器就是将档案伺服主机上的目录分享出来,让您可以透过网络对分享出来的目录里的档案,做执行、读取、写入等动作。基本上 NT/2000 的网域是使用 NetBEUI 做计算机命名服务,使用广播封包来侦测网络上有哪些计算机、哪些目录提供资源共享,而 Samba 与UNIX主机间的沟通(如目录、档案分享)是透过 TCP/IP 协议达成任务,Samba 若要与NT网域做沟通,透过TCP/IP当然是行不通的,只好使用 NetBIOS 对NT网域做广播,让 Windows 机器能够认识它,进而成为NT网域成员;因此 Samba 是使用 smbd Daemon 透过 TCP/IP 联系 Unix Like 主机,而使用 nmbd Daemon 透过 NetBIOS 对 NT/2000 网域做联系,也就是说 Samba 使用两种机制达成资源共享的目的。

  注:smbd Daemon主要用来处理档案分享和打印分享服务;nmbd Daemon则用来处理WINS 名称解析服务及NT Browser Service(即网上邻居)。

  要使用 Samba Server 相当容易,在安装好 Redhat 后,只要设定好工作群组,激活Samba Server 后就可以正常运作,您可以立即在 Windows 下的『网上邻居』里看到执行Samba服务的Linux 主机名称。

  samba-2.0.7-21ssl

  samba-common-2.0.7-21ssl

  samba-client-2.0.7-21ssl(samba 所需要的套件,请随时更新!!)

  想让开机自动激活 samba 吗?

  #chkconfig --level 345 smb on

  或是手动激活

  #/etc/rc.d/init.d/smb start

  以上是 samba 的简单设定,接着介绍 samba 的设定及其它应用

  当安装完 samba 套件后,也立即拥有以下的 samba 工具:

  smbclient:利用这个工具可连接其它 Unix like 的 Samba Server,或是连接 Windows 机器,以取得档案分享服务。

  testparm :这个工具可让您测试 smb.conf 组态档定义是否正确。

  testprns :这个工具可让您测试定义在 printcap 档里的列表机。

  smbstatus:这个工具可用来显示目前 client 端连接到 Samba Server 的联机状况。

  nmblookup:这个工具可使用 NT/2000 网域内的主机名称查询出对应的 IP 地址。

  smbpasswd:这个工具可用来建立、变更登入到 Samba server 的加密密码。

  swat:这个工具让您可使用 web接口(如:IE、Netscape)对Samba Server做组态设定。  

  先确定在 /etc/services 档案里面这些句子没有被批注掉﹕

  netbios-dgm 138/tcp # NETBIOS Datagram Service

  netbios-dgm 138/udp

  netbios-ssn 139/tcp # NETBIOS session service

  netbios-ssn 139/udp

  然后是建立 /etc/lmhosts 档案(如果它不存在的话)﹐建立起各主机的对应。我们只需将 MS Winndows 主机对应建立起来则可﹐但一定要包括作为 SAMBA 服务器的 Linux 主机本身﹕

  vi /etc/lmhosts

  192.168.0.17 redhat52

  192.168.0.15 PII266

  192.168.0.12 nt4ser2

  192.168.0.22 redhat62

  192.168.0.16 w2000ad

  然后是修改 /etc/samba/smb.conf 这个档案
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Samba使用和管理詳細指南_part-2
Samba使用和管理详细指南

设定Samba的组态档最基本可分为三个阶段:Server基本设定、使用者home目录的设定、目录分享设定。至于「共享列表机设定」则是当您有需要时再做设定。若是在Samba 的组态设定档/etc/smb.conf档里做设定,则是针对[global]、[homes]、[分享目录]三大项目做设定。

  vi /etc/samba/smb.conf

  若是在etc/smb.conf档里做设定,则是在[global]项目里设定如下:

  [global]

  workgroup = MYGROUP ;不分大小写

  unix password sync = Yes

  设定 Linux 与 samba 使用相同的密码

    domain master = yes

  设定 samba 成为 PDC (网域主控者),注意:若是将Samba设定为独立服务器,则无须设定此项。

    client code page = 950

  如果想使用者能看到中文文件名称﹐可以将这行加进 [global] 设定中

  [homes]

  browseable = yes

  writable = yes

  public = yes

  write list = @staff

  samba 内定帐号拥有者可对帐号目录做读写动作,若想让某些使用者也有权利对此目录做写入动作时,请在「Users」卷标的「write list」字段里输入其它使用者名称,如:abc、test、working。

  所谓的使用者home目录是指,以使用者帐号登入 Samba Server 后个人所拥有的帐号目录,如:以帐号 root 登入后,内定的个人目录是 /root。一般而言,对「使用者home目录的设定」着重于是否将此个人目录分享出来及设定存取的权限,其余项目大抵上是无需设定。

  注意:若您选择了「Public access」、「Writable」两个选项,并不代表所有的使用者皆有权利对您所分享的home目录下的档案具有写入权,还得视档案原来在Linux下的权限设定,例如,档案权限为rwxr-xr-x(chmod 755),表示只有拥有者具可写入权,此点务必留意。

  [works]

  comment = share works

  browseable = yes

  path = /works

  public = yes

  writable = yes

  目录分享设定

  使用 Samba 最大的用途当然是将特定的目录分享出去,分享目录的原则不外乎是读写权限及分享对象,把握此原则就可很迅速的设定好分享目录

  用 testparm 来测试一下smb.conf的语法是否正确,或是使用 smbclient -L (computer_name)

  重新激活 SAMBA

  /etc/rc.d/init.d/smb restart
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Samba使用和管理詳細指南_part-3
将 Samba 做为WINS Server

  Samba 最大的功用除了做 file Server 外,还可以做 WINS Server。Wins Server最大的好处是可在 NT/2000 网域内做名称解析,传统上在 Internet 上做 FQDN(Full Quality Domain Name)与 IP address 之间的转换是藉由 DNS 做解析,但在局域网络里尤其是 NT/2000 网域,当您使用 NT/2000 的 WINS Server 与 NT/2000 的 DNS 做配搭时,假设有一台主机名称叫做 abc,所属领域是 test.com.tw,IP地址是192.168.0.229,目前此部主机尚未在 DNS 上注册,但是在DNS 上激活正反查都可藉由 WINS 解析,当您使用 nslookup 查询 abc 主机时,您会发现可解析出 192.168.0.229,并且观察 DNS 上正查区域内,DNS自动将 abc 以A资源纪录指定 IP 192.168.0.229,而反查区域内,DNS 自动将229.0.168.192.in-addr.arpa 指到 abc.test.com.tw,这就是 WINS 的好处。

  以往在 NT/2000 网域内使用 DNS+WINS Server 可免去在 DNS 上登录主机记录,若再搭配 DHCP Server 那么连 Client 端主机的 IP 也免输入,一切由 DHCP Server分配动态 IP ,再由 DNS+WINS Server 自动登录主机 FQDN 与 IP 解析关系,这个简单、易用组织网域的方法,如今也可以由 DNS+Linux下的Samba+Linux下的DHCP来取代,因为 Samba 可担任 WINS Server 或指定 WINS Server做网域名称解析。假设目前欲做 WINS + DHCP 的 Linux主机IP为192.168.0.229,其设定方式如下:

  首先确定已激活 DNS Server,并且在 DNS 里启用正、反查皆可透过 WINS 做解析。

  以下设定Samba为Wins Server

  wins server = 192.168.0.229

  设定完成后,可使用 nmblookup 查询名称解析,假设目前有一主机其名称为 abc,使用动态分配 IP 联机,所配得的IP地址是192.168.0.100,那么当您使用nmblookup asp做名称查询时,则出现下列画面:

  [root@abc testing]# nmblookup abc

  192.168.1.100 abc<00>

  当然,使用 DNS + DHCP + WINS 除了可分配动态 IP 外,『网上邻居』、区域内主机 FQDN 与 IP 的对应关系皆可正常运作。

  Samba 除了可做为 File Server、Wins Server 外,还可做为 Printer Server,设定方法其为简单:

  首先使用 Redhat 的print tool,列表机类型设定使用本机列表机。

  # linuxconf。

  按一下「Config」、「Networking」、「Server tasks」。

  按一下「Samba file server」、「Default setup for printers」。

  选择 [X] This share is enable选项,可做打印分享。

  若选择 [X] Public access选项,任何人皆可使用此部Printer Server,不限定只有拥有登入Samba帐号使用者。

  接下来设定win95/98/NT Client端

  在桌面上按两下「我的计算机」、「打印机」、「新增打印机」。

  选择「网络打印机」、「下一步」。

  出现「网络队列或路径名称」对话窗后,请使用「浏览」钮挑选Samba Server所分享出来的打印服务,如:\abclp。

  接着设定列表机的驱动程序后,即可大功告成。

  您会发现有了 Samba 后,NT/2000 所具备的优点似乎皆被取代了!
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Samba使用和管理詳細指南_part-4
Samba存取控制

  NT/2000 对分享出的目录可针对特定群组、使用者做权限管理,同样的,Samba 也能做到,并且能够更精细的权限管理。在 Samba 里对于目录的管理可区分为『使用者帐号目录』与『共享目录』,『使用者帐号目录』是在 Samba 的「Defaults」项目里做设定,『共享目录』则是在Samba的「Disk shares」项目里做设定,其设定方式是不一样的。

  首先就以「Defaults」项目为例,说明如何做Samba存取控制:

  若要针对登入 Samba 的来源主机做允许登入Samba主机,请在Allow hosts栏里输入来源主机,如:

  192.168.0.0/255.255.255.0 ;表示允许192.168.0. class C登入Samba。

  abc,test,working ;表示允许此三部主机登入 Samba。

  @mygroup ;表示允许mygroup群组内的成员登入Samba。

  若要针对登入 Samba 的来源主机做不允许登入 Samba 主机,请在 Deny hosts栏里输入来源主机,如:

  192.168.0.25 ;表示不允许此部主机登入 Samba。

  cracker,badboy ;表示不允许此两部主机登入 Samba。

  @mygroup ;表示不允许这个工作群组成员登入 Samba。

  再以「Disk shares」项目为例,说明如何做 Samba 存取控制:

  Allow hosts栏、Deny hosts栏的设定方式与上述相同。

  「User list」栏可用来设定哪些使用者可使用分享目录,例如:

  aaa,bbb,ccc,ddd,root ;表示此五个帐号可使用分享目录。

  @cracker ;表示属于 cracker 群组的帐号可使用分享目录。

  @cracker,abc ;表示 cracker 群组成员及 abc 可使用分享目录。

  「Write list」栏可用来设定哪些使用者具有写入权,例如:

  aaa,bbb,root ;表示此三个帐号具有写入权。

  @cracker ;表示属于 cracker 群组的帐号具有写入权。

  @cracker,abc ;表示 cracker 群组成员及 abc 具有写入权。

  「Valid users」栏可用来设定哪些使用者可登入 Samba,例如:

  aaa,bbb,root ;表示此三个帐号登入Samba。

  @cracker ;表示属于 cracker 群组的帐号登入Samba。

  @cracker,abc ;表示 cracker 群组成员及 abc 登入Samba。

  「Max. connections」栏可用来设定此分享目录的最大联机数量,例如:10。内定值是0,表示没有联机限制。

 mba Client
  Samba 除了提供 Server 方面的服务外,也可以充当 Samba Client 端登入其它Samba Server 或 Windows 所分享出来的目录,要享用这些网络上的分享资源并不难,用法如下:

  mount -t smbfs -o username=test,password=test //abc/test /data/test
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Samba使用和管理詳細指南_part-5
Samba 的 Client 端设定

  若设定使用「Linux 主机的帐号与密码做为登入 Samba Server 的帐号与密码」时,由于 win95OSR2 之前版本及 NT SP3 之前版本的密码机制是不加密的纯文字密码,当登入 Samba Server 时可传送不加密的纯文字密码给 Samba,因而轻易认证登入。

  而 win98 及 NT SP3之后版本及 WIn2000 的密码机制是属于加过密的密码,当登入Samba Server 时所传送的是加密的密码给 Samba,因而无法认证登入,此时,必须为需要登入 Samba Server 的使用者帐号,利用 smbpasswd 这个工具程序建立登入Samba 的密码,当 windows Client 端登入 Samba 时,就可接受加过密的密码做为认证,不过此时就无需使用「Linux主机的帐号与密码做为登入Samba Server的帐号与密码」,因为已经为使用者建立属于登入 Samba 的密码。必须注意的是:登入Samba 的使用者帐号必须是已存在于 /etc/passwd 文件内的Linux系统帐号,唯有如此,才能确保能使用个人帐号目录。

不加密的联机

  由于 Samba 内定的接受密码机制属于纯文字密码,当设定好Samba Server 端后,此时若Client 端是 Windows 95 OSR2之前的版本或是 Win NT SP3 之前的版本,在登入本机时(假设使用 abc 帐号),直接使用『网上邻居』即可看「home」、「abc」、「works」三个分享目录,这是因为 Client 传送纯文字密码到Server端做为认证。

  若 Client 端是 Windows 95 OSR2以后的版本或是Win NT SP3以后或是 Win2000 的版本,因为 Client 传送加密码到 Samba Server 端做为认证,则需设定为纯文字密码才可以与 Samba Server 联机。您必须使用『登入记录编辑器』(regedit)对联机密码形式做设定:

  Windows 95/98 ==> samba_9x.reg

  REGEDIT4

  [HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]

  "EnablePlainTextPassword"=dword:00000001

  Windows NT ==> samba_nt.reg

  REGEDIT4

  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParameters]

  "EnablePlainTextPassword"=dword:00000001

  Windows 2000 ==>samba_2000.reg

  REGEDIT4

  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkStationParameters]

  "EnablePlainTextPassword"=dword:00000001

  你可以手动用 regedit 改,也可以存成 *.reg 直接执行!!
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]巧配Samba實現WIN2000和Linux文件共享
巧配Samba实现WIN2000和Linux文件共享

  随着Linux的普及,如何共享Linux下的文件成为用户关心的问题。其实,几乎所有的Linux发行套件都提供了一个很好的工具Samba--通过它可以轻松实现文件共享。Samba是基于SMB协议的一个应用程序,目前的版本是2.3.x。Samba的功能很强大,但易用性也极差。原因是它的配置文件太大而且不容易理解,新手和熟手都对其望而却步。但是,如果仅仅实现文件共享这一单纯目的,配置Samba也很简单,只需熟悉几个操作即可。下面我用一个例子说明这几个操作。

  假设你已熟悉Linux的基本操作,并且熟悉VI编辑器的使用。

  现在我们有三台PC,一台安装了Win 2000,名字是test2000,其上有共享文件夹share;其余两台安装了Linux,一台名字是testSamba,其上有一目录/pub;另一台名字是testlinux,其上也有一目录/pub。我们要实现的目标是把testSamba上的/pub共享,供test2000和test_linux使用。

  对test_Samba我们进行下面操作:

  在/etc/下找到smb.conf,用VI编辑器打开;
  # vi /etc/smb.conf或vi /etc/Samba/smb.conf

  在【gobal】字段下,添加netbios记录,一般加在workgroup记录的下一行;
  netbios name = testSamba

  在【gobal】字段下,修改secrity记录;
  secrity = share

  在【public】字段下,修改path记录;
  path = /pub

  在【public】字段下,添加geuest ok记录;
  guest ok = yes

  删除【public】字段每行行首的";"标示;

  保存退出。

  简单解释一下,添加的"netbios name"是可以在test2000网络邻居中看得见的机器名;添加的/pub是可以在网络邻居中看见的共享目录;添加guest ok是允许所有用户都可以guest账户访问共享;删除";"标示是要整个【public】字段成为可执行。

  现在/pub就成为可以被test2000和testlinux两台机器共享的目录了。简单吧!

  试试看:

  在testSamba下,为使用test2000下的共享文件夹可以进行以下操作:

  # smbclient -L //test2000

  此命令可以查看test2000下的共享情况,注意在系统要求输入password时,直接回车即可进入test2000,此时屏幕上列出test2000下的共享。

  #smbclient \\\\test2000\\share -U share

  此命令可进入test2000的share目录,屏幕上出现MS-DOS的提示符(:\)时说明用户进入了share目录。此时可以在提示符后输入"?"命令查找你可使用的命令。

  在test2000下,使用testSamba的共享目录/pub,可以进行以下操作:

  查找计算机testSamba,当testSamba目标出现时,双击图标pub,即进入共享文件夹pub了。

  在testlinux下,使用testSamba的共享目录pub,可进行如下操作(假设已知pub存在):

  #smbmount //testSamba/pub pub

  此命令可把testSamba下的pub挂到本机的pub上,同上在系统要求输入password时,直接回车,接着依次输入#cd /pub/pub、#ls,屏幕即列出testSamba的pub目录下的文件了。

  Win 2000和Linux实现文件共享了,简单吧。
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Samba 2.2.0
  SAMBA Team于2001年4月17日发布了Samba最新正式版2.2.0。增强的地方包括:增强了两种操作系统文件交互功能,当Unix和Windows共享某个文件的时候,可以保证数据的完整性;能够为Windows 2000和Windows NT客户机提供认证资源。这样可以节省购买Microsoft 客户接入许可证的费用; 支持自动下载Windows 2000/NT打印机驱动程序,首次独立于Microsoft的代码实现Windows NT点对点功能; 将Windows 2000 / Windows NT和UNIX 的接入控制列表统一起来。允许Windows客户机直接操作UNIX接入控制实体; 允许UNIX 服务器使用Windows 2000/Windows NT 域控制器 支持Microsoft分布式文件系统(Microsoft Distributed File System :MDFS)。 Samba 2.2.0 能够在Microsoft 的网络中扮演DFS 服务器的角色。

  同时该开发小组还发布了2.0.8版对先前的2.0.7版进行升级,这次的升级修正了老版本上用户可以通过SHELL账号破坏本地磁盘设备(如RAW设备)的安全漏洞。当然Samba 2.2.0已经包含了所有的安全补丁,如果不想升级到2.0.8就可以直接下载这个最新版了。既然这样,那我们立马就来试装这个新东东。

  首先从http://us1.samba.org/samba/ftp/samba-2.2.0.tar.gz得到源代码包,放到/tmp目录里后把它解开:(哦,我的系统是FreeBSD 4.3,也是最新的版本哦!)
  bsd# cd /tmp ; tar zxvf samba-2.2.0.tar.gz

  然后进入源代码子目录进行自动配置过程:
  bsd# cd /tmp/samba-2.2.0/source ; ./configure

  如没有什么错误就可以开始编译了:
  bsd# make ; make install

  完了以后就会在系统的/usr/local/samba中创建以下目录:

  bsd# ls /usr/local/samba

  bin lib man private swat var

  在试运行前需要完成两件事,首先就是拷贝一份smb.conf,接着产生smbpasswd口令数据库:

  bsd# cp /tmp/samba-2.2.0/examples/smb.conf.default   /usr/local/samba/lib/smb.conf
  bsd# cat /etc/passwd | /usr/local/samba/bin/mksmbpasswd.sh   /usr/local/samba/private/smbpasswd

  编辑smbpasswd文件从中删除不必要的账号以防止安全隐患,然后用以下命令添加新samba用户:

  bsd# /usr/local/samba/bin/smbpasswd -a sambauser
  好,我们现在就可以用这份缺省的配置文件进行试运行:

  bsd# /usr/local/samba/bin/smbd -D ; /usr/local/samba/bin/nmbd -D
这时请查看/usr/local/samba/var/log.smbd文件有没有出错信息,运气好的话开始测试连接:

  bsd# /usr/local/samba/bin/smbclient //bsd/sambauser -U sambauser
added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0
added interface ip=192.168.1.2 bcast=192.168.1.255 nmask=255.255.255.0
Password:

  #在这里输入该用户的samba口令
    Domain=[DOMAIN] OS=[Unix] Server=[Samba 2.2.0]
    smb: >

  哈哈,我们已经以sambauser的身份连接到他/她的主目录了,以后可以做的事请参考smbclient.1的man吧。

  接下来就可以来试2.2分支的最新特性,我们以把它配置成windows 2000客户机的域控制器为例。以下是实现必须的配置:

  [global]

  基本服务器设定

  netbios name = bsd
  workgroup = unixdomain

  以域及本地主浏览器方式运作

  os level = 64
  preferred master = yes
  domain master = yes
  local master = yes

  安全性设定

  security = user

  加密口令

  encrypt passwords = yes

  支持域登录

  domain logons = yes

  存放用户简档的目录

  logon path = \%Nprofiles\%u

  指定用户的主目录及映射盘符

  logon drive = H:
  logon home = \bsd\%u

  为所有用户指定通用登录脚本并使用[netlogon]共享项的相对路径

  logon script = logon.cmd

  域控制器必须的共享项

  [netlogon]
  path = /usr/local/samba/lib/netlogon
  writeable = no
  write list = ntadmin

  存放用户简档的共享项

  [profiles]
  path = /export/smb/ntprofile
  writeable = yes
  create mask = 0600
  directory mask = 0700

  接下来就需要为加入进来的客户机建立它们的机器信任账号了。有手工及自动两种方法可以达到目的,如果用前者则必须为每一台客户机分别建立,我们采用后者以减轻系统管理负担,不过只有root账号可以做此项工作,所以需要在smbpasswd口令数据库中为root建立账号(smbpasswd -a root),为安全起见最好不要用系统root的口令。然后在smb.conf中加入下面这一行:

  add user script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %m$

 用下面这个脚本(BSD风格)启动samba服务器:

  #!/bin/sh
  smbspool=/usr/local/samba/var/spool
  pidfiledir=/usr/local/samba/var/locks
  smbd=/usr/local/samba/bin/smbd
  nmbd=/usr/local/samba/bin/nmbd

  # start
  if [ "x$1" = "x" -o "x$1" = "xstart" ]; then
  if [ -f $smbd ]; then
  if [ -d $smbspool ]; then
  rm -f $smbspool/*
  fi
  echo -n ' Samba'
  $smbd -D
  $nmbd -D
  fi

  # stop
  elif [ "x$1" = "xstop" ]; then
  kill `cat $pidfiledir/smbd.pid`
  kill `cat $pidfiledir/nmbd.pid`
  fi

  然后在windows 2000客户机上以Administrator登录,进入"控制面板"双击"系统",选择"网络标识"书签并点击"属性",在"隶属于"项中选"域",并输入域名(unixdomain),按"确定",在确认时输入samba的root账号及其相应口令(别用系统口令哦!)然后重启就可以换登录进该域控制器了。

  另外这里还有一些系统性能及安全方面的建议,由于我用的是FreeBSD系统,在内核配置文件中加入以下选项并重编译内核:

  options SUIDDIR
  maxusers 128

  前者的作用是使文件服务器上所有用户的主目录都以suiddir选项装载,这样用户产生的新文件同目录具有相同的所有权。不过如果你让用户运行程序的话这就是个安全漏洞了,所以最好只限于在文件服务器上使用此选项,当然这个选项可以解决很多头痛问题,因为它支持很多文件服务器该有的调用,而用户希望"我的目录里只有我的文件"。

  而后者的作用就是提高系统表格尺寸,以提升系统对高负载的支持能力,原因是用Samba作文件服务器在大量连接请求会产生大量进程及文件句柄数。128这个值在一般情况下应该够了,请以实际经验取值。
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]samba - 網路芳鄰,資源分享程式
samba - 網路芳鄰,資源分享程式

samba 是一個能把您的 Unix 電腦和其他 MS Windows 電腦相互共享資源的軟體。

samba 提供有關於資源分享的三個功能。 包括 smbd,執行了它,就可以使這台 Unix 能夠共享資源給其他的電腦,而 smbclient 就是讓這台 Unix 去存取其他電腦的資源了,最後一個 smbmount,則是類似 MS Windwos 下『網路磁碟機』的功能,可以讓您把其他電腦的資源 掛在自己的檔案系統下。

安裝 net/samba。

設定檔修改 /usr/local/etc/smb.conf, 才算完整支援中文,在 [global] 中找到 for Traditional Chinese Users 的設定區,將 client code page=950 前面的 ; 拿掉 ,不要動 coding system=cap,並在後面加上 valid chars = 0xb9。

[code:1:5ee96294a3][global]
# for Traditional Chinese Users
client code page=950
; coding system=cap
valid chars = 0xb9[/code:1:5ee96294a3]
關於 valid chars = 0xb9,這個好像是很久前遇過的一個小問題, 如果您在 smb.conf 中設定 "workgroup = 電腦", 這時候用網芳去瀏覽會發現出現的是 "鄒腦", 電=0xb971 鄒=0xb951 q=0x71 Q=0x51, samba 在遇到 0xb9 後,自動把下一個字元轉成大寫了, 如果設定 valid chars = 0xb9 就會正常。

而這邊會出現 coding system=cap 則是天大的錯誤,十分容易誤導使用者,以下摘錄 smb.conf.5:

coding system (G)

This parameter is used to determine how incoming Shift-JIS Japanese
characters are mapped from the incoming client code page used by the
client, into file names in the UNIX filesystem. Only useful if client
code page is set to 932 (Japanese Shift-JIS). The options are :

* CAP - Convert an incoming Shift-JIS character to the 3 byte
hex representation used by the Columbia AppleTalk Program (CAP),
i.e. :AB. This is used for compatibility between Samba and CAP.

Default: coding system = <empty value>
在網芳上的名稱通常都要自己加上 netbios name = Elf,其中的 Elf 就是網芳上的名稱。

另一個 samba 的中文問題是 smb.conf 不能設定某些字為 Section,例如:

[code:1:5ee96294a3];[?#93;計與科技]
[計與科技]
comment= ?#93;計與科技
browseable = yes
path = /home/design
read only = yes
guest ok = yes[/code:1:5ee96294a3]
因為 "設" 的第二個字元是 "]" 與 samba 的 Section 字元衝突, 所以解決的方法就是去修改 source/param/param.c:

[code:1:5ee96294a3]--- params.c.orig Mon May 12 19:46:29 2003
+++ params.c Mon May 12 20:37:24 2003
@@ -297,6 +297,15 @@
i = end + 1;
c = EatWhitespace( InFile );
}
+ else if ( c > 0x80 )
+ {
+ bufr[i++] = c;
+ end = i;
+ c = mygetc( InFile );
+ bufr[i++] = c;
+ end = i;
+ c = mygetc( InFile );
+ }
else /* All others copy verbatim. */
{
bufr[i++] = c;[/code:1:5ee96294a3]
samba 大部分的程式都有中文問題,需要更多人去 patch, 像是 smbclient 去看 MicroSoft 的中文資料夾會是底線(_)。

Note: samba 是用TCP/IP通訊協定,所以在 MS Windows端的電腦也要裝上TCP/IP協定,不然就不能用囉。

而 samba 3.x 的部分可以透過 samba-devel 來安裝, 但是預設沒有支援 I18N,所以必須透過以下的方式來安裝:

[code:1:5ee96294a3]# cd /usr/ports/net/samba-devel
# make -DWITH_LIBICONV all install clean
mangling method = hash
unicode = on
dos charset = UCS-2LE
unix charset = CP950
display charset = CP950[/code:1:5ee96294a3]

WWW: http://www.samba.org/
Online Book - Using Samba: http://www.oreilly.com/catalog/samba/

如果要方便的使用網芳上的東西,就要裝 smbfs 這個軟體,在 net/smbfs 底下,裝好後還需要重編 kernel, 將 options LIBMCHAIN 和 options LIBICONV 編進去才行。 4.5-RELEASE 之後已經不需要安裝 smbfs 和重新編譯 kernel 了。

然後只要用 smbutil view //user@host 找到要的分享名稱, 再用 mount_smbfs -I host-ip //user@host/share /smb/node 就可以方便的使用網芳囉。目前中文的 host 或是 share 會有問題。
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Samba也要utf8
Samba也要utf8

Samba裝好後修改smb.conf在global section內加入下面三行, 讓Samba完全utf8 ^^
[global]
dos charset = UTF8
unix charset = UTF8
display charset = UTF8


再來用smbmount也都ok, 但中文就是一直會缺字, 我smbmount用的參數為iocharacter=utf8,codepage=cp950, 後來才發現原來codepage設錯了, cp950是big5的codepage number, 如果是utf8環境的話, 要用codepage=65001, 記下來以免下次忘了^=^

samba 大部分的程式都有中文問題,需要更多人去 patch, 像是 smbclient 去看 MicroSoft 的中文資料夾會是底線(_)。

Note: samba 是用TCP/IP通訊協定,所以在 MS Windows端的電腦也要裝上TCP/IP協定,不然就不能用囉。

而 samba 3.x 的部分可以透過 samba-devel 來安裝, 但是預設沒有支援 I18N,所以必須透過以下的方式來安裝:
# cd /usr/ports/net/samba-devel
# make -DWITH_LIBICONV all install clean
mangling method = hash
unicode = on
dos charset = UCS-2LE
unix charset = CP950
display charset = CP950
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]鳥哥的Samba設定範本
[global]
        workgroup     = vbirdhouse
        netbios name  = vbirdserver
        server string = This is vbird's samba server
        unix charset    = utf8
        display charset = utf8
        dos charset     = cp950
        log file = /var/log/samba/%m.log
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        dns proxy = no
        template shell = /bin/false
        winbind use default domain = no

        # 與密碼有關的?#93;定項目,?#93;括密碼檔案所在與?#91;密與否喔!
        security = user
        encrypt passwords = yes
        smb passwd file = /etc/samba/smbpasswd

        # 與 NetBIOS name 名稱解析有關的?#93;定
        name resolve order = lmhosts bcast host

# 新增的每個使用者家目錄及群組用戶哩!
[homes]
        comment = Home directories
        browseable = no
        writable = yes
        valid users = %S
        create mode = 0664
        directory mode = 0775
[public]
        comment = the user groups work directory
        path = /home/public
        public = yes
        writable = yes
        valid users = @users
[temp]
        comment   = Temporary file space
        path      = /tmp
        read only = no
        public    = yes

[global] 部分
在新增的資料部分,主要是與密碼檔案有關啦!包括安全等級設定為使用本機的密碼驗證,亦即是『 security = user 』 那個項目,而且加上了密碼加密。至於 Samba 使用的密碼檔預設就是 /etc/samba/smbpasswd 這個, 為了增加自己的記憶,乾脆直接寫到 smb.conf 當中即可。

至於那個『 name resolve order 』就有趣了!他說明的是『這部 Samba 主機針對 NetBIOS name 的解析方式』, 主要的解析方式有幾種:
  • lmhosts:直接以 lmhosts 這個檔案的內容來對照;
  • wins:利用一部可管理 Windows 網芳的主控電腦來紀錄,本 Samba 主機向該部主機 (wins server) 要求 NetBIOS 名稱解析結果;
  • host:透過 /etc/hosts 或者是 NIS, DNS 等方式來處理 NetBIOS name 的結果;
  • bcast:在區網中直接透過 NetBIOS 的廣播功能處理,亦即是向所有 Samba 主機介面的同一網域主機發出名稱解析的需求, 舉例來說咱們的 Samba 主機為 192.168.1.254/24 ,則以 bcast 解析 NetBIOS name 時,我們的伺服器會主動向 192.168.1.0/24 發送出解析封包的要求啊。
我們修改了預設值,讓 Samba 僅透過 lmhosts, bcast 及 host 的方式進行主機名稱的解析啊!

[homes] 部分
至於新增的目錄方面,[homes] 是個比較特殊的分享名稱,他代表 Linux 主機上頭的使用者家目錄。 我們知道 [homes] 代表的是分享目錄的資源名稱, 但你總不希望使用 Samba 時找到的資源分享名稱為 //127.0.0.1/homes 吧? 所以才會有『 valid users = %S 』這個設定值,那個 %S 代表擁有可登入 Samba 的所有使用者, 且當他登入後,那個 [homes] 會變成 [帳號] , 請至前一小節的
變數 部分查詢相關的說明。而且使用者的家目錄是除了使用者本人外, 並不會開放給其他人瀏覽的喔 (browseable = no), 另外他的 umask 為 002,因為建立新檔 (create mode) 預設權限為 0664 ,而建立新目錄 (directory mode) 則為 0775 之故。

[public] 部分
另一個新增的分享資源比較有趣,我們命名為 [public] ,指向的目錄為 /home/public , 有趣的地方在於使用的 valid users = @users 這個設定項目, 加上 @ 之後的名稱代表著群組之意 ,意思是說,在 Linux 主機上面可使用 Samba 的帳號中,只要該帳號支援 users 這個群組, 那麼理論上他就能夠進入 /home/public 目錄進行存取的權限。 不過能否順利的存取檔案還與 Linux 最底層的檔案權限有關 。且任何人均可查閱到我們的主機有提供 [public] 這個分享資源 (public = yes 之故)。

前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|