ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux系统管理17:Samba服务器

2020-05-24 12:03:16  阅读:250  来源: 互联网

标签:选项 samba 17 Samba 设置 Linux 服务器 共享 目录


Samba服务器配置

​ 许多桌面计算机都是以Windows操作系统为基础,如何使Windows可以访问linux服务器中的公共资源,是一个复杂的问题。

​ 使用服务器信息块(Server Message Block)协议,可以共享文件、磁盘、目录、打印机等资源。

linux中的samba内置SMB协议,使用SMB实现局域共享资源,使Windows客户可访问这些公共资源。

​ 在linux中架设一个samba服务器,可供客户端共享文件、打印机等资源。

一、SMB协议

​ SMB协议是局域网上共享文件/打印机的一种协议,该协议可以为网络内部的Windows和linux主机提供文件系统、打印服务。

​ 通过“NetBIOS over TCP/IP”使用samba不但能与局域网络主机共享资源,也能与全世界的计算机共享资源。

​ samba是用来实现SMB的一种软件,该软件是运行在linux环境里的自由软件。

1.samba功能:

  • 共享目录
  • 共享打印机
  • 控制共享资源的权限
  • 在linux客户端,可使用smbclient客户端软件,与使用ftp类似的方式访问Windows共享资源。

二、安装Sambda服务器

1.检查是否安装samba服务器

命令:rpm -qa | grep samba

[root@summer ~]# rpm -qa | grep samba
samba-winbind-clients-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba4-libs-4.0.0-55.el6.rc4.x86_64
samba-winbind-3.6.9-151.el6.x86_64

执行命令后,出现上述命令,则说明系统中已经安装了5个软件包。

2.安装命令

命令1:yum -y install samba

命令2:rpm -ivh samba-3.6.9-164.e16.x86_64.rpm

三、启动Samba

1.samba进程

安装好samba并启动其守护进程后,便可以提供文件共享服务。
samba的守护进程有两个:smbd和nmbd

  • smbd:是samba的主要启动进程,通过该进程可以让网络内的其他计算机知道samba服务器共享了哪些资源。
  • nmbd:用来解析samba服务器所共享工作组及此工作组下的netbios name。

如果没有启动nmbd进程,客户机只能使用ip地址访问samba服务器中的共享资源,启动nmbd进程后,就可以使用设定的主机名访问公共资源。如samba服务器的ip地址为192.168.1.11,共享资源名称为soft,主机名为samba1,若未启动nmbd进程,只能按以下方式访问共享目录soft:
\\192.168.1.11\soft
若启动了nmbd进程,还可以使用以下方式方式目录soft
\\samba1\soft

2.启动samba

[root@summer ~]# service smb start
启动 SMB 服务:                                            [确定]
[root@summer ~]# service nmb start
启动 NMB 服务:                                            [确定]

其余命令

  • service nmb status

  • service nmb restart

  • service nmb stop

    ​ 若需要samba随系统的启动而启动,可以执行setup命令进行设置。

四、配置samba服务器

​ samba服务的配置文件是/etc/samba/smb.conf
​ 该文件几乎包含了samba系统程序运行时所需的所有的配置信息。在smb.conf配置文件中,以分节形式分别配置不同的选项,除了[gloabal]节以外,其他每一节都看做是一个共享资源。

1.例:统计smb.conf的行数

命令:

[root@summer samba]# wc -l < smb.conf
288

2.查看smb.conf命令:vim smb.conf

# ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostname
#
# Interfaces lets you configure Samba to use multiple interfaces
# If you have multiple network interfaces then you can list the ones
# you want to listen on (never omit localhost)
#
# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
# specifiy it as a per share option as well
#
        workgroup = MYGROUP
        server string = Samba Server Version %v

;       netbios name = MYSERVER

"#"开头是注释,为用户提供相关的配置解释信息;以方便用户参考,不用修改。

“;”开头的,都是samba配置的范例格式,默认不生效,可通过去掉前面的分号,并加以修改来设置想使用的功能。

3.[globall]

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

[global]

# ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field

​ **[global]**节用来设置全局参数,该节设置的参数直接影响整个sanba系统。常用选项:1、基本选项。2、安全选项。3、打印设置选项。4、日志选项。5、网络配置选项。

①:基本选项

