熟悉Linux的用户可能常常在Linux上安装Samba服务来实现与Windows系统的文件共享和打印机共享, 他们之间的数据传输使用 SMB(Service Message Block)协议.
这是一个在传输层之上的协议, 所以他可以支持很多不同异构系统的网络互联(比如,Linux,Solaris,Windows 等), Samba之所以能够工作,因为SMB协议模仿了Windows内核的文件和打印共享协议.
微软已经将SMB改名为公共因特网文件系统(CIFS,Common Internet File System ), 并打算把它设计为Internet的标准协议.这在一定程度上是由于它想与最初的基于NetBIOS的SMB保持一定的距离.
NetBIOS是 Windows 网络的一个伟大的工具,Microsoft使用NetBIOS实现了一个网络文件/打印服务系统, 但是为LAN设计的它却注定了不能路由. Samba执行了SMB/CIFS的一个版本,这个版本在很大程度上与大多数的Windows版本兼容.
我们可以通过Windows的网络邻居来轻松访问安装了Samba的UNIX/LINUX服务器.
1.安装centos时在防火墙中开启文件共享服务,并选择安装文件共享服务器.
2.启动 Samba 服务.
1 2 3 4 5 6 7 8
| # chkconfig smb on ← 设置 Samba 自启动 # service smb start ← 启动Samba服务 Starting SMB services: [ OK ] Starting NMB services: [ OK ] # smbpasswd -a root ← 将系统用户 root 加入到 Samba 用户数据库 New SMB password: ← 输入该用户用于登录 Samba 的密码 Retype new SMB password: ← 再次确认输入该密码 Added user centospub.
|
3.配置Samba 通过编辑 /etc/samba/smb.conf 让将要被共享的目录拥有充分的读写权限属性.
在smb.conf文件最后加入下面内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| [all file] comment = centos all file path = / valid users = root public = no writable = yes printable = no create mask = 0777 directory mask = 0777 # [all file] 是共享名 #comment = centos all file是注释 # path = / 分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对,我设置了共享/所有文件 #valid users = root valid users 说明:指定共享资源的有效用户,即允许访问该资源的用户 # public = no 设置public=no 表示在网上邻居看见但不能进入 # writable = yes writable = yes表示可写,writable = no表示只读 # printable-------是yes/否no允许打印 #create mask-----建立文件时所给的权限 #directory mask--建立目录时所给的权限
|
修改完smb.conf文件后一定要重启sam服务:
1
| # servcie smb restart ---重启smb服务
|
以上是我开启samba服务的过程.
4、访问共享资源 在windows的桌面上打开”网上邻居”,并点击”查看工作组计算机”选项; 就出现 Samba 服务端的连接了,用户和密码就是你设置的.
smb.conf手册:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| 服务名: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 = ; ... 预设 ; 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 = ; 预设 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 = ; 预设 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 = ; 预设 password server = ; 说明 指定某台服务器(包括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 = ; 预设 encrypt passwords = yse 说明 设定是否对samba的密码加密 71行smb passwd file 语法 smb passwd file = ; 预设 smb passwd file = /etc/samba/smbpasswd 说明 设定samba的密码文件 130行local master 语法 local master = ; 预设 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 = ; 预设 domain master = yes 说明 设定 samba server 是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no 143行preferred master 语法 preferred master = ; 预设 preferred master = yes 说明 设定 samba server 是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no. (同一网段不可有两个PDC,他们会每5分钟抢主控权一次) 163行wins support 语法 wins support = ; 预设 wins support = yes 说明 设定samba server 是否想网络提供WINS服务,通常无特殊原因设为no. 除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes 其他 wins support 和 wins server 只能选择一个 167行wins server 语法 wins server = ; 预设 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 底下会看到自己的家目录,目录名称是使用者自己的帐号 [分享的资源名称] ; = (参数) ; = (参数) .......................... 要提供分享资源时,须先把欲分享的资源以 [ ] 符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下 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
|