设为首页收藏本站

河南工业大学论坛|工大小窝|河南工业大学BBS|惜缘论坛|2006-2021工大小窝一直在你身边!

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1865|回复: 4
打印 上一主题 下一主题

linux资源共享samba方式

[复制链接]
跳转到指定楼层
1
发表于 2008-12-2 13:22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、知识简介
Linux的开放性与免费理念吸引了无数的计算机爱好者,越来越多的人加入了Linux的阵营。但Linux使用的文件系统为Ext2,和传统的Windows系列的FAT不同,如何沟通两者间的资源成为应用中的一大问题。下面就介绍几种解决该问题的方法。
(一)同一机器上文件系统的共享
1.Windows系统下访问Linux分区信息
网络上提供一些程序用于在Windows系统下访问Linux分区信息,可以在http: //uranus.it.swin.edu.au/~jn/linux/下找到相应软件;也可以在www.globalxs.nl站点下载程序 fsdext.zip,解压后依照说明将vext2d.vxd、tsdext2.vxd拷贝到c:\windows\system目录下,使用命令 mount /dev/hda2 g将Linux分区虚拟为新的盘符g,卸载也只需使用命令mount /u g即可轻松完成。

2.Linux系统下访问Windows分区信息
直接使用Linux 的mount 命令加配参数即可实现。
(二)不同机器间文件系统的共享
需要在Linux系统上配置NFS、Samba等服务进程以支持资源互访。下面介绍如何配置Samba服务进程。
Samba由两个守护进程smbd和nmbd组成,可由命令 /etc/rc.d/init.d/smb start 启动。启动时读取配置文件 /etc/smb.conf。查询是否启动可使用ps -ef |grep smbd命令;停止Samba可使用命令/etc/rc.d /init.d/smb stop。smb.conf文件主要包括以下部分:

1.Global (全局)参数
该部分设置整个系统的规则,定义了一些公共变量。
netbios name=web
定义Windows系统“网上邻居”中所见的机器名。
workgroup=SambaServer
定义服务器的工作组名。
server string=Samba Server
对主机的说明信息。
hosts allow=202.110.211.225
guest account=hgz
定义smb用户名称。
security=user
定义访问权限。访问权限由低到高有三种:share、user和server。其中share安全级别最低,user模式要求连接时输入用户名和口令,可由以下命令建立smb网络用户:
#dduser username 添加该用户为Linux用户。
#mbpasswd -a username 添加该用户为smb用户。
#mbpasswd username 修改smb账户的口令,最后与/etc/passwd中的口令一致。
server模式要求用户的认证由Samba服务器或NT服务器来完成。
encrypt passwords=yes
设置是否需要加密口令。因为Windows系列默认采用加密口令传输,而Linux默认采用非加密口令传输,为保证smb网络用户的正常登录,在user安全级下设置为加密,在share 安全级下可不设。
smb passwd file=/etc/smbpasswd
由命令cat /etc/passwd | mksmbpasswd.sh > /etc /smbpasswd产生。
interfaces=202.110.211.225/24
配置smb服务所使用的网卡IP以及子网掩码。A段网址为8, B段网址为16, C段网址为24。如果有两个以上网卡,要全部列出。
name resolve order=host dns bcast
设定smb服务时,从机器netbios名称到IP地址的解析方式,默认顺序为host lmhosts wins bcast。如果局域网内有DNS,可设置为host dns bcast。
wins support=no
设置是否有wins支持。
public = yes
为yes时,“网上邻居”中可见该资源,否则不可见。
browseable = yes
为yes时,“网上邻居”中可见该资源,否则不可见。
printing = bsd
指定Linux使用哪个打印机守护进程(bsd、sysv、hpux、aix、qnx、plp),同时向samba说明命令lpr和lpq的缺省值。
printcap name = /etc/printcap
定义了打印配置文件所处的位置。
load printers = yes
表明是否加载printcap 定义的所有打印机以供浏览。

2.Directory shares (目录共享部分)——包括标准[homes]部分
该部分通常定义了Linux机器上共享的目录资源,其名字可以由用户确定。段中的设置控制了每一个用户目录的共享权限。
Comment = Home Directories
设定在浏览本机资源时,出现在指定资源旁边的字符串。
Browseable = no
控制一项服务是否能够出现在网上邻居中,no意味着这个目录将在浏览时显示为要验证的用户名称,yes则显示 homes 和要验证的用户名称的共享目录。
Read only = no
控制是否允许通过验证的用户对主目录有写入的权限,但最终取决于该目录的 Unix 权限。无论 Unix 的权限怎样, 设置 read only = yes 后, 主目录只能是只读的。

