Samba服务器的安装配置和应用

随着计算机网络的发展,实现不同操作系统的文件和打印 共享成为一个必然的趋势。用过Windows的用户都知道,网上邻居是一个可以方便地访问其他Windows计算机资源的共享方式。为了使Windows 用户以及Linux用户能够互相访问彼此的资源,Linux提供了一套资源共享的软件——Samba服务器。 
4.1 SMB 协议和 Samba 简介  
4.1.1 SMB 协议  
为了使Windows 主机间的资源能够共享,微软于1980年开发了SMB(Server Message Block)通信协议,并通过SMB通信协议,使网络上各台主机之间能够共享文件、打印机等资源。目前类似这种资源共享的通信协议还有NFS、 Appletalk、Netware等。 
4.1.2 Samba 简介  
这些年来,Windows 和Linux 操作系统各自拥有自己的用户群和市场。然而在一般的公司或学校里,可能同时有Windows 和Linux 操作系统的主机。Windows 主机彼此间可利用“网上邻居”来访问共享的资源,NFS也能使Linux 主机之间实现资源共享。但如何能使Windows 主机和Linux主机之间实现资源共享呢? 
微软的“网上邻居(就是Windows 上利用SMB通信协议实现资源共享的程序)”一经推出,便广受用户的好评,大家突然觉得原来要在网上共享资源尽是那么简单,有鉴于此,便有一些Linux 爱好者开始在Linux 主机上实现SMB通信协议,后来这个实现了SMB功能的软件既被称为 Samba ,它使得Windows 主机和Linux主机之间实现了资源共享。 
 4.1.3 Samba 软件的功能  
由于SMB通信协议采用的是 Client/Server架构,所以Samba 软件可以分为客户端和服务器端两部分。通过执行Samba 客户端程序,Linux 主机便可以使用网络上Windows 主机所共享的资源;而在Linux 主机上安装Samba 服务器,则可以使Windows 主机访问Samba 服务器共享的资源
Samba 提供了以下功能: 
  (1)共享Linux 的文件系统
(2)共享安装在Samba 服务器上的打印机
(3)使用Windows 系统共享的文件和打印机 
(4)支持 Windows 域控制器和Windows 成员服务器对使用Samba 资源的用户进行认证 
(5)支持WINS名字服务器解析及浏览

    ( 6 )支持 SSL 安全套接层协议

 

4.2 安装和启动 Samba

Samba 软件安装在 Linux 一端。目前主要由一个 20 人左右的 Samba 团队负责维护及开发,用户可以在 http://www.samba.org/ 站点获得 Samba 的详细信息。同时,也可以在网页上下载 Samba 的最新版本  

4.2.1 安装 Samba 服务器  

如果用户在安装 Linux 时已经安装了 Samba ,就无需再安装了可以通过下列命令确定是否已经安装了 Samba  

[root@ smb_server  root]# rpm  –qa | grep  samba

samba-commom -2.2.7a-7.9.0

samba-2.2.7a-7.9.0

samba-client-2.2.7a-7.9.0

redhat-config-samba-1.0.4-1

samba-swat-2.2.7a-7.9.0

若出现这 5 个软件包,则表示已经安装了 Samba ,否则必须安装 Samba  

[root@smb_server  root]# mount  /dev/cdrom  /mnt/cdrom  

将光盘挂载到 /mnt/cdrom 目录 ]

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

切换到放置 rpm 文件的目录  

[root@smb_server  root]# rpm  -ivh samba-commom -2.2.7a-7.9.0i386.rpm

这是 Samba 必备的程序,必须安装  

[root@smb_server  root]# rpm  -ivh samba-2.2.7a-7.9.0.i386.rpm

安装 Samba 服务器程序,可以使我 Windows 主机访问 Samba 服务器共享的资源。  

如果需要使 Linux 主机访问 Windows 主机上的共享资源,则还应该安装 Samba 客户端程序。  

