Samba服务在Ubuntu服务器版本中默认并没有安装。
1.Samba软件包的安装
在Ubuntu的终端中输入一下命令:
#sudo
apt-get install samba
#sudo apt-get install smbclient
2.Samba服务器的启动与关闭
启动Samba服务器只需执行如下命令:
#sudo
/etc/init.d/samba start
启动Samba服务器后,可以使用ps命令查看进程:
#ps -aux
可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中,主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进程是随着smbd进程启动而启动。
关闭Samba服务,使用命令:
#/etc/init.d/samba
stop
或者:
#smbcontrol smbd shutdown
-----------此命令只关闭smbd
重新启动Samba服务器:
#/etc/init.d/samba
restart
3.配置Samba服务
Samba服务器主要配置文件为/etc/samba/smb.conf,并且可以将NetBIOS名与主机的对应关系写在/etc/samba/lmhosts文件中。
(1)在Windows系统中不用输入密码访问Linux共享目录
在Linux共享一个目录,将建立好的目录的设置信息写入/etc/smb.conf文件即可。如:若共享/home/share目录,要在Windows系统中访问这个共享的目录,假设Windows主机的IP为192.168.0.11,Linux主机的IP为192.168.10,进行如下操作:
#mkdir
/home/share
#vi smb.conf
将文件中的内容做如下相应修改:
security=user
改为security=share
在文件结尾添加如下行:
[share]
comment=this is Linux share
directory
path=/home/share
public=yes
writable=yes
保存退出,启动Samba服务:
#/etc/init.d/samba
start
设置完成!
在Windows
下访问共享目录,可点击运行,输入
\\192.168.0.10\share
这样就能以匿名用户访问共享目录share了。
其中配置文件smb.conf主要可以分为两部分:前一部分为Global
Settings(全局部分),全局部分能够对主机的相关信息进行配置,而且能够配置访问时是否需要密码。常用选项有:
workgroup=MSHOME
这部分是Windows主机的工作组明,Windows主机必须在同一个工作组中,
server
string=%h
server(Samba,Ubuntu)
这个选项是显示在Windows上的信息,可以自定义,其中%h为Samba配置文件中的变量,代表了主机名,即使用hostname命令得到的主机名。
log
file=/var/log/samba/log.%m
这里指定了Samba服务的日志文件所在位置,其中%m也是samb.conf文件的变量,代表了登录主机的NetBIOS名。Windows主机的NetBIOS命令可以通过鼠标右键打开“我的电脑/属性/计算机明/更改/其他“来查看。
max log
size=1000
设置日志文件的最大尺寸,大小为KB。
需要注意的是在smb.conf文件中“#”和“;”都是注释。
在smb.conf文件中跌入部分就是共享部分,在此部分中需要将共享的目录添加到此文件中。此部分的格式和主要选项如下:
[share]
----------在Windows主机中看到的共享文件名,不一定与Linux中共享的文件名一致,
comment=this is Linux
share directory ----------对此目录的说明
path=/home/share
-------Linux系统真实的共享目录,必须为绝对路径
public=yes
-------是否允许所有人都能够看到此目录,no为看不到
writable=yes
-------是否允许用户在此目录下可写,no为不可些,如果可写,还需要目录具有w权限
read only=yes
--------设置用户是否只读
create mode=0700 --------如果有可写权限,建立的文件默认的权限掩码
directory
mode=0755
--------如果有可写权限,建立的目录默认的权限掩码
(2)在Windows系统之需要输入密码才能访问Linux共享目录
在smb.conf文件中,默认行是:
security=user
这行设置了Samba的安全等级,Samba一共可以设置四个安全登记,由底到高分别为:
share:这个选项表示任何人都可以不需要输入密码登录。
user:这个是Samba的默认级别,要求每个用户必须输入密码才能登录。
server:user级别的密码都是保存在本机上,而server级别的密码和用户名都保存在另一台主机上。
domain:这个级别要求网络里必须有一台Windows的域控制器,验证工作由域控制器来完成。
需要注意:只要输入用户名和密码的级别,其用户名一定首先也是Linux系统内的用户。
如果将Samba的安全级别设置了user级别,那么用户登录Samba主机必须输入密码,此用户必须是Linux中的/etc/passwd文件存在的用户,smb.conf文件的配置如下:
在smb.conf文件中的security=user下加入:
smb
passwd file= /etc/samba/smbpasswd
在共享部分添加:
[homes]
comment=Home
Directories
valid
users=%S
其中%S为一个变量,它代表了登录用户的用户名,既认证的用户登录后就能进入自己的宿主目录。然后在
/etc/samba下建立smbpasswd文件并加入用户:
#touch /etc/samba/smbpasswd
#smbpasswd
-a user1
NEW SMB password:
Retype new SMB
password:
这样就可以让user1登录Samba主机了。其中smbpasswd命令的格式为:
#smbpasswd
[-选项]
用户名
常见选项有:
-a:新添加一个Samba用户。
-d:禁用一个Samba用户。
-e:使禁用的Samba用户解禁。
如果需要对设置进行检测,我们可以直接使用testparm命令。
(3)在Linux中访问Windows的共享目录
在Linux中,可以直接将Windows中的共享目录挂在到本机中,然后就像操作自己主机上的文件一样进行操作。我们可以使用smbclient命令查看指定主机的共享目录信息。
#
smbclient -L //[目标主机IP地址]
当查看到Windows系统中的共享目录后,可以使用smbmount命令来进行挂载共享的目录,smbmount命令的格式为:
#smbmount
'\\Windows主机IP\共享的目录名' 挂载点 -O
username
(4)在Linux中访问Linux主机的共享目录
跟访问Windows中的共享目录一样,用自己的共享目录测试如下:
===================================================
Samaba常见的故障排除
1.限定用户访问无效
管理员限定了只有用户user1才可以访问共享目录/sharedoc,测试时却发现用户user2也可以访问,甚至所有的用户都可以访问!这是一个很容易出错的问题,我们看看在Samba配置文件/etc/samba/smb.conf中的相应设置段:
[sharedoc]
path=/sharedoc
valid
user=user1
writable=yes
乍一看没什么问题,用testparm工具测试一下看看:
#testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[sharedoc]"
Unknown parameter encountered: "valid user"
Ignoring unknown parameter "valid user"
.......
[sharedoc]
path=/sharedoc
read only=No
testparm是Samba提供的一个十分有用的测试工具,它除显示Samba所有配置参数默认值外,还能检测参数的实际取值,并与Samba管理员所设置的取值进行对比,检测smb.conf文件有没有包含任何无效参数。
通过测试发现,设置共享资源时,参数“valid users”少写了个"s“ ,变成了"valid
user",结果在读取配置文件时检测为未知参数并忽略了它,这样这条参数就无效了,也就相当于没有设置有效用户,则默认共享目录为所有用户都可以访问,就出现了前面提到的问题。可见如果不小心设置错误,后果是相当严重的。
Samba的配置选项语法要求严格,建议配置好后用testparm检测一下看看是否有语法错误,以免发生此种现象。
2.用户权限设定无效
在解决了限定用户的问题,又发现明明设置了"writable=yes",赋予user1写权限,但user1在Windows客户端却无法对这个共享目录进行写操作。
这里有个概念问题,尽管Samba授予用户user1对共享资源具有写权限,但底层Linux系统许可不允许user1在共享资源上添加文件或目录。这时,唯有更改该目录的Linux文件权限设置,更改完成后,才可以进行前述的写入操作。也就是说,Linux系统中用户user1对此目录的权限与Samba服务中授予用户user1对此目录的操作权限要取一个交集!
观察共享目录/sharedoc的权限:
#ls -ld /sharedoc
drwxr-xr-x 2 root root 4096 2月 6 23:54 /sharedoc
在根目录下只有root只有写操作,root创建的目录/sharedoc自然所有者为root,所属组为root管理员,看到用户user1并不是所属组的成员更不是所有者,属于其他人(others),其他成员只具备"r-x"即可读可执行的权限,并不具备写权限,所以即便Samba中授权用户user1有写权限也无济于事。
如果要授予user1可以进行写操作,最简单的办法就是赋予其他人对目录具备写权限:
#chmod o+w /sharedoc
正确的解决方法最好是将设置权限的用户加入到目录对应的组中,对组授权,进行统一管理。
3.解决中文乱码问题
在Windows中看到Linux的共享文件和目录中文都显示乱码。
要解决这个问题,首先执行命令locale查看一下系统的字符集:
#locale
LANG=zh_CN.GB18030
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
.........
然后根据locale查到的字符集设置,修改配置文件smb.conf中的"[Global]"全局参数设置段:
(1)如果locale是zh_CN.UTF-8,添加如下三行设置:
display charset=UTF-8
unix charset=UTF-8
dos charset=UTF-8
(2)如果locale是zh_CN.GBK、zh_CN.gb2312或zh_CN.GB18030,添加如下三行设置:
display charset=cp936
unix charset=cp936
dos charset=cp936
重新启动Samba服务,则无论从Windows网上邻居还是直接用DOS命令查询,均可显示正常中文。
4.如何不显示隐藏文件
如果访问宿主目录,那些以"."开头的隐藏文件都显示得一清二楚,那么就有可能一个误操作把重要的配置文件删除了,这是很危险的。
要让隐藏文件不显示,需要在Samba配置文件的[homes]段添加如下设置:
veto files=/.*/
"veto
files"参数为设定禁止文件,指定了既看不见又不能访问的文件和目录列表,列表中每个条目必须用斜杠(/)分开,星号(*)和问号(?)通配符能够用于指定多个文件和目录。所以"/.*/"就表示禁止所有以"."开头的文件。
同时还可以做其他一些限定,如Samba所有共享目录中都禁止显示包含词Windows的任何文件,以".exe"结尾的任何文件和包含词bill的任何目录,可以在[Global]段添加如下行:
veto files=/*Windows*/*.exe/*bill/
需要注意的是:
(1)如果要禁止显示隐藏文件和包含词newfile的文件,不能用如下的书写方式:
veto files=/.*/
veto files=/*newfile*/
这样设置,第一行的禁止显示隐藏文件将不能生效,必须写成:
veto files=/.*/*newfile*/
(2)设置"veto
files"参数会影响Samba的性能,因为在列出文件和查询期间,扫描文件和目录时,为了匹配,Samba将被迫搜寻检查所有的文件和目录。
Samba的故障一般排除方法如下(参考):
1.确定故障的症状。可能会有人告诉你症状或你观察到第一手的症状。
2.因为涉及的是网络系统,确定故障发生在本地还是远程,症状经常会帮助你做决定,或建议能够先进行测试,以便决定。
3.决定了故障所在的位置后,就集中用一套标准测试来确定故障的原因,并尝试消除症状,反复进行,直到解决问题。
有关诊断Samba和Windows客户之间故障的工具:
smbclient:检验可以访问的Samba服务器以及要求的共享已被定义。
smbstatus:检查水正对Samba服务器打开连接,在访问什么共享。
nmblookup:检测网络上的注册名称。
DOS net view命令:从Windows系统检查服务器上都提供哪些共享。
DOS netstat:检查NetBIOS名称、适配器状态信息等。
tcpdump:捕获网络文件信息包,检查Windows客户端和服务器的对话。
Ethereal:详细分析信息包,检查Windows客户端和Samba之间出现的故障。
相关推荐
Ubuntu配置samba服务器(详细步骤)是值得最开始搭建samba服务器初学者来说的一个福利,希望大家多多支持我谢谢。
Ubuntu 下如何搭建 Samba 在 Ubuntu 系统中搭建 Samba 服务器可以实现与 Windows 系统之间的互联,以下是搭建 Samba 服务器的步骤: 1. 安装 Samba 在 Ubuntu 系统中,可以使用 apt-get 命令来安装 Samba,命令为...
在Linux环境下搭建Samba服务器是一种常见的需求,尤其是在需要实现Linux系统与Windows系统之间文件共享的场景中。Samba能够提供一个兼容Windows SMB协议的服务,使得Linux主机可以作为SMB/CIFS服务器与Windows客户端...
配置ubuntu12.04 samba服务器的话,把必要的软件安装之后,还需要修改配置文件,可以先把系统的配置文件备份,这个拷贝过去替换系统的文件,把名字了。次配置文件本人一验证,可以使用,配置文件的最后12行是我自己...
《Samba服务器搭建详解》 Samba服务器是一种在Linux或Unix系统上运行的服务,它使得这些系统能够与使用Microsoft Windows的设备共享文件和打印机。在本文中,我们将深入探讨Samba服务器的搭建过程,以及所需的...
在Ubuntu 13.04系统中,搭建Samba服务器可以让Linux主机与Windows设备之间实现资源共享。以下是详细的步骤和知识点: 1. **Samba软件包的安装** 在Ubuntu 13.04中,Samba服务并未预装。要安装Samba,需要使用`apt-...
本服务器搭建环境为:ubuntu18.04 和 windows 10 家庭版。 本文没有理论介绍,只是一个 samba 服务搭建手册。主要是为了让windows系统和linux虚拟机之间,便捷的传输文件。
Samba服务器搭建是一个重要的任务,尤其对于那些希望在Windows和Unix/Linux系统之间实现资源共享的用户。Samba是一个开源的工具套件,它实现了Server Message Block (SMB)协议,使得Linux和Unix系统能够与Windows...
标题中的“ubuntu下如何搭建samba.docx”指的是在Ubuntu操作系统中设置Samba服务器的教程。Samba是一个开源软件,允许Linux/Unix系统与Windows系统之间进行文件和打印服务共享,实现了SMB/CIFS协议。在Ubuntu下搭建...
在 Ubuntu 中,samba 服务默认情况下是关闭的,需要手动启动,可以使用以下命令: sudo /etc/init.d/samba start 要关闭 samba 服务,可以使用以下命令: sudo /etc/init.d/samba stop 配置 Ubuntu samba 服务 ...
- `workgroup`: 定义了Samba服务器所在的组名称。 - `server string`: 描述了服务器的基本信息。 - `security`: 安全模式,这里设置为`share`表示任何用户都可以无需密码访问共享。 - `public`: 如果设置为`yes`,则...
标题中的“ubuntu下如何搭建samba.pdf”是一个指导教程,教你如何在Ubuntu操作系统上设置Samba服务器。Samba是一个开源软件,它允许Linux/Unix系统与Microsoft Windows系统之间进行文件和打印机共享。在这个过程中,...
在嵌入式系统中,ARM处理器因其低功耗和高性能的特点被广泛应用,而Samba服务器则是将Linux...希望这篇详尽的教程能对你在ARM板上搭建Samba服务器有所帮助。如果你在移植过程中遇到困难,随时留言,我会乐意提供帮助。
在Linux环境中,Samba服务器是一种强大的工具,它允许Linux系统与Windows网络无缝集成,实现文件和打印服务的共享。本文将深入探讨如何在Linux上配置Samba服务器,并提供详尽的步骤,帮助初学者理解这一过程。 首先...
在 Ubuntu 16.04 下搭建 Samba,实现 Linux 与 Windows 之间的资源共享 Samba 是 SMB(Server Message Block)的一种实现办法,主要用来实现 Linux 系统的文件和打印服务。Linux 用户通过配置 Samba 服务器可以实现...
在Ubuntu系统中搭建环境,尤其是Samba和TFTP服务,是很多网络管理员和开发者需要掌握的基本技能。Samba主要用于在Linux和Windows之间实现文件共享,而TFTP则是一种轻量级的文件传输协议,常用于远程设备的固件升级...
本教程将深入解析如何在Linux环境下配置Samba服务,并通过实际案例来指导操作过程。 首先,我们需要了解Samba的基本概念。Samba是一个开源软件,其主要功能是作为Windows网络中的文件服务器,它实现了Microsoft的...
最后,文章还提及了在Windows 7中如何通过网络邻居共享Samba服务器,说明了Samba的使用场景,包括文件共享、打印机共享等,强调了Samba在嵌入式环境搭建中的作用。 总结以上内容,我们可以看到Samba作为一种跨平台...
本文档详细介绍了一种在Ubuntu环境下搭建并配置Samba服务器的方法,包括从软件包安装、配置文件调整、用户管理到最终的服务重启等全流程操作。 #### 步骤详解 ### 1. 安装Samba软件包 首先确保已安装必要的Samba...