3.Printer shares (打印共享)部分
Comment = All Printers
指定为哪些设备进行设置。
Browseable = no
指定是否能够浏览Windows 客户机的printcap 文件定义的全部打印机。
Printable = yes
指定是否允许不打印而去访问与打印服务相关的假脱机目录,例如:/var/spool/lpd/lp。
Public = no
指定未被Linux 用户名验证的Windows 客户机是否有权使用Samba 打印服务。
Writable = no
指定是否有权写假脱机目录。
Create mode = 0700
假脱机文件的缺省许可权限。
4.Public 部分,配置共享目录部分
Comment = Public Stuff ;说明部分
Path = / ;共享的Linux目录
Writable = no ;写权限
Printable = yes
配置文件设置完毕后,重新启动Samba,可以运行以下几个程序进行检测或共享Windows系统资源。
● 运行Testparm程序检测smb.conf的配置文件是否正确。
● 启动Samba2.0.3版本中的swat程序,就可以利用浏览器来配置smb.conf文件。编辑/etc/inetd.conf 文件,将其中swat前的注释去除,再由inetd 服务启动。重启后在Linux主机或相同的客户机浏览器的地址中输入http://Linux主机名或IP地址,就可以利用浏览器来进行smb.conf 文件的配置与管理工作。
● 运行Smbstatus程序显示Samba 当前输出的共享资源。
● 可以把Smbclient程序用作一个基于Linux的Microsoft(smb)的客户,提供FTP模式界面,便于进行调试。
例如:smbclient -L 主机名 <口令> <-U 用户名>
可以查看主机的共享资源信息。smbclient \\\\主机名\\共享目录名 <口令> <-U 用户名>可以连接网络共享资源。其用法类似ftp。
● Nmbclient是可以用来进行调试的程序。
● Smbfs程序是使用SMB协议工作的文件系统。
● Smbmount程序用于在Linux上安装smbfs。使用它可以将Windows共享目录安装在 Linux主机上。
例如:smbmount \\\\主机名\\共享目录名 <口令> -c ‘mount /mnt/smb’命令就可以将指定主机的共享名安装到本地的目录。
● Smbumount程序用于卸载Smbmount建立的共享资源目录。
● Smbtar是一段shell脚本程序,它通过Smbclient使用 tar格式备份和恢复一台远程Windows的共享文件。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
2
 楼主| 发表于 2008-12-2 13:23:42 | 只看该作者