[root@smb_server  root]# rpm  -ivh samba-client-2.2.7a-7.9.0.i386.rpm

4.2.2 Samba 的全局参数的配置  

Samba 最主要的配置文件是 /etc/samba/smb.conf,其中有很多选项可以设置,但作为初学者,只需要掌握其中一小部分选项的设置就可以配置所需要的Samba服务器 了。在了解基本配置的基础上,就能很快架设一个基本的Samba服务器。在基本配置文件中,也只用到其中一小部分命令选项。

全局参数的配置在[global]字段中,没有出现(或被注释)的参数,Samba 采用的是默认配置。

# This is the main Samba configuration file. You should read the

# smb.conf(5) manual page in order to understand the options listed

# here. Samba has a huge number of configurable options (perhaps too

# many!) most of which are not shown in this example

#================== Global Settings ============================

[global]

# 这是配置文件中关于全局参数的设置部分。  

…………

   workgroup = SMBGROUP

# 这是设置服务器所要加入的工作组的名称,会在 Windows 的“网上邻居”中能看到 MYGROUP 工作组,可以在此设置所需要的工作组的名称。  

netbios name=smb-server

# 设置出现在“网上邻居”中的主机名。默认情况下,则使用真正的主机名。  

   server string = Samba Server

# 这是设置服务器主机的说明信息,当在 Windows 的“网上邻居”中打开 Samba 上设置的工作组时,在 Windows 的资源管理器窗口,会列出“名称”和“备注”栏,其中“名称”栏会显示出 Samba 服务器的 NetBios 名称,而“备注”栏则显示出此处设置的“ Samba Server ”。当然,可以修改默认的“ Sambe Server” ,使用自己的描述信息。  

 hosts allow = 192.168.1. 127

# 这里是设置允许什么样的 IP 地址的主机访问 Samba 服务器。默认的情况下, hosts allow 选项被注释,表示允许所有 IP 地址的主机访问。  

  guest account = pcguest

# 设置当访问那些被设置了“ guest ok=yes ”参数的资源时所要使用的帐号名。默认的帐号为 ”nobody” ,如果不想用默认的值,则应该去掉注释用的分号,用你想要的帐号(如 pcguest zhangsan 等  ),然后,你必需将这一新帐号加入到 /etc/passwd 文件中去。  

client  code  page=950

设置客户端访问 Samba 服务器时所使用的字符编码表( code page ),默认值为 850 ,如果 Samba 服务器要使用年中文名称来来命名共享的资源,要将此值改为 950 

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

# 这一选项要求 Samba 服务器为每一个连接的机器使用一个单独的日志文件,指定文件的位置,名称。 Samba 会自动将 %m 转换成连接主机的 NetBios 名。  

   max log size = 0

指定日志文件的最大容量 (KB 为单位 ) ,设置为 0 ,表示没有限制。默认值为 5000 

max disk size =1000

# 设置能够共享的最大磁盘空间,单位为 MB ,默认值为 0 ,表示不作任何限制。  

max open file =100

# 设置同一客户端最多能打开文件的数目,默认值为 10000 个。  

   security = user

# 设置 Samba 服务器的安全等级。默认情况下,使用 user 等级。  

#Samba 服务器一共有四种安全等级。  

share: 使用此等级,用户不需要帐号及密码可以登陆 Samba 服务器。  

user:  使用此等级,由提供服务的 Samba 服务器检查用户帐号及密码。  

server: 使用此等级,检查帐号及密码的工作可指定另一台 Samba 服务器负责。

domain: 使用此等级,需要指定一台 Windows NT/2000/XP 服务器(通常为域控制器),以验证用户输入的帐号及密码。  

;   password server = <NT-Server-Name>

# 如果安全等级为“ server ”或“ domain ”,则使用此选项指定要验证密码的主机名。  

  password level = 8

  username level = 8

# 设置当验证用户口令和帐号时最多允许几个大小写字不同。默认值为 0 

   encrypt passwords = yes

