Linux下如何搭建SAMBA服务器,第1张

1、相关的文件

samba-common samba服务器的主文件

samba 服务器端的软件

samba-client 客户端的软件

redhat-config-samba 图形界面的配置文件

samba-swat web配置工具

2、步骤

1)安装SAMBA服务器

(1)检测是否安装samba

#rpm -qa | grep samba

(2)安装:将第一张光盘放入光驱

#mount /mnt/cdrom

#cd /mnt/cdrom/RedHat/RPMS

#ls samba

#rpm -ivh samba-common-227a-790i386rpm

#rpm -ivh samba-227a-790i386rpm

#rpm -ivh samba-client-227a-790i386rpm

#cd /

#umount /mnt/cdrom

#eject

2)设置samba的密码文件

(1)成批用户密码文件的生成

#cat /etc/passwd | mksmbpasswdsh > /etc/samba/smbpasswd

(2)删除一些无用的shell帐户

#vi /etc/samba/smbpasswd

从1到9。

(3)设置目录和文件的权限

#chown rootroot /etc/samba/smbpasswd

#chmod 500 /etc/samba

#chmod 600 /etc/samba/smbpasswd

#ll -d /etc/samba

(4)单个用户设置samba密码

#useradd wujianan

#passwd wujianan

#smbpasswd -a wujianan

3)启动samba服务器

#service smb start

#pstree | grep mbd

#smbclient -L localhost或者IP地址

4)配置samba的共享

#vi /etc/samba/smbconf

[global]

workgroup = workgroup

server string = samba server

;hosts allow = 1921681 1921682 127

printcap = /etc/printcap

load prints = yes

printing = cups

;guest account = pcguest

log file = /var/log/samba/%mlog

max log size = 0

安全选项

security = user(share)

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd

;interfaces = 192168122/24 192168132/24

dns proxy = no

设置每个用户主目录共享

[homes]

comment = Home Directries

browseable = no 不允许浏览共享文件夹

writeable = yes 允许写入

valid users = %s

create mode = 0664

directry mode = 0775

[printers]

comment = All prints

path = /var/spool/samba

browseable = no

printable = yes

[doc]

comment = doc

path = /home/doc

browseable = no

writeable = no或 read only = yes

guest ok = yes

示例:

要求:创建一个共享目录,所有用户都可访问,权限为只读。

#vi /etc/samba/smbconf

workgroup = workgroup

server string = samba server

netbios name = RH9

dos charset = cp936

unix charset = cp936

secrity = share

[read]

comment = read

path = /home/read

public = yes

guest ok = yes

read only = yes

保存退出

#mkdir /home/read

#service iptables stop

#service smb start

#testparm

\\ip地址

创建一个可写的目录,允许所有用户可写入。

[write]

comment = write

path = /home/write

public = yes

guest ok = yes

writeable = yes

保存退出

#mkdir /home/write

#chmod 777 /home/write

#service iptables stop

#service smb restart

为指定的用户和组访问samba服务器

#useradd mehost

#passwd wujianan

#smbpasswd -a wujianan

#mkdir /var/samba/wujianan

#chown stu1stu1 /var/samba/wujianan

#vi /etc/samba/smbconf

security = user

[wujianan]

comment = wujianan

path = /var/samba/wujianan

valid users = wujianan

public = yes

writeable = yes

保存退出

#service smb restart

最简单的**服务器的配置

#vi /etc/samba/smbconf

workgroup = workgroup

server string = movies server

guest account = nobody

security = share

client code page = cp936

wins support = yes

[movies]

comment = movies

browseable = yes

writeable = no

path = /movies

guest ok = yes

read only = yes

保存退出

#mkdir /movies

#useradd admin -d movies

#passwd admin

#vi /etc/passwd

admin:x:0:500::/movies:/bin/bash

保存退出

#ntsysv

选择smb和vsftp项

#service smb start

#service vsftpd start

#service iptables stop