主要来设置samba服务器一些常用选项,如属于什么工作组、名称等。

  • netbios name:设置samba服务器的netbios名,该参数可以不设置,samba将使用本机域名的第一部分作为该选项的值。
  • workgroup:设置当前samba服务器所要加入的工作组,若security选项设置为domain,则workgroup可设置为域名。
  • server string:用来设置本机描述,默认设置为samba server,可以设置为任意字符串。

②:安全选项

安全选项用来设置访问samba服务器时的安全设置,常用的安全选项如下。

  • security:设置samba服务器的基本安全级,包括share、user、server和domain 4个值。

    根据设置值的不同,用户访问samba服务器共享资源时的认证方式也不同

    设置为user(默认值),要求用户提供用户名和密码进行验证;设置为share时,不需要任何认证;

    设置为server时,与user安全级类似;

    设置为domain时,要求网络中存在一台NT PDC,用户和密码将在NT PDC中去验证。

    注:一般只使用share和user两个安全级,其他两个很少用。

安全选项用来设置访问samba服务器时的安全设置,常用的安全选项如下。

  • encrypt passwords:设置是否对密码进行加密。由于Windows默认状态下不能传送明文密码,这里建议设置为yes(进行加密)。
  • username map:该选项的值为一个文件名,所指向的文件中包含来自客户机的用户名与samba服务器中linux系统用户名之间的映射。
  • guest account:设置来宾账户(guest)的用户名,可以是nobody、ftp等不需要密码的用户。
    host allow:允许哪些计算机访问samba服务器,可以输入多个ip地址,如果ip地址后面设置为0表示允许某一个子网,如192.168.11.0表示该子网都可以访问。
  • hosts deny:不允许哪些计算机访问samba。

③:打印设置选项

# --------------------------- Printing Options -----------------------------
#
# Load Printers let you load automatically the list of printers rather
# than setting them up individually
#
# Cups Options let you pass the cups libs custom options, setting it to raw
# for example will let you use drivers on your Windows clients
#
# Printcap Name let you specify an alternative printcap file
#
# You can choose a non default printing system using the Printing option

        load printers = yes  #若设置为yes,允许自动加载打印机列表,而不需要单独设置每一台打印机
        cups options = raw

;       printcap name = /etc/printcap  #从指定文件中获取打印机的描述信息
        #obtain list of printers automatically on SystemV
;       printcap name = lpstat
;       printing = cups   #定义打印系统的类型

④:日志选项

# --------------------------- Logging Options -----------------------------
#
# Log File let you specify where to put logs and how to split them up.
#
# Max Log Size let you specify the max size log files should reach

        # logs split per machine
        log file = /var/log/samba/log.%m  #定义日志文件
        # max 50KB per log file, then rotate
        max log size = 50  #设置日志文件的大小,单位KB(若设为0,表示不限大小)

⑤:网络配置选项

# ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostname
#
# Interfaces lets you configure Samba to use multiple interfaces
# If you have multiple network interfaces then you can list the ones
# you want to listen on (never omit localhost)
#
# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
# specifiy it as a per share option as well
#
        workgroup = MYGROUP
        server string = Samba Server Version %v

;       netbios name = MYSERVER

;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 
;       hosts allow = 127. 192.168.12. 192.168.13.

4.共享选项

#============================ Share Definitions ==============================

[homes]
        comment = Home Directories
        browseable = no
        writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes
...
  • comment:对共享目录的注释说明。
  • writable:用户对共享目录是否可写。注意:即使这里设置为yes,用户对linux中对应目录没有写权限,也不能进行写操作。
  • browserable:设置用户是否可浏览到该共享目录。若设置为no,目录将隐藏,但通过直接输入共享目录名称,仍然可以访问。
  • valid users:可以访问共享目录的用户列表
  • invalid users:禁止访问共享目录的用户列表。
  • public:设置共享目录是否允许匿名访问。
  • path:设置共享目录对一个linux文件系统中的哪个目录。

5.特殊设置选项

在主配置文件中,还有两个特殊的节:这两个节的设置是针对在samba服务器中拥有账号的用户进行的。

[homes]
        comment = Home Directories
        browseable = no
        writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes

[homes]:

  • comment:对共享目录的注释说明。
  • writable:用户对共享目录是否可写。注意:即使这里设置为yes,用户对linux中对应目录没有写权限,也不能进行写操作。
  • browserable:设置用户是否可浏览到该共享目录。若设置为no,目录将隐藏,但通过直接输入共享目录名称,仍然可以访问。
  • valid users:可以访问共享目录的用户列表
  • invalid users:禁止访问共享目录的用户列表。
  • create mode:在home目录中创建文件时,对文件设置的权限属性(如设置为0664)
  • directory mode:在home目录中创建目录时设置的权限属性(如设置为0775)
  • read only:设置目录是否为只读模式。

[printers]:

  • comment:对打印机的注释说明。
  • writable:该选项必须设置为no
  • browserable:设置其他用户是否可浏览到打印机
  • path:设置打印机spool目录
  • guest ok:设置guest用户是否可使用打印机
  • printable:打印机是否可用,设为yes才

五、匿名服务器配置

​ 如果samba服务器中的文件不需要用户登录就可以访问,则在全局设置中将security设置为share。

实例:架设一台samba服务器。

​ 该服务器用来向局域网内各客户机提供软件共享服务,常用的软件的安装包都存放在服务器的/soft目录中,要求用户只能从该目录中读取文件,而不能修改目录中的文件。另外,各客户端还可利用samba服务器进行临时文件交换,即任何用户有权限将文件写到服务器的某一个目录(假设为/tmpdoc)。

1、创建目录:/soft,/tmpdoc

命令:mkdir soft tmpdoc

2.修改soft的目录权限

因为所有用户都要有读取权限,该目录权限应设置为755。

命令:chmod 755 soft

3.将常用软件赋值到/soft目录下

命令:cp a b

4.修改tmpdoc属性

由于匿名用户可以在/tmpdoc目录中写入数据,需要将该目录的属性修改为nobody(samba中使用匿名登录,默认的用户名为nobody)。

命令:chown nobody:nobody tmpdoc

5.修改配置文件

修改/etc/samba/smb.conf文件,删除原来的内容,输入以下内容:

[global]
	workgroup=WORKGROUP
	server string=summer
	security=share
	log file=/var/log/samba/log.%m
	max log size = 50
#============================ Share Definitions ==============================

[soft]
        comment = user's soft
        path=/soft
        public=yes
		writable=no
[tmpdoc]
        comment = linshi directory
        path = /tmpdoc
        guest ok = no
        writable = no

6.保存配置文件

在输入配置选项时,有可能输入错误的字符。samba软件包中提供了一个检查命令testparm,可通过该命令对配置文件进行检查。

可以输入:testparm查看是否有误

7.重启服务器

命令:

service smb restart

service nmb restart

8.测试

关闭win和linux的防火墙,然后在windows我的电脑查看输入:\\ip地址

六、需登录samba服务器

​ 创建的匿名samba服务器的权限控制很简单,分为只读和可读写两种权限。若需要对权限进一步细化,则可通过设置security选项为user,按用户控制权限。
​ 这种方式操作步骤要复杂一些,首先需要在服务器端添加用户和用户组,并用smbpasswd设置用户的权限,然后在smb.conf配置文件中对不同用户和用户组的权限进行设置。

1.创建用户

useradd -s /sbin/nologin test

2.将用户添加到samba密码文件中

smbpasswd -a test

3.准备目录

mkdir /test

4.修改权限

chmod 700 /test

chown test.test /test

5.修改配置文件

[suer_test]
	comment = test_zhuangyong
	path = /test
	guest ok = no
	writable = yes

6.测试

重启服务器:service smb restart

service nmb restart

在win上输入:\\ip地址

七、访问windows系统

​ 通过smb.conf配置文件进行操作,是将linux配置为samba服务器,该服务器主要是让Windows用户访问linux系统中的文件。
​ 如果要从linux系统访问Windows系统中共享的资源该如何操作?

​ 挂载到linux文件系统
​ 共享Windows系统中的文件,最常用的方法之一就是使用mount命令将Windows系统中的共享目录挂载到linux系统中。

1.先在Windows中共享一个文件夹。共享完成,在我的电脑—地址栏输入:\本地物理机ip地址。

在桌面创建文件,并在高级共享选择共享文件夹

2.创建挂载点

命令:mkdir /mnt/windows

3.使用挂在命令

命令:mount -o username=administrator //windiip地址/test /mnt/windows

标签:选项,samba,17,Samba,设置,Linux,服务器,共享,目录
来源: https://blog.csdn.net/jiangSummer/article/details/106288976

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有