# 设置当 Samba 客户端将帐号及密码传送到服务器端时,是否采取密码加密的方式。客户的操作系统如果是 Windows 95 OSR2 NT SP3 以后的版本,应该将此选项的值设为 yes, 默认值为 no 

   smb passwd file = /etc/samba/smbpasswd

# 设置在 Samba 服务器上存放加密的密码文件的位置(注意: Samba 服务器与 Linux 采用不同的密码文件)。  

 

4.2.3 设置 Samba 密码文件  

smb.conf 文件中有“ smb password file =/ect/samba/smbpassword ”一行设置项,现在就要创建该设置项所指定的 /ect/samba/smbpassword 密码文件(若是用 Windows NT/2000Server 来验证密码,则可以跳过此段内容)。以 root 帐号登录,然后按下列步骤进行:  

[root@smb_server  root]#cat /etc/passwd | mksmbpasswd.sh  >  /etc/samba/smbpasswd

[root@ smb_server  root]# chmod  500  /etc/samba

[root@ smb_server  root]# chmod  600  /etc/samba/smbpasswd

 

此步骤是将未加密的 /etc/passwd 文件转换成加密的 smbpasswd 文件。基于保密的原则,将 /etc/samba 目录的权限设为 500 ,该文件的权限设为 600 ,以避免他人取得密码文件。  