我是这么理解的,不知道对不对。我们现在所说的samba服务器,是有一个samba项目小组在linux下实现了SMB/CIFS协议,也因此windows和linux才实现了文件互访,在此之前是不能互通的。因为,SMB/CIFS协议在最开始的时候,是微软的私有协议,并不能和其他操作系统互通的。所以,我觉得,samba服务是属于linux的,windows下面没有samba服务这个概念,但是却依然有文件共享这个功能,比如,我们所熟悉的网上邻居就是SMB/CIFS这两个协议的典型应用。所以如果你想在windows下面搭建samba服务器的效果,那么其实很简单,只需要将某一个文件夹共享,就可以了。这样linux下通过mount等命令就可以访问了。 例如,你的windows的共享名是share, ip地址是19216812,用户名是administrator,密码是123,想要挂载到linux的/mnt目录中,使用以下命令:

mount -o username=administrator //19216812/share /mnt

回车后输入密码,就可以了

零:场景:

| 共享名 | 路径 | 权限 |

| SHAREDOC | /smb/docs | 所有人员包括来宾均可以访问 |

| RDDOCS | /smb/tech | 仅允许特定组的用户进行读写访问 |

特定组的组名为RD,目前的Alice、Jack、Tom三个人

一、 安装Samba

//或者使用rpm安装

//查看安装版本信息

Tips:也之前的SAMBA 3有一个重大的变化是:security不再支持share

WARNING: Ignoring invalid value 'share' forparameter 'security'

二、 配置Samba服务器

1创建共享目录(假设共享/smb目录下的文件)

2配置内核参数

3配置smbconf文件

1)备份原配置文件:

2)删除原有所有内容,添加如下内容:

[global]

workgroup=BIGCLOUD

netbios name=ZZSRV2

server string=Samba Server

security=user

map to guest = Bad User

[SHAREDOCS]

path=/smb/docs

readonly=yes

browseable=yes

guest ok=yes

[RDDOCS]

path = /smb/tech/

public = no

writable = yes

write list = @RD

validusers = @RD

三、 创建用户并分配权限

1创建操作系统用户

2修改用户的组

uid=1000(alice) gid=1000(alice)groups=1000(alice),1003(RD)

3创建SAMBA用户

4修改目录权限

5查看服务状态

drwxrwx--- 2 RD RD 4096 Aug 11 17:08 /smb/tech/

smbservice - Samba SMB Daemon

Loaded: loaded(/usr/lib/systemd/system/smbservice; enabled)

Active: active (running) since Tue2014-08-12 11:38:29 CST; 14s ago

Main PID: 16807 (smbd)

Status: "smbd: ready to serveconnections"

CGroup: /systemslice/smbservice

16807 /usr/sbin/smbd

16808 /usr/sbin/smbd

systemd[1]:Starting Samba SMB Daemon

smbd[16807]:[2014/08/12 11:38:29255341, 0]/lib/util/become_daemonc:136(daemon_ready)

systemd[1]:Started Samba SMB Daemon

smbd[16808]:STATUS=daemon 'smbd' finished starting up and ready to serve connectionsfailedto retrieve printCCESSFUL

Hint:Some lines were ellipsized, use -l to show in full

四、 测试连通性

1Linux上测试

Domain=[BIGCLOUD] OS=[Unix] Server=[Samba 411]

Domain=[BIGCLOUD] OS=[Unix] Server=[Samba 411]

2Windows上测试

1)使用虚拟机(如VMware)安装Linux(如Ubuntu)系统时,为方便Windows和Linux文件互通方便(主要是Windows下访问Linux文件了),一般都会在LINUX下安装Samba服务器。

