配置samba服务
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 �CL //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