完成之后再利用 smbpasswd 命令,设置 /ect/samba/smbpassword 文件中每个帐号所使用的密码。(下面以 fred 为例。注意:此处设置的密码是 fred 要访问 Samba 服务器的密码,并非登录 Linux 主机的密码 , 默认设置 ”UNIX password  sync=YES”, 则登录 Linux 主机的密码将改变 ,Samba 服务器的密码一致 , 如果希望这两个密码不一致 , 则设置 ”UNIX password  sync=NO” 

[root@smb_server  root]# smbpasswd fred

New SMB password: 此处输入密码  

Retype SMB password: 重新输入密码  

Password  changed  for user  fred  看到这一句表示密码设置成功。  

 

4.2.4 启动 Samba 服务器  

可以执行下面的命令来启动 Samba 服务器:  

[root@ smb_server  Root]#   service smb start

当能看到下面的显示,就表示启动成功。  

Starting  SMB  service          [ 确定 ]

Starting  NMB  service          [ 确定 ]

 

如果要暂停或重新启动 Samba 服务器,只要将上面命令中的 start 改为 stoprestat 就可以了。  

也可以让系统在每次开机时就启动 Samba 服务器。执行 ntsysv 命令,进入 Service 设置画面,选择 smb 选项,单击确定即可。  

4.2.5 测试 Samba 配置文件  

设置好 smb.conf 文件之后,执行下面的命令测试 smb.conf 的设置语法是否正确。  

[root@smb_server  root]#  testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[printers]"

Processing section "[tmp]"

Processing section "[public]"

Processing section "[fredsdir]"

Loaded services file OK.

Press enter to see a dump of your service definitions

表示正确。  

检查正常后,一定要记得执行  

[root@smb_server  root]#   service smb  restart

命令,重新启动 Samba 服务器。

4.3 配置 Samba 文件共享  

完成了全局环境的设置之后,可以设置共享的资源(包括共享的文件和打印机)了。先来介绍如何配置Smb.conf,实现文件的共享。

4.3.1 设置共享资源参数  

   comment

#针对共享资源所作的说明、注释部分

  browseable

#设置用户是否可以看到此共享资源。默认值为yes,若将此参数设置为no,用户虽然看不到此资源,但是拥有权限的用户仍可直接输入该资源的网址来访问该资源。

  writable

#设置共享的资源是否可以写入。若共享资源是打印机,则不需设置此参数

#设置可访问的用户。系统会自动将%S转换成登录帐号。

   create mode

# 设置文件的访问权限,默认值为0744。

   directory mode

设置目录的访问权限,默认值为0755。

path

#若共享资源是目录,则指定目录的位置;若为打印机,则指定打印机队列的位置。

read only

#设置共享资源是否只读或可以写入,默认值为yes。若共享资源为打印机时,此参数无任何意义。这一项与writable相反。

Public

#等同于guest ok选项,表示是否允许用户不使用帐号和密码便能访问此资源。如果起用此功能,当用户没有帐号和密码时,则会利用“guest account=”所设置的帐号名登录。该选项默认值为no,即不允许没有帐号即密码的用户使用此资源。

avalible

#设置是否启用此共享资源。默认值为yes。若将此参数设置为no,则不管其他参数设置为什么,所有人均不得使用此资源。

 valid users

 

4.3.2 配置 Samba 文件共享举例  

以下通过配置3个不同的共享目录为例,可以知道 配置 Samba 文件共享的一般方法。  

[global]

…………  

#采用前面的 [global]配置

[homes]

#用来配置用户访问自己的目录

   comment = Home Directories

#注释

   browseable = no

#用户私人目录,不给别人浏览(并不是不允许别人访问)

   writable = yes

#允许用户写入自己的目录

   valid users = %S

#可访问的用户局限于用户自己。%s会被自动转换为登录帐号。

  create mode = 0664

#文件的访问权限

   directory mode = 0775

#目录的访问权限

# This one is useful for people to share files

[tmp]

#这个部分为所有用户提供临时共享的方式

   comment = Temporary file space

#注释文字

  path = /tmp

#指定位置 

read only = no

#可以读写 

public = yes

#允许用户不用帐号和密码访问

 [public]

#  这个部分为所有用户提供可以共同访问的目录。允许staff组用户写入,但其他用户只可访问,不能写入。

 comment = Public Stuff

   path = /home/samba

   public = yes

   writable = yes

   printable = no

   write list = @staff

# write list参数是用来设置具有写权限的用户列表。这里只允许staff组的成员有写的权限

 [fredsdir]

#这个部分用来设置某一用户fred的访问权限。

  comment = Fred s Service

  path = /usr/fred/private

  valid users = fred

#只有fred可以访问(注意:即使security=share,也不代表用户登录Linux 主机后可以访问任意资源。)该共享目录

  public = no

  writable = yes

  printable = no

 

说明:配置文件修改后,要重新用 testparm 测试配置文件,重新启动 Samba 服务器程序。  

4.3.3 使用共享的目录  

现在以 Windows 2000 为例,介绍 fred 用户如何读取 Linux 所共享的资源。  

1 .以 fred 帐号登录 Windows ,然后在“网上邻居”  中找到前面所设置工作组 smbgroup 。如图 4-1 所示  

 

                               图4-1

 

2 .双击工作组 smbgroup 图标,将看到 Samba 服务器 smb_server ,如图 4-2 所示  

 

                                          4-2

3 .双击服务器 smb_server 图标,若在 Windows 中使用的密码与 Linux 的用户密码相同 , 即可以看到服务器上所共享的资源(表示登录 Linux 主机成功),如图 4-3 所示。  

     4 .若在 Windows 中使用的密码与 Linux 的用户密码不同,则会出现“输入网络密码对话框”,如图 4-4 所示,输入 st1SMB 中设置的用户密码(由于设置了 ”unix password sync=YES” ,所以此处输入的密码一定要是 smb 密码),正确的密码输入后,会出现图 4-3 所示的窗口。  

 

                                         图4-3

 

                                         4-4

5 .在图 4-3 的资源管理器窗口中,双击所要访问的共享目录(如 fredsdir ),出现图4-5 所示“输入网络密码”窗口,输入 fred 的密码(因为 fredsdir 共享目录只允许 fred 访问,所以在此要输入 fredsmb 密码) 结果如图 4-6 所示


                       图4-5


                     图4-6

4.4 配置 Samba 打印共享  

4.4.1 Samba 中的打印共享  

Samba 中涉及打印共享的参数主要有以下几个  

1.  [glo

利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值