二、linux smb.conf 详解
服务名:smb
配置目录:/etc/sabma/
主配置文件:/etc/sabma/smb.conf
#============================== Global Settings =============================
17行workgroup
语法 workgtoup = <工作组群>;
预设 workgroup = MYGROUP
说明 设定 Samba Server 的工作组
例 workgroup = workgroup 和WIN2000S设为一个组,可在网上邻居可中看到共享
21行server string
语法 server string = <说明>;
预设 sarver string = Samba Server
说明 设定 Samba Server 的注释
其他 支持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端用户名
例 server string = this is a Samba Server 设定出现在Windows网上邻居的 Samba Server 注释为 this is a Samba Server
28行hosts allow
语法 hosts aoolw = <IP地址>; ...
预设 ; host allow = 192.168.1. 192.168.2. 127.
说明 限制允许连接到 Samba Server 的机器,多个参数以空格隔开。表示方法可以为
完整的IP地址,如 192.168.0.1
网段,如 192.168.0.
例 hosts allow = 192.168.1. 192.168.0.1 表示允许192.168.1 网段的机器 网址为192.168.0.1 的机器 连接到自己的samba server
32行printcap name
语法 printcap name = <打印机配置文件>;
预设 printcap name = /etc/printcap
说明 设定 samba srever 打印机的配置文件
例 printcap name = /etc/printcap 设定 samba srever 参考 /etc/printcap 档的打印机设定
33行load printers
语法 load printers = <yes/no>;
预设 load printers = yes
说明 是否在开启 samba server 时即共享打印机
38行printing
语法 printing = <打印机类型>;
预设 printing = lprng
说明 设定 samba server 打印机所使用的类型,37行为目前所支持的类型
42行guest account
语法 guert account = <帐户名称>;
预设 guert account = pcguest
说明 设定访问 samba server 的来宾帐户(即访问时不用输入用户名和密码的帐户),若设为pcguest的话则为默认为"nobody"用户
例 guert account = andy 设定设定访问 samba server 的来宾帐户以andy用户登陆,则此登陆帐户享有andy用户的所有权限
46行log file
语法 log file = <日志文件>;
预设 log file = /var/log/samba/%m.log
说明 设定 samba server 日志文件的储存位置和文件名(%m代表客户端主机名)
49行max log size
语法 max log size = <??KB>;
预设 max log size = 0
说明 设定日子文件的最大容量,单位KB 这里的预设值0代表不做限制
53行security
语法 security = <等级>;
预设 security = user
说明 设定访问 samba server 的安全级别 共有四种
share---不需要提供用户名和密码
user----需要提供用户名和密码,而且身份验证由 samba server 负责
server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台 samba server作身份验证
domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证
60行password server
语法 password server = <IP地址/主机名>;
预设 password server = <NT-Server-Name>;
说明 指定某台服务器(包括windows 和 linux)的密码,作为用户登入时验证的密码
其他 此项需配合 security = server时,才可设定本参数
64行password level
65行username level
语法 password level = <位数>;
username level = <位数>;
预设 password level = 8
username level = 8
说明 设定用户名和密码的位数,预设为8位字符
70行encrypt passwords
语法 encrypt passwords = <yes/no>;
预设 encrypt passwords = yse
说明 设定是否对samba的密码加密
71行smb passwd file
语法 smb passwd file = <密码文件>;
预设 smb passwd file = /etc/samba/smbpasswd
说明 设定samba的密码文件
130行local master
语法 local master = <yes/no>;
预设 local master = no
说明 设定 samba server 是否要担当LMB角色(LMB负责收集本地网络的Browse List资源),通常无特殊原因设为no
134行os level = 33
语法 os level = <数字>;
预设 os level = 33
说明 设定 samba server的os level. os level从 0 到 255 . winNT的os level为33, win95/98的os level 是 1 .
若要拿samba server 当LMB或DMB则它的os level至少要大于NT的33以上
139行domain master
语法 domain master = <yes/no>;
预设 domain master = yes
说明 设定 samba server 是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no
143行preferred master
语法 preferred master = <yes/no>;
预设 preferred master = yes
说明 设定 samba server 是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no.
(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次)
163行wins support
语法 wins support = <yes/no>;
预设 wins support = yes
说明 设定samba server 是否想网络提供WINS服务,通常无特殊原因设为no.
除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes
其他 wins support 和 wins server 只能选择一个
167行wins server
语法 wins server = <IP地址>;
预设 wins server = w.x.y.z
说明 设定samba server 是否要使用别台主机提供的WINS服务.通常无特殊原因设为no.除非所处网络上有一台主机提供WINS服务才要设yes
其他 wins support 和 wins server
例 wins server = 192.168.0.1 表示samba server要使用192.168.0.1提供的WINS服务
#============================== Share Definitions =============================
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
使用者本身的"家"目录,当使用者以samba使用者身份登入samba server 后,
samba server 底下会看到自己的家目录,目录名称是使用者自己的帐号
[分享的资源名称]
<指令1>; = (参数)
<指令2>; = (参数)
..........................
要提供分享资源时,须先把欲分享的资源以 [ ] 符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下
comment---------注释说明
path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable-------是yes/否no允许打印
hide dot ftles--是yes/否no隐藏隐藏文件
public----------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
vaild users-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalid users---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list-------设定此名单内的成员为只读(用户名/@组名)
write list------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
create mask-----建立文件时所给的权限
directory mask--建立目录时所给的权限
force group-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts-----设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段 except IP
deny hosts------设定只有此网段/IP的用户不能访问共享资源
allow hosts=本网段指定IP指定IP
deny hosts=指定IP本网段指定IP
3
 楼主| 发表于 2008-12-2 13:24:30 | 只看该作者
三、LINUX与WINDOWS共享文件配置 smb设置实例
setup
system services

选定smb服务保存退出
service smb restart (重起smb)

启动 Samba

service smb start          //启动 Samba
pstree | grep mbd       //检查Samba是否启动
          | -nmbd  
          | -smbd            //出现这二行,就表明Samba已经启动



************************
#启动服务乱码 解决方法
#vi /etc/sysconfig/i18n
#写入LC_ALL=POSIX
#保存 重启
************************
SMB配置

1. 备份smb.conf文件
#cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2. 编辑smb.conf
A#vi /etc/samba/smb.conf
找到[GLOBAL]
              添加:
              unix charset = gb2312
              dos charset = gb2312
       修改 workgroup = mygroup workgroup = workgroup
       修改 security = user      security = share
      
       找到[home]
              添加:
              Path = /home/netgame    添加一个游戏工作目录路径
              Valid users = linux      

       然后到文件最后 添加一段脚本
              [netgame]   名字随意!!!
              Path = /home/netgame
              Valid users = linux
              Public = yes
              Only guest = yes
              [netgames]
              Path = /home/netgame/game
              Valid users = linux
              Public = yes
              Only guest = yes
       保存,退出!
3. 新建用户
#useradd linux
#passwd   linux
       输入两次口令,完成口令设置
#smbpasswd –a linux   更新SMB口令
       也要输入两次口令,完成口令设置

************************************************
4
 楼主| 发表于 2008-12-2 13:27:55 | 只看该作者
有空再发,编辑器使用。想学习的也可以先搜索一下。比如,vi,emacs,kwrite等等
有空到http://hi.baidu.com/grdd看看
5
发表于 2008-12-2 22:44:51 | 只看该作者
学习了~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|工大小窝 ( 豫ICP备06010094号  

GMT+8, 2024-4-30 14:52 , Processed in 0.117109 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表