配置samba服务<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Windows 主机彼此间可以利用网上邻居达到资源共享的目的, Unix 系统之间也能通过 NFS Network File System ,网络文件系统)实现目录共享,而 Unix Windows 之间由于采用了完全不同的文件结构,无法直接实现资源共享,本文就为大家介绍一种利用 Samba 服务器来实现 Unix Windows 间资源共享的办法。

.SMB 协议和 samba 简介

1.SMB 协议 :Server Message Block, 服务信息块协议,是一个高层协议,它提供了在网络上的不同计算机之间共享文件和打印机的手段, SMB 使用 NetBIOS API 实现面向连接的协议,该协议为 Windows 客户程序和服务提供了一个通过虚电路按照请求 - 响应方式进行通信的机制,其工作原理就是让 NetBIOS SMB 协议运行在 TCP/IP 上,并且使 NetBIOS 的名字解释器让 Linux 机器可以在 Windows 的网上邻居中被看到, 1992 SMB 成为 Open Group 的国际标准,即 X/Open pc 机网络互连协议 SMB

NetBIOS 工作在 OSI 的网络层和传输层,而 SMB 工作在 OSI 的会话层、表示层和应用层

2.samba 简介:是 linux 上支持 SMB 协议的一组软件包

在缺省情况下, Windows 工作站上的 Microsoft Client 使用服务消息块协议

samba 1991 年由奥大利亚 Andrew Tridgell 研发, samba 的核心是两守护进程 :

smbd 处理到来的 SMB 数据包 nmbd 使其它主机能浏览 Linux 服务器

smbd samba 的核心。它负责建立对话进程、验证用户身份、提供对文件系统和打印机的访问机制。 nmbd 实现了 “network brower” 的功能。它的作用是对外发布 samba 服务器可以提供的服务。

3.samba 软件的功能

共享 Linux 的文件系统

共享安装在 samba 服务器上的打印机

支持 Windows 客户使用网上邻居浏览网络

使用 windows 客系统共享的文件和打印机

支持 windows 域控制器和 windows 成员服务器使用

samba 资源的用户进行认证

支持 WINS 名字服务器解析及浏览

支持 SSL 安全套接层协议

4.samba 的应用环境

. 安装和启动 samba

#service smb restart

.smb.conf 的配置

[global]#global

netbios name=rhl9 设置主机的 netbios 名,即在 2000 网络邻居中看得见的机器名

workgroup=WORKGROUP 主机的在的工作组名

server string=linux server 主机名的字符串提示

security=user|share|Server|Domain 使用用户级的安全;其中还有共享级 share Server user 安全级别类似,但用户名和密码是递交到另外一个服务器去验证; Domain 这个安全级别要求网络上存在一台 Windows 的主域控制器 ,samba 把用户名和密码递交给它去验证

[test]test

comment=Home Directory 注解参数,在 browse list 中标示该条目的字符串 .

path=/test 共享目录的路径

guest ok=yes 允许所有用户都可以 guest 帐户访问共享

[printers]

browseable=no 指定共享的路径是否可浏览

public=yes 指定是否可允许 guest 帐号访问

printable=yes 指定是否可打印

1. 设置 linux 共享文件夹,如上

使用 2000 下的共享文件夹可以进行以下操作:

#smbclient –L //192.168.1.47 此命令为查看 bjxh01 下的共享情况,注意在系统要求输入 password 时,直接回车即可进入 2000 ,此时屏幕上列出 2000 下的共享。

#smbclient //192.168.1.47/aa -U username( Windows 系统的用户名 ) 用于在 linux 中访问 Windows2000 中的共享目录 , 屏幕上出现 MS-DOS 的提示符: \ 时说明用户进入了 aa 目录。此时可以在提示符后输入 查找你可使用的命令。

2000 下,使用 samba 的共享目录 /test ,可以进行以下操作 : 查找计算机 rhl9 ,当 rhl9 目标出现时,双击图标 test ,即进入共享文件夹 test

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

! 执行本地命令 ls: 显示文件列表 get 下载单个文件 put 上传单个文件 mget 批量下载文件 mput 批量上传文件 mkdir 建立目录 rmdir 删除目录 rm 删除文件

2. 当设置了 user 的安全等级后,将由本地系统对访问 Samba 共享资源的用户进行认证 . 认证需要一个 Samba 口令文件 , 该文件由 smb passwd file 参数指定,默认为 /etc/samba/smbpasswd. 初始情况下此文件并不存在,两种方法建立

成批添加 samba 帐户

#cat /etc/passwd|mksmbpasswd.sh>/etc/samba/smbpasswd

#vi /etc/samba/smbpasswd

#chown root.root /etc/samba/smbpasswd

#chmod 500 /etc/samba

#chmod 600 /etc/samba/smbpasswd

#ll -d /etc/samba

#smbpasswd user1 本地系统用户帐号必须事先已存在

添加单个的 samba 帐户 smbpasswd -a user1

#smbadduser user1:user1 已存在用户的用户名和密码

3. 使用符号链接组织本地共享资源

#vi /etc/samba/smb.conf

[test]

   comment=local resource

   path=/test

   public=yes

   writeable=yes

#ln -s /usr/share/doc doc

4. 为所有用户配置只读共享和读写共享

#vi /etc/samba/smb.conf

[test]

   comment=local resource

   path=/test

   read only=no|yes 指定共享的路径是否为只读

   public=yes 指定是否可以允许 guest 帐户访问,等价于 guest ok=yes

4. 为指定用户和组配置 samba 共享

#useradd fred

#passwd fred

#smbpasswd -a fred

#mkdir -p /var/samba/fred

#chown fred.fred /var/samba/fred

[test]

   comment=local resource

   path=/test

   valid users=fred ben

   public=no

   writeable=yes

#useradd tom #passwd tom #useradd ben #passwd ben #smbpasswd -a tom #smbpasswd -a ben #mkdir /var/samba/tomben #chmod 707 /var/samba/tomben #vi /etc/samba/smb.conf

[test]

   comment=tom&ben's Service

   path=/var/samba/tomben

   valid users=tom ben,@g1

   public=no

   writeable=yes

   create mask=0707 设置对新创建的文件的正确权限。 create mask 定义新创建的文件将允许哪些权限,使用二进制 \"and\" 操作将提供的八进制数与所需的权限结合起来。将导致不在掩码中的任何许可权都从新文件的权限中删除。 例默认创建文件的权限是 744and0707=704

 //write list=@g1