SMB服务器搭建

简介:

samba服务器包括两个服务程序

smbd

smbd服务程序为客户机提供了服务器中共享资源(目录和文件等)的访问

nmbd

nmbd服务程序提供了NETZBIOS主机名称的解析,为windows网络中域或者工作组内的主机进行主机名称的解析。

RHEL中缺省安装了Samba相关的软件包

samba-common 软件包中提供了samba服务器和客户机中都必须使用的公共文件

samba 软件包中包括了samba服务器程序的所有文件

samba-client 软件包中提供了samba客户机的所有文件

system-config-samba软件包中提供了Red Hat公司专门为samba服务器管理编写的图形界面的管理程序,该程序是redhat系统管理工具中的一部分。

samba服务器的主配置文件是smb.conf保存在/etc/samba中。

查看文件可以这样:

grep -v "^#" /etc/samba/smb.conf|grep -v "^;"

smb.conf文件内容

[global] #针对整个samba服务器生效

workgroup = MYGROUP #工作组名称

server string = Samba Server Version %v #服务器注释

security = user #user 用户级的安全级别,就是必须要用户名密码,share 表示用户不许要账户及密码即可登入samba服务器,server 表似乎检查账户及密码的工作指定由另一台windows服务器或samba服务器负责,domain表示指定windows域控制服务器来验证用户的账户及密码

passdb backend = tdbsam

log file= /var/log/samba/%m.log #对访问情况的日志记录 %m 客户端主机的名称

max log size = 50 #(kB)

load printers = yes

cups options = raw

[homes] #共享目录不特指某个目录,而是表示samba用户的宿主目录

comment = Home Directories #说明

browseable = no #不可浏览,表示所有samba用户的宿主目录不能被看到,只有登录用户才能看到自己的宿主目录共享,这样设置可以加强samba服务器的安全性

writable = yes #对登录后的用户具有写的权限

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no

writable = no

printable = yes

samba帐号管理

samba用户帐号使用独立的smbpasswd文件保存用户的帐号和加密口令信息

samba服务器中的用户帐号应该具有与其同名的linux系统用户帐号,因为samba用户是使用同名的系统帐号身份访问linux资源)(文件和目录)的

samba用户的口令和同名系统用户的口令是独立的,可以相同或不同,需要分别进行维护和更改

当samba用户不许要登录linux系统时,同名的系统用户帐号可不设置口令

samba服务器的用户帐号

samba服务器的用户帐号文件保存在/etc/samba目录中,文件名称是smbpasswd

初始状态smbpasswd文件不存在,在第一次使用smbpasswd命令创建smaba用户时自动创建

smbpasswd文件中同时保存有用户帐号和用户密码,因此该文件只对root用户有读写权限

smbpasswd命令

smbpasswd命令用于维护samba服务器的张华

添加帐号:

smbpasswd -a sambauser

禁用

smbpasswd -d sambauser

启用

smbpasswd -e sambauser

删除

smbpasswd -x sambauser

公共共享目录配置要求

在smb.conf添加名为[public]共享目录

公共共享目录的路径是/home/public

任何samba的用户都可一访问公共目录并对目录具有读写权限

任何用户在公共目录中都以linux中nobady系统用户的身份出现,既在公共目录中任何用户建立的文集那都属于nobady系统用户

smb.conf添加配置内容:

[public] #共享名为public

path= /home/public #真正的共享目录

public= yes #public设置为yes表示该共享目录对所有的samba用户可见

only guest = yes # 表示所有用户在使用该共享目录时的用户身份都是guest 即Linux系统用户nobody

writable = yes # 这是设置了可写的权限,但是设置了不一定就可以写了,还得看这个目录的权限,

测试smb.conf文件的内容

testparm命令是配置文件测试工具,可以对smb.conf配置文件的语法进行检测,并显示当前配置的清单

#testparm

启动samba服务器

service smb restart

smbclient

smbclient是samba服务器的命令行方式的登录客户端,使用的形式类似telnet和ftp命令

显示指定samba服务器中的共享资源列表

smbclient -L 192。168.0.2

以指定用户身份登录到指定服务器的指定共享目录

smbclient //192.168.0.2/st02 -U st02

//192.168.0.2/st02 表示服务器192.168.0.2中的共享目录st02

-U st02 表示以samba用户st02的身份进行登录

包依赖,所以先安装以下包

[root@redhat1 Server]# rpm -ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm

warning: perl-Convert-ASN1-0.20-1.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:perl-Convert-ASN1 ########################################### [100%]

然后安装:

[root@redhat1 Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm

warning: samba-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba ########################################### [100%]

[root@redhat1 Server]# rpm -ivh samba-client-3.0.33-3.14.el5.i386.rpm

warning: samba-client-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:samba-client ########################################### [100%]

[root@redhat1 Server]# rpm -ivh samba-common-3.0.33-3.14.el5.i386.rpm

warning: samba-common-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

package samba-common-3.0.33-3.14.el5.i386 is already installed

[root@redhat1 Server]#

包安装完毕,

启动服务:

[root@redhat1 Server]# service smb restart

关闭 SMB 服务: [失败]

关闭 NMB 服务: [失败]

启动 SMB 服务: [确定]

启动 NMB 服务: [确定]

[root@redhat1 Server]# chkconfig smb on

[root@redhat1 Server]# smbclient //192.168.0.7/TDDOWNLOAD -U staid

Password:

Domain=[NCIST-V3ZT22PKZ] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]