在XP下,可以通过[//1921683104](file://1921683104/)(Linux系统IP)进行访问其共享文件,但在WIN7或VISTA下却不行,因为Samba只支持NTLM认证,而WIN7或VISTA则采用NTLMv2认证,因此必须经过一些设置才行,具体设置如下:

开始->运行->secpolmsc->本地策略->安全选项->网络安全:LAN管理器身份验证级别->发送 LM 和 NTLMv2 ,如果已协商,则使用NTLMv2 (会话安全 &)->完成设置。(如下图所示)

这时,再使用[//1921683104](file://1921683104/)(Linux系统IP)就可以访问Linux共享文件了 _

2)C:>netuse /del

您有以下的远程连接:

继续运行会取消连接。

您想继续此操作吗 (Y/N) [N]: y

命令成功完成。

C:>netuse \19216818812 P@ssw0rd /U:alice

命令成功完成。

3)打开资源管理器进行写入测试

4)如果windows下登录samba服务器后无法访问linux下共享目录,提示没有权限。则检查:

a、确保linux下防火墙关闭或者是开放共享目录权限;

b、确保samba服务器配置文件smbconf设置没有问题,可网上查阅资料看配置办法 ;

c、确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smbconf中允许了这项操作。

一、安装Samba组件

如果选择完全安装Red Hat Linux 90,则系统会默认安装Samba组件。我们可以在终端命令窗口输入以下命令进行验证:

[root@ahpeng root] rpm -qagrep samba

如果结果出现以下所示的5个软件包,则表示已经安装:

samba-swat-227a-790

samba-227a-790

redhat-config-samba-104-1

samba-common-227a-790

samba-client-227a-790

如果没有安装过Samba软件包,则可以插入第1张安装光盘,然后鼠标依次单击“主菜单→系统设置→添加/删除应用程序”菜单项,打开“软件包管理”对话框,在该对话框中找到“Windows文件服务器”选项,确保该选项处于选中状态,然后单击“更新”按钮即可开始安装。

你也可以把第1张安装光盘插入光驱,然后在终端命令窗口输入以下命令:

[root@ahpeng root]# cd /mnt/cdrom/RedHat/RPMS

[root@ahpeng RPMS]# rpm -ivh samba

[root@ahpeng RPMS]# rpm -ivh redhat-config-samba-104-1noarchrpm

二、Linux主机访问Windows主机

安装好Samba之后,就有了与Windows互相访问的基础。这里先介绍一下如何用字符命令方式访问Windows宿主机的共享资源。

1、查询宿主机的共享资源

可以使用“smbclient –L WindowsHostName”命令(此处的WindowsHostName用Windows主机名代替)。本例是要查询Windows主机Peter 上的共享资源,可以在终端窗口输入“smbclient –L Peter”命令,然后回车即可看到Windows主机的共享资源。

2、连接宿主机的共享目录

可以使用“smbclient //WindowsHostName/ShareName”命令来连接Windows主机上的某个共享文件夹,如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName –U UserName”命令。例如要连接Windows主机Peter上的共享目录Share,我们可以在终端窗口输入“smbclient //Peter/Share”命令然后回车即可。

如果连接成功,即可出现“smb:>”提示符,在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。

Smb支持的命令有大约40个命令,可以很方便地对共享目录进行删除、重命名、切换目录等操作。如果要列出共享目录“Share”下的具体内容,可以使用ls命令。要删除其下的testtxt文件,可以使用“del testtxt”命令。共2页。

3、映射网络驱动器

我们知道,Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹来使用。在Linux下可以借助于 smbmount命令来实现,具体的命令参数是“smbmount //WindowsHostName/ShareName /mnt/smbdir”(此处的ShareName指代Windows共享资源名称,smbdir指代挂载点名称)。假设要将Windows主机 Peter下的共享文件夹Share映射为/mnt/WinShare目录,具体步骤是:

首先在/mnt目录下创建一个目录,假设为/mnt/WinShare;

然后打开终端命令窗口,运行“smbmount //Peter/Share /mnt/WinShare”即可。

现在再在文件管理器里打开/mnt/WinShare目录可以看到共享目录的内容,要卸载该映射目录,可以使用umount命令。

