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,如需转载请自行联系原作者

上一篇:day01-基于ECS搭建FTP服务器


下一篇:PostgreSQL sharding : citus 系列4 - DDL 操作规范 (新增DB,TABLE,SCHEMA,UDF,OP,用户等)