smb: \>

smb: \>

smb: \> cd TDDOWNLOAD

cd \TDDOWNLOAD\: NT_STATUS_OBJECT_NAME_NOT_FOUND

smb: \> dir

. DR 0 Fri Jul 2 17:24:06 2010

.. DR 0 Fri Jul 2 17:24:06 2010

51CTO下载-PIX模拟器中文教程by网络刀客v1.0.pdf+.pdf A 789172 Thu Jul 1 10:18:04 2010

desktop.ini HS 164 Thu Jul 1 09:53:49 2010

dotnetfx3setup.exe A 52770576 Wed Mar 18 16:06:04 2009

dotnetfx3setup.zip A 52725300 Fri Jul 2 17:22:28 2010

FirefoxChinaEdition-latest.exe A 9386696 Thu Jul 1 10:45:17 2010

ravolpconline.exe A 82199664 Thu Jul 1 10:30:44 2010

wlsetup-all.exe A 139758928 Fri Jul 2 15:29:49 2010

38875 blocks of size 262144. 33820 blocks available

smb: \>

smbmount //192.168.0.7/TDDOWNLOAD /mnt/smbfile #此用法已经随着南方的大水一去不复返了

正确的用法是:

[root@redhat1 Server]# mount -t cifs -o username=staid,password=1234 //192.168.0.7/TDDOWNLOAD /mnt/smbfile

服务器端命令:smbstatus

用来显示当前主机中的samba服务器的链接状态信息

显示信息包括服务器的每个samba客户端ip地址,主机名称 登录用户名 锁定的文件等

[root@redhat1 samba]# which smbpasswd

/usr/bin/smbpasswd

[root@redhat1 samba]# rpm -qf /usr/bin/smbpasswd

samba-common-3.0.33-3.14.el5

[root@redhat1 samba]#

首先建立系统用户

[root@redhat1 samba]# useradd shasha

useradd:用户 shasha 已存在

[root@redhat1 samba]# smbpasswd -a shasha

New SMB password:

Retype new SMB password:

Added user shasha.

[root@redhat1 samba]#

没有在/etc/samba/目录中找到smbpasswd文件

看一下我的smb.conf配置文件:

[root@redhat1 /]# cat /etc/samba/smb.conf|egrep -v "^#|^;"

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

log file = /var/log/samba/%m.log

max log size = 50

security = user

passdb backend = tdbsam

load printers = yes

cups options = raw

[homes]

comment = Home Directories

browseable = no

writable = yes

[public]

comment = Public Stuff

path = /smbpublic #我创建了一个目录/smbpublic 然后在这儿把他共享出来

public = yes

writable = yes

printable = no

write list = @shasha #shasha这个组的用户都可以登录

[root@redhat1 /]#

这样,我们在workgroup组内的任何一台计算机上访问smb服务器,用shasha组中的账户登录,都可以登录到smb服务器上的共享目录中来



本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/356770,如需转载请自行联系原作者

相关文章
|
1月前
|
Linux Shell 网络安全
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
77 1
|
1月前
|
安全 网络协议 数据安全/隐私保护
SMB over QUIC帮助实现文件服务器在公网安全共享
"SMB over QUIC协议使得文件服务器能够通过加密的QUIC传输层,在公网环境下安全、高效地进行文件共享。"
63 0
|
XML Java 数据格式
SMB使用递归方式下载、删除远程服务器文件(包含带有子文件夹等)
SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。
400 0
|
存储 对象存储 Windows
利用云存储网关的SMB共享搭建windows FTP服务器访问对象存储OSS
本文介绍如何利用阿里云存储网关的SMB共享,在windows服务器上搭建FTP服务器,让用户可以直接通过FTP上传文件到阿里云对象存储(OSS)当中。
3418 0
利用云存储网关的SMB共享搭建windows FTP服务器访问对象存储OSS
|
数据安全/隐私保护 Windows 安全
|
缓存 监控 网络协议
SMB - DNS Server 域名服务器配置与管理(四)
本文作为DNS高阶内容介绍ACL、Zone Transfer、DNS Protocol、日志分析与常见故障处理等内容,能够管理员提供直观概要的参考和TS指导。
2477 0
|
运维 Linux
SMB - TimeServer 时间服务器配置与管理
     在企业网络中,时间服务可能是最不受重视却又非常重要的服务,说其不受重视一则是因为时间服务难以像OA/CRM/Mail等业务系统为企业带来直接收益,二是各类业务系统在使用系统时钟作为时间源表面上也能工作的很好;说其重要一则是因为时间的同步会直接影响业务系统数据的准确性和业务系统稳定性,二是在业务数据分析、系统运维或故障排查中一致的时钟能够极大降低工作复杂度。
2843 0