linux访问windows的samba配置,如何配置?详细教程
这里只讲到一些很简单的配置,为了方便初学者进行win和linux的通信,也可以了解一些linux服务的配置环境。
概要:
Windows中有一个网络邻居,它提供在局域网内的小型网络资源共享方案,计算机之间使用Samba套件SMB(Session Message Block)协议服务通信。LINUX也可以通过此协议与Windows实现类似网络邻居的通信。下面将介绍SMB协议在Linux下的安装、配置和使用。
注:对于Linux的一些基本使用这里不作详细介绍。SMB基于NetBIOS协议工作。
安装:
Samba的安装包可从网络下载,现在的版本是22。我从LINUX的安装盘中找到的安装包(223),共三个,都以Samba开头,RPM包格式,用rpm –ivh xxxrpm 解包,将把服务和工具存放到/sbin和/usr/bin下,配置文件在/etc/samba中。查找一下smb、nmb、smbclient工具是否存在。
配置:
对Samba的配置主要是对smbconf文件的设置。配置项目和方法有机百种之多,在配置文件目录中提供一个预制的配置文件,你只要对其进行改动就行,;和#表示注释。下面将对配置中的主要项目加以说明。
注:这里只是配置将本机对外公布的数据,如何使用其它主机的服务几乎与此无关,但最好配置一下。
1、 简化配置,清晰概念
smbconf的基本数据只有三段[global]、[homes]、[printers],分别对服务通信数据、个人目录和打印机进行配置。其中[global]段是必需的,[homes]的默认设置使将登陆用户的的主目录进行共享,[printers]是共享系统中配置的所有打印机。
2、 [global]段
这一段只介绍一下基本的配置。其他可根据需要设置。
a) 以下配置在网络邻居里的显示信息
Workgroup = 工作组名 与windows工作组是一个意思
Server string = xxxxx 对计算机的简要说明
b) 如果要共享打印机,使用以下几项
Printcap name = /etc/printcap 打印机配置文件列表
Load printers = yes
printing = lprng 说明打印机类型
c) 指明日志文件
log file = /var/log/samba/%mlog %m表示登陆用户账号
d) 设置公开资源使用级别,与windows的访问控制相像
security = user
e) 设置登陆密码,可用smbpasswd –a 用户名设置密码
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd 密码保存文件
f) 下面一部分很有意思,它可以将不同的登陆账号映射为现有的用户而不用要求系统必须有此账户,即当使用windows时不必注销和更换账号,并且linux也不必添加大量账号。
username map = /etc/samba/smbusers 映射文件
如果其他设置没有改动的话,现在启动samba就可以正常通信了。但使用是否如您所愿,还需要对共享数据进行配置。
3、[homes]段
comment = Home Directories 提示信息,不重要
browseable = no 是否显示次段表示的共享,但在[homes]段不起无用,仍然显示$HOME文件夹。
writable = yes
valid users = %S
create mode = 0664 在此文件夹中创建文件的默认权限
directory mode = 0775
4、[printers]段
comment = All Printers
path = /var/spool/lpd/testsmb 假脱机目录
browseable = no 与[homes]相同
# Set public = yes to allow user ’guest account’ to print
guest ok = no
writable = no
printable = yes
5、其他的共享资源设置与[printers]和[homes]中的设置差不多。可以参考一下配置文件中的一些注释掉的设置。
其他的配置是集成3、4段的设置参数,可参考其他资料。
启动:
Samba启动主要由smbd和nmbd完成,很简单
1、 smbd –D -d1
2、 nmbd -D -d1 -n 计算机名
smbd SMB的客户进程,使用smbconf文件
nmbd 提供NetBIOS有名服务和浏览支持。
-D 表示以守护进程方式运行 –d1 表示服务启动级别,d1就行
稍等让windows找到服务,打开网络邻居找找,应该能找到了,否则检查一下网络连通情况。或用testparm工具检查一下配置文件的语法。
使用:
这里只讲一下linux下的使用,windows下不会用的话,哪还是用linux吧,哈哈。
smbclient –L 远程计算机名 –U 用户名
将列出远程计算机上的共享资源情况
smbclient ‘\远程计算机名共享名称’ –u xx
将进入到一个类似ftp的文本界面,就像使用ftp一样,稍有不同,看一下,很简单。
(假设在你这个linux系统上user001有权访问/home/SambaServer)
smbconf最上面, [global]这个区域
guest account = nobody
如果有这一行就把nobody改成user001
如果没有这一行就加一行guest account = user001
重启samba, 看看问题解决了没。
必须用Samba一个命令建立Samba 用户好久不用忘记了
smbadduer:username: xxx (xxx是登录到LINUX的smb用户名)
然后再:
smbpasswd:
反正有个一命令必须建立Sab用户不建立是访问不了的 最后重启服务 至于对不对我已经忘记了
1、共享文件与打印机服务。可以把Linux系统变成一台SMB服务器,使Windows 95以上的Windows用户能够使用Linux的共享文件和打印机,同样的Linux用户可以通过SMB客户端使用Windows上的共享资源。
2、提供使用者登录samba主机的身份认证。
3、进行Windows网络上的主机名解析。各个主机都定期的向局域网广播自己的身份信息,负责收集这些信息,提供检索的服务器也被浏览服务器,而samba能够实现这项功能。同时在跨越网关的时候samba还可以作为WINS服务器使用。
Samba服务器的项目目标
1、System组具有管理所有Samba空间的权限。
2、各部门的私有空间:各小组拥有自己的空间,除了小组成员及system组有权限以外,其他用户不可访问(包括列表、读和写)。
3、资料库:所有用户(包括匿名用户)都具有读权限而不具有写入数据的权限。
4、Develop组与test组的共享空间,develop组与test组之外的用户不能访问。
5、公共临时空间:让所有用户可以读取、写入、删除。
问题不出在Windows上,而是Linux上面的Samba
配置文件
问题,修改方法如下:
1、对Samba配置文件进行备份,然后配置一个公开的目录
cp /etc/samba/smbconf /etc/samba/smbconfbak
rm /etc/samba/smbconf
touch /etc/samba/smbconf
vi /etc/samba/smbconf
#配置一个公开的访问目录,在新创建的smbconf文件中加入以下配置
<pre name="code" class="plain">
#========= Global Settings ========
[global]
workgroup =
WORKGROUP
security = share
map to guest = bad user
#===== Share Definitions ==========
[MyShare]
#共享目录路径
path = /home/samba/share
browsable =yes
writable = yes
guest ok = yes
read only = no2、设置文件夹权限,检测配置文件
chmod -R 0777 /home/samba/share
testparm3、重启Samba服务即可解决
service smb restart# service nmb restart
0条评论