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平台,以二进制程序包和源代码两种方式安装samba服务器,并整理相关配置文件,并给出基本应用操作。
步骤:
1机器上已经存在的samba服务,版本为3021b,这是通过使用rpm命令得到的。如下:
# rpm –qa | grep samba
Samba-client-3021b-2
Samba-common-3021b-2
2将上面的samba-client-3021b-2卸载。使用命令:rpm –e samba-client-3021b-2。
3用rpm –e samba-common-3021b-2来卸载common,因为依赖关系,不成功。
4下载二进制程序包:
samba-common-3023c-4i386rpm,
samba-client-3023c-4i386rpm,
samba-doc-3023c-4i386rpm,
samba -3023c-4i386rpm。
5安装这些程序包。分别使用命令:
rpm –Uvh samba-common-3023c-4i386rpm
rpm –ivh samba-client-3023c-4i386rpm
rpm –ivh samba-3023c-4i386rpm
rpm –ivh samba-doc-3023c-4i386rpm
使用选项Uvh来安装common是因为原来的common没有被卸载,因此应进行升级安装(U)。
6安装完毕后,可以使用rpm –qa samba来确认。会输出samba-3024c-4。
7下面开始对samba服务进行配置。
8首先,修改/etc/samba/lmhosts文件。加入一行,为本机上的Windows系统IP地址和主机名。这样才可以通过Windows来访问Unix的samba服务。
9创建目录/export/sambadir作为共享目录。
命令:mkdir –p /export/sambadir
chmod 777 /export/sambadir
10修改/etc/samba/smbconf文件。这是samba的配置文件。
Security = user
Log file = /var/log/samba/log%m
Path = /export/sambadir
11使用testparam来测试修改结果。
12加入一个用户,并修改其密码。
13使用chkconfig命令来设置在启动级别5中启动samba。命令如下:
Chkconfig –list | grep smb
Chkconfig –level 5 smb on
Chkconfig –list | grep smb
14重新启动网络服务:
/etc/rcd/initd/cups stop
/etc/rcd/initd/smb restart
15然后就可以在Windows系统中通过12步中设定的用户名和密码来访问Linux。
16使用源代码的安装方式:下载samba-3023ctargz源代码包,解压。
Cd samba-3023c/source
/autogensh
/configure –prefix=/usr –localstatedir=/var –with-configdir=/etc/samba –with-privatedir=/etc/samba –with-fhs –with-quotas –with-smbmount –enable-cups –with-pam_smbpass –with-syslog –with-utmp –with-swatdir=/usr/share/swat –with-shared-modules=idmap_rid –with-libsmbclient
Make
Make install
17其余步骤与7之后相同。
你使用的是什么发行版?是centos么?如果是的话就跟随以下我的方法来设置吧。
samba这款软件应用确实非常广泛,同时也为linux和windows之间文件传输提供了一个非常轻松的方式,同时它的安装方法也是非常简单的,我的方法适用于centos68及其以前的系统。
1首先,看看系统里面有没有装samba,这是最关键的一步,不然接下来可能会出问题。默认情况下,centos系统在默认安装中应该已经安装了Samba服务包的一部分 。
rpm -qa | grep samba //默认情况下可以查询到两个已经存在的包:samba-client-3033-37el5
samba-common-3033-37el5
2上网找找samba主rpm包。
不过我这里先前就已经找过一个包,在服务器上执行wget下载就好了。
[root@chunming-pc`]# wget ftp://195220108108/linux/fedora-secondary/releases/23/Everything/s390/os/Packages/s/samba-430-01rc4fc23s390rpm然后下载完成之后使用以下命令安装即可(例如我这里下载的是samba-430-01rc4fc23s390rpm)
[root@chunming-pc`]# rpm -ivh samba-430-01rc4fc23s390rpm然后安装完成之后就是需要修改配置文件了。
找到/etc/samba/smbconf,打开它,然后把这段写入smbconf中
[global]workgroup = LinuxSir
netbios name = LinuxSir05
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /opt/linuxsir
writeable = yes
browseable = yes
guest ok = yes
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;在这里我设置的是LINUXSIR (用大写);
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
那么path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,在工作组下能看到共享文件夹。如果不想显示出来,那就设置为 browseable=no,guest ok 匿名用户以guest身份是登录;
之后就是需要建立相应目录并授权:
[root@chunming-pc ~]# mkdir -p /opt/linuxsir创建之后,会发现所属用户和组是root,只需要chown 将对应的目录所属改成samba这个软件的用户就可以了。
然后到现在配置就完成了,把服务起来iptables开放端口就可以给外网访问了。
进入配置文件:
vi /etc/samba/smbconf
根据自己要求配:
格式
共享名字
path=文件路径
public=yes、no 是否公共
writable=yes、no 是否可写
groupadd salers
groupadd managers
建立用户 useradd -G salers -N mary
再把mary加入经理组 usermod -a -G mary managers
建立 salers 文件夹 mkdir -p /share/sale_data
改变用户 chown mary /share/sale_data
改变组 chgrp salers /share/sale_data
改变权限 chmod 2755 /share/sale_data
增加samba 用户 smbpasswd -a mary
chkconfig --level 35 smb on
# smbconf
[sale]
comment = SalesDirectories
path = /share/sale_data
public = yes
read=@sale
write list = mary
#改变权限 chmod 555 /share/public_data
[public]
comment = Public Directories
path = /share/public_data
public = yes
0条评论