linux访问windows的samba配置,如何配置?详细教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux访问windows的samba配置,如何配置?详细教程相关的知识,希望对你有一定的参考价值。

这里只讲到一些很简单的配置,为了方便初学者进行win和linux的通信,也可以了解一些linux服务的配置环境。
概要:
Windows中有一个网络邻居,它提供在局域网内的小型网络资源共享方案,计算机之间使用Samba套件SMB(Session Message Block)协议服务通信。LINUX也可以通过此协议与Windows实现类似网络邻居的通信。下面将介绍SMB协议在Linux下的安装、配置和使用。
注:对于Linux的一些基本使用这里不作详细介绍。SMB基于NetBios协议工作。
安装:
Samba的安装包可从网络下载,现在的版本是2.2。我从LINUX的安装盘中找到的安装包(2.2.3),共三个,都以Samba开头,RPM包格式,用rpm –ivh xxx.rpm 解包,将把服务和工具存放到/sbin和/usr/bin下,配置文件在/etc/samba中。查找一下smb、nmb、smbclient工具是否存在。
配置:
对Samba的配置主要是对smb.conf文件的设置。配置项目和方法有机百种之多,在配置文件目录中提供一个预制的配置文件,你只要对其进行改动就行,;和#表示注释。下面将对配置中的主要项目加以说明。
注:这里只是配置将本机对外公布的数据,如何使用其它主机的服务几乎与此无关,但最好配置一下。
1、 简化配置,清晰概念
smb.conf的基本数据只有三段[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/%m.log %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的客户进程,使用smb.conf文件
nmbd 提供NetBIOS有名服务和浏览支持。
-D 表示以守护进程方式运行 –d1 表示服务启动级别,d1就行
稍等让windows找到服务,打开网络邻居找找,应该能找到了,否则检查一下网络连通情况。或用testparm工具检查一下配置文件的语法。
使用:
这里只讲一下linux下的使用,windows下不会用的话,哪还是用linux吧,哈哈。
smbclient –L 远程计算机名 –U 用户名
将列出远程计算机上的共享资源情况
smbclient ‘\远程计算机名共享名称’ –u xx
将进入到一个类似ftp的文本界面,就像使用ftp一样,稍有不同,看一下,很简单。
参考技术A 1,首先我们要知道samba的作用是做什么的?
其实在我看来samba有三点好处
a:是一个文件共享服务器,是linux与windows的沟通管道
b:可以作为打印print server提供windows远程联机打印,(有人会说windows也可以啊,但个人认为还是linux稳定些)
c:samba也可以作为wins server服务器,配合dhcp服务器可以管理NT网域。
2,samba每次启动至少有两个服务进程smbd,nmbd,它们分别的作用是?
smbd 用来管理samba主机分享什么什么目录,打印服务等
nmbd 用来管理群组,netbios name的解析
3,当samba启动的时候会用到那些端口呢?
samba启动的时候会用到137,138,139,三个端口所以我们在配置防火墙的时候会用到这三个端口的
4,samba的安装?
首先我们需要检测自己到底安装了samba服务没有,因为我们装系统的时候默认是装了samba服务的(我这里装的是fedora4)
[root@www ~]# rpm -qa |grep samba
samba-3.0.14a-2
system-config-samba-1.2.31-1
samba-common-3.0.14a-2
samba-client-3.0.14a-2
本机已经安装了 ,其实我真的挺建议大家装的时候用rpm包装,而不用tar.gz,我给大家推荐个网站可以下载所有的rpm包,只需要安装4个rpm包就可以了,以后缺少什么rpm包就直接来这里下载了,这里提醒下samba的最新版本为3.0.28版本,下载地址为
5,确认samba服务是否启动
[root@www ~]# ps aux |grep samba
root 32713 0.0 0.0 280 16 pts/0 R+ 15:46 0:00 grep samba
6.启动samba服务
[root@www samba]# service smb start
启动 SMB 服务: [ 确定 ]
启动 NMB 服务: [ 确定 ]
想要开机就启动samba服务,有两种方法a. [root@www samba]# ntsysv b.[root@www samba]# chkconfig --level 345 smb on
7,samba是装在默认是装在etc目录下的,而samba文件夹下有那些文件以及文件的含义?
[root@www ~]# cd /etc/samba/
[root@www samba]# ls
lmhosts 局域网内相关的netbios name对应的ip信息
secrets.tdb 这是加密库
smb.conf samba的主配置文件
smbpasswd samba服务器的使用者密码对应表
smbusers user模式下的Samba 服务,在登录的时候所使用的用户名必需是在/etc/samba/smbusers中定意过。只有提供smbusers中定义过的用户SAMBA才能允许登录。
8.smb.conf配置
a,首先挑几个比较重要的解释下
workgroup = MYGROUP 工作组群:同一个局域网内,要有相同的workgroup
server string = Samba Server 主机的说明,可以随便起名字
log file = /var/log/samba/%m.log 日志登录文件存放的位置
max log size = 50 最大日志大小这里的50指的是50kB
security = user 需要用户名和密码才能登录,与smbpasswd有关
= share 不需要用户名和密码进行登录
= domin 就是让你的samba作为主域控制器
[myshare] 共享目录
comment = 对这个共享目录的说明
path = /var/www/html 共享的路径
public = no 是否让所有登录者都看到这个目录
read only = no 不光可读还可执行存取
writable = yes 是否可以写入
printable = no 是否可以打印
valid users = zy 允许的登陆者
create mask = 0765 权限是目录所有者是可读可写可执行 同一个组的用户可读可写 其他用户只有读和执行的权利
9,以security = share 写一个实例
[root@www samba]# vi smb.conf

workgroup = MYGROUP
server string = 赵勇 Server
client code page = 950 想让你的samba可以在windows上显示中文就需要加入这句,没设定默认的值是850
security = share 安全级别是share
log file = /var/log/samba/%m.log 日志登录文件存放的位置
max log size = 0 表示登录档案大小不限制
下面的是自己添加的
[zy]
comment = zy samba server
path = /tmp
read only = no
public = yes
然后测试samba服务器
[root@www samba]# testparm
然后再按enter键 就会出现你的所有配置
从新启动samba
[root@www samba]# service smb restart
客户端的测试
打开网上邻居 然后查看所有网络 然后找到mygroup 找到你的samba主机
10.接下来我们要设定需要密码认证才能登陆的samba服务器

workgroup = MYGROUP
server string = zy Server
hosts allow = 192.168.1.102 127. 需要说明我windows主机地址为192.168.1.102 这里是为了安全期间 只允许192.168.1.102这个地址才能访问我的samba服务器
client code page = 950 想让你的samba可以在windows上显示中文就需要加入这句,没设定默认的值是850
security = user 安全级别是user
encrypt passwords = yes 使用加密密码对samba访问
smb passwd file = /etc/samba/smbpasswd 密码保存文件路径
log file = /var/log/samba/%m.log 日志登录文件存放的位置
max log size = 0 表示登录档案大小不限制
底下设定每个使用者的家目录,这里我有两个用户zy,yy
[homes]
comment = zy yy homes
browseable = no browseable是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
valid users = %s %s指的是任何可以登录者都可以登录的意思,比如是zy登录则[homes]变为[zy],而yy登录[homes]变为[yy]
writable = yes 可写
create mask = 0755 创建档案的权利是755
directory mask = 0755 创建目录的权力是755

[public]
comment = zy yy
path = /home/public 指定路径
public = yes 允许公开共享
writable = yes 可以写入

11,创建public目录,创建用户,并测试从新启动samba服务器
[root@www home]# mkdir public
[root@www ~]# chmod 777 public 给这个目录的权限
[root@www ~]# useradd yy 创建系统用户yy
[root@www ~]# smbpasswd -a yy 把yy用户加入smbpasswd中
New SMB password:
Retype new SMB password:
Added user yy.
[root@www ~]# useradd zy
[root@www samba]# smbpasswd -a zy
New SMB password:
Retype new SMB password:
Added user zy.
[root@www samba]# service smb restart
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
参考技术B windows里应该叫做文件共享吧,linux里才叫做samba,linux可以直接访问windows的共享文件,windows需要访问linux的samba的话,最好是把linux的防火墙先关一下比较好,然后直接安装samba组件,启动服务,设置访问帐号即可 参考技术C http://apps.hi.baidu.com/share/detail/6423214

Linux SAMBA服务器配置共享目录,访问控制,用户映射

1、操作条件
(1)已经安装Linux操作系统的PC
(2)已经安装SAMBA服务器
(3)已经存在财务部和销售部的共享目录,分别为/var/samba/finance和/var/samba/sales目录
(4)系统中存在finance用户组和sales用户组
(5)假设在本单元内的Windows2003计算机上已有销售部职员zhangy和lixy两个帐号

2、操作内容
某公司需要配置SAMBA服务,配置安全级别为user,然后设置共享目录/var/samba/finance和/var/samba/sales,共享名分别为finance和sales,分别用于财务部和销售部的共享目录,并且每个目录都只能是本部门员工可以使用。另外,设置SAMBA服务只在本地网段提供(192.168.1.0/24)。最后分别为finance用户组的成员jack和mary以及sales用户组的成员john和sally建立帐号,并设置登录口令。作为管理员,需要做以下工作:
(1)设置共享目录/var/samba/finance,只有finance用户组可以访问。
(2)设置共享目录/var/samba/sales,只有sales用户组可以访问。
(3)设置访问控制,只有192.168.1.0/24可以访问。
(4)添加用户jack、mary、john和sally到samba用户文件,并设置口令使其能正确访问SAMBA服务器,口令分别为jack1234、mary1234、john1234和sally1234。
(5)假设本单元内的Windows 2003计算机上已有销售部职员zhangy和lixy两个帐号,现在希望这两个用户可以在访问Samba服务器上的共享资源时,可直接使用自己的Windows帐号进行访问。

3、操作要求
(1)设置共享目录/var/samba/finance,只允许finance用户组可以访问。
(2)设置共享目录/var/samba/sales,只允许sales用户组可以访问。
(3)设置访问控制,只有192.168.1.0/24可以访问。
(4)添加用户jack、mary、john和sally到samba用户文件,并设置口令使其能正确访问SAMBA服务器。
(5)能够设置用户映射。

参考技术A [global]

# ----------------------- Network Related Options-------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to thehostname
#
# Interfaces lets you configure Samba to use multiple interfaces
# If you have multiple network interfaces then you can list the ones
# you want to listen on (never omit localhost)
#
# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
# specifiy it as a per share option as well
#
workgroup = MYGROUP
server string = Samba Server Version%v

; netbios name = MYSERVER

interfaces = lo eth0
hosts allow = 192.168.1.
user map =/etc/samba/smbusermap

# --------------------------- Logging Options-----------------------------
#
# Log File let you specify where to put logs and how to split them up.
#
# Max Log Size let you specify the max size log files should reach

# logs split per machine
log file = /var/log/samba/log.%m
# max 50KB per log file, thenrotate
max log size = 50

# ----------------------- Standalone Server Options------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

security = user
passdb backend = tdbsam

# ----------------------- Domain Members Options ------------------------
#
# Security must be set to domain or ads
#
# Use the realm option only with security = ads
# Specifies the Active Directory realm the host is part of
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.
#
# Use password server option only with security = server or if you can't
# use the DNS to locate Domain Controllers
# The argument list may include:
# password server = My_PDC_Name[My_BDC_Name] [My_Next_BDC_Name]
# or to auto-locate the domain controller/s
# password server = *

; security = domain
; passdb backend = tdbsam
; realm = MY_REALM

; password server =<NT-Server-Name>

# ----------------------- Domain Controller Options------------------------
#
# Security must be set to user for domain controllers
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.
#
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
#
# Domain Logons let Samba be a domain logon server for Windows workstations.
#
# Logon Scrpit let yuou specify a script to be run at login time on theclient
# You need to provide it in a share called NETLOGON
#
# Logon Path let you specify where user profiles are stored (UNC path)
#
# Various scripts can be used on a domain controller or stand-alone
# machine to add or delete corresponding unix accounts
#
; security = user
; passdb backend = tdbsam

; domain master = yes
; domain logons = yes

# the login script name depends on themachine name
; logon script = %m.bat
# the login script name depends on theunix user used
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
# disables profiles support byspecifing an empty path
; logon path =

; add user script = /usr/sbin/useradd"%u" -n -g users
; add group script = /usr/sbin/groupadd"%g"
; add machine script = /usr/sbin/useradd-n -c "Workstation (%u)" -M -d /nohome -s /bin/false"%u"
; delete user script = /usr/sbin/userdel"%u"
; delete user from group script =/usr/sbin/userdel "%u" "%g"
; delete group script =/usr/sbin/groupdel "%g"

# ----------------------- Browser Control Options----------------------------
#
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
#
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
#
# Preferred Master causes Samba to force a local browser election onstartup
# and gives it a slightly higher chance of winning the election
; local master = no
; os level = 33
; preferred master = yes

#----------------------------- Name Resolution -------------------------------
# Windows Internet Name Serving Support Section:
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
#
# - WINS Support: Tells the NMBD component of Samba to enable it's WINSServer
#
# - WINS Server: Tells the NMBD components of Samba to be a WINS Client
#
# - WINS Proxy: Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client,for this to work there must be
# at least one WINS Server on the network. The default is NO.
#
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups.

; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes

; dns proxy = yes

# --------------------------- Printing Options-----------------------------
#
# Load Printers let you load automatically the list of printers rather
# than setting them up individually
#
# Cups Options let you pass the cups libs custom options, setting it toraw
# for example will let you use drivers on your Windows clients
#
# Printcap Name let you specify an alternative printcap file
#
# You can choose a non default printing system using the Printing option

load printers = no
cups options = raw

; printcap name = /etc/printcap
#obtain list of printers automaticallyon SystemV
; printcap name = lpstat
; printing = cups

# --------------------------- Filesystem Options---------------------------
#
# The following options can be uncommented if the filesystem supports
# Extended Attributes and they are enabled (usually by the mount option
# user_xattr). Thess options will let the admin store the DOS attributes
# in an EA and make samba not mess with the permission bits.
#
# Note: these options can also be set just per share, setting them inglobal
# makes them the default for all shares

; map archive = no
; map hidden = no
; map read only = no
; map system = no
; store dos attributes = yes

#============================ Share Definitions==============================

[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

[sales]
comment = Home Directories
path=/var/samba/sales
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

[finance]
comment = Home Directories
browseable = yes
path=/var/samba/finance
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

# Un-comment the following and create the netlogon directory for DomainLogons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no

# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes

# A publicly accessible directory, but read only, except for people in
# the "staff" group
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff

以上是smb.conf内的配置。
增加用户和组,并设置好用户组的隶属关系。
用smbpasswd -a 增加smb访问密码。本回答被提问者和网友采纳

以上是关于linux访问windows的samba配置,如何配置?详细教程的主要内容,如果未能解决你的问题,请参考以下文章

linux用samba共享, 为啥在windows下访问时只能看到文件夹, 而文件不可见?

linux上的samba服务器端口被修改了,windows上要怎么才能访问,即windows上怎么指定samba服务器的端口?

怎样用Samba实现windows和linux之间文件的网络访问

linux无法访问windows samba 提示: Firefox 不知道如何打开此地址,因为协议 (smb) 未和任何程序关联。

SUSE11配置samba服务器(实现Windows访问Linux文件系统)

如何在Windows计算机访问Samba共享