4、用Nautilus访问Windows主机

借助Gnome桌面下的文件管理器Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是Nautilus只是提供访问Windows主机的图形界面,具体的底层操作还是借助于Samba客户端来完成。

在Gnome桌面环境下,单击“主菜单→网络服务器”菜单项,即可用Nautilus文件管理器查看工作组列表。双击工作组名称,即可看到其下的Windows主机。

双击其中的某台Windows主机图标,即可看到该主机的共享文件夹,可以看到这和Windows下的网络邻居几乎一样。

由于Nautilus本身就是Red Hat Linux的文件管理器,所以我们可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等等(对于windows 2000/XP主机还需要考虑该共享资源的权限设置)。

三、Windows主机访问Linux主机

要想让Windows宿主机能够访问Linux虚拟机,就必须在Linux虚拟机上启动Samba服务。在启动之前,还需要对Samba服务的属性进行配置,例如指定Linux虚拟机的共享目录、所在的工作组名称等。

1、配置Samba服务器

在以前版本的Red Hat Linux,我们必须直接修改Samba配置文件smbconf,或者使用SWAT对Samba进行全方位的设置。Red Hat Linux 90新引入了一个图形化的Samba服务器配置工具,可以让我们很方便地对Samba服务器进行配置。以root用户身份登录系统,单击“主菜单→系统设置→服务器设置→Samba服务器”菜单项,即可打开Samba服务器配置对话框。也可以在终端命令窗口输入“redhat-config- samba”,来访问Samba服务器配置对话框。

首先对Samba服务器的基本设置和安全选项进行配置,单击配置对话框上的“首选项→服务器设置”菜单项,即可打开服务器设置对话框。

基本设置:在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。

安全设置:然后进行Samba服务器安全设置,这里一共有4个选项。

“验证模式”代表如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码;“验证服务器”代表对于“共享”验证模式,无需启用此项设置;“加密口令”选项应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;“来宾账号”代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。

添加共享目录:单击Samba配置对话框工具栏上的“增加”按钮。在打开的对话框中的“基本”标签页上,指定(共享)目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。

2、启动Samba服务器

打开终端命令窗口,输入“/sbin/service smb start”命令,即可出现以下提示信息,表示Samba服务已经启动。

# /sbin/service smb start

启动SMB 服务 [确定]

启动NMB 服务 [确定]

接下来在Windows里打开“网络邻居”,就可以看到我们刚才设置的Samba服务器了

许多用户还不知道win7系统如何配置samba服务器?samba服务能提供文件共享服务,它的优点在于很方面在windows和linux之间进行文件共享服务。如何配置samba服务器呢?这个软件配置起来也不难,使用也非常简单。接下去我们一起看下配置方法。

具体方法如下:

一般你装系统的时候会默认安装samba,如果没有安装,只需要运行这个命令安装(CentOS):

“yuminstall-ysambasamba-client”

Samba的配置文件为/etc/samba/smbconf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部分:

[global]

workgroup=MYGROUP

serverstring=SambaServerVersion%v

security=user

passdbbackend=tdbsam

loadprinters=yes

cupsoptions=raw

[homes]

comment=HomeDirectories

browseable=no

writable=yes

[printers]

comment=AllPrinters

path=/var/spool/samba

browseable=no

guestok=no

writable=no

printable=yes

主要有以上三个部分:[global],[homes],[printers]。

[global]定义全局的配置,”workgroup”用来定义工作组,相信如果你安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的”MYGROUP”改成”WORKGROUP”(windows默认的工作组名字)。

security=user#这里指定samba的安全等级。关于安全等级有四种:

share:用户不需要账户及密码即可登录samba服务器

user:由提供服务的samba服务器负责检查账户及密码(默认)

server:检查账户及密码的工作由另一台windows或samba服务器负责

domain:指定windows域控制服务器来验证用户的账户及密码。

passdbbackend=tdbsam#passdbbackend(用户后台),samba有三种用户后台:smbpasswd,tdbsam和ldapsam

smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。

tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdbtdb,在/etc/samba中。passdbtdb用户数据库可使用smbpasswd_a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:

pdbedit_ausername:新建Samba账户。

pdbedit_xusername:删除Samba账户。

pdbedit_L:列出Samba用户列表,读取passdbtdb数据库文件。

pdbedit_Lv:列出Samba用户列表详细信息。

pdbedit_c“[D]”_uusername:暂停该Samba用户账号。

pdbedit_c“[]”_uusername:恢复该Samba用户账号。

ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdbbackend=ldapsam:ldap://LDAPServer”

loadprinters和cupsoptions两个参数用来设置打印机相关。

除了这些参数外,还有几个参数需要你了解:

netbiosname=MYSERVER#设置出现在“网上邻居”中的主机名

hostsallow=1271921681219216813#用来设置允许的主机,如果在前面加”;”则表示允许所有主机

logfile=/var/log/samba/%mlog#定义samba的日志,这里的%m是上面的netbiosname

maxlogsize=50#指定日志的最大容量,单位是K

[homes]该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。

[printers]该部分内容设置打印机共享。

samba实践

注意:在试验之前,请先检测selinux是否关闭,否则可能会试验不成功。关于如何关闭selinux请查看第十五章linux系统日常管理的“linux的防火墙”部分

1共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读。

打开samba的配置文件/etc/samba/smbconf

[global]部分

把”MYGROUP”改成”WORKGROUP”

把”security=user”修改为“security=share”

然后在文件的最末尾处加入以下内容:

[share]

comment=shareall

path=/tmp/samba

browseable=yes

public=yes

writable=no

mkdir/tmp/samba

chmod777/tmp/samba

启动samba服务

/etc/initd/smbstart

测试:

首先测试你配置的smbconf是否正确,用下面的命令

testparm

如果没有错误,则在你的windows机器上的浏览器中输入file://IP/share看是否能访问

2共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写

打开samba的配置文件/etc/samba/smbconf

[global]部分内容如下:

[global]

workgroup=WORKGROUP

serverstring=SambaServerVersion%v

security=user

passdbbackend=tdbsam

loadprinters=yes

cupsoptions=raw

然后加入以下内容:

[myshare]

comment=shareforusers

path=/samba

browseable=yes

writable=yes

public=no

保存配置文件,创建目录:

mkdir/samba

chmod777/samba

然后添加用户。因为在[globa]中”passdbbackend=tdbsam”,所以要使用”pdbedit”来增加用户,注意添加的用户必须在系统中存在。

useradduser1user2

pdbedit-auser1#添加user1账号,并定义其密码

pdbedit-auser2

pdbedit-L#列出所有的账号

测试:

打开IE浏览器输入file://IP/myshare/然后输入用户名和密码

3使用linux访问samba服务器

Samba服务在linux下同样可以访问。前提是你的linux安装了samba-client软件包。安装完后就可以使用smbclient命令了。

smbclient//IP/共享名-U用户名

如:[root@localhost]#smbclient//100467/myshare/-Uuser1

Password:

Domain=[LOCALHOST]OS=[Unix]Server=[Samba3033-329el5_62]

smb:\

出现如上所示的界面。可以打一个””列出所有可以使用的命令。常用的有cd,ls,rm,pwd,tar,mkdir,chown,get,put等等,使用help+命令可以打印该命令如何使用,其中get是下载,put是上传。

另外的方式就是通过mount挂载了:

如:

mount-tcifs//100467/myshare/mnt-ousername=user1,password=123456

格式就是这样,要指定-tcifs//IP/共享名本地挂载点-o后面跟username和password

挂载完后就可以像使用本地的目录一样使用共享的目录了。

上述就是win7系统配置samba服务器的方法了,感兴趣的用户可以一起来设置下。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux下如何搭建SAMBA服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情