阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下Samba文件共享服务器配置

137次阅读
没有评论

共计 9044 个字符,预计需要花费 23 分钟才能阅读完成。

为了实现 Windows 主机与 Linux 服务器之间的资源共享,Linux 操作系统提供了 Samba 服务,Samba 服务为两种不同的操作系统架起了一座桥梁,使 Linux 系统和 Windows 系统之间能够实现互相通信,为广泛的 Linux 爱好者提供了极大方便。本文简要介绍如何在 Linux 操作系统上搭建 Samba 服务器和简单配置。

 

1、服务查询

默认情况下,Linux 系统在默认安装中已经安装了 Samba 服务包的一部分,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令

rpm -qa | grep samba,默认情况下可以查询到两个已经存在的包:

samba-client-3.0.33-3.7.el5

samba-common-3.0.33-3.7.el5

 

2、卸载 Samba

用 rpm -e 将两个包卸载掉。对于 samba-common-3.0.33-3.7.el5,因为与其它 rpm 包之间存在依赖关系,所以必须加参数 - f 和 –nodeps,- f 是指强制,–nodeps 是指不检查依赖关系,具体完整命令为:

 rpm -e samba-common-3.0.33-3.7.el5 -f –nodeps

rpm -e samba-client-3.0.33-3.7.el5 -f –nodeps

 

3、安装 Samba4 和 samba4-client 

用以下命令安装:

 [root@linuxidc ~]# yum install samba4

[root@linuxidc ~]# yum install samba4-winbind

[root@linuxidc ~]# yum install samba4-client

[root@linuxidc ~]# yum install samba4-devel

安装完成后,使用命令 rpm -qa | grep samba 进行查询,发现搭建 samba 服务器所依赖的所有服务器都已经安装好了即可。

 

4、配置 smb.conf 文件

Samba 的配置文件一般就放在 /etc/samba 目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是 samba 服务非常重要的核心配置文件,完成 samba 服务器搭建的大部分主要配置都在该文件中进行。

Samba 服务器的工作原理是:客户端向 Samba 服务器发起请求,请求访问共享目录,Samba 服务器接收请求,查询 smb.conf 文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。 

 

实例操作:如何通过 samba 共享 linux 文件目录:

 

第一步:修改配置文件

     首先备份一下 samba 的配置文件

cd /etc/samba

cp smb.conf smb.confbak

然后重新创建一个 smb.conf 文件

vim smb.conf

然后我们把这段写入 smb.conf 中 

[global]                                 #全局设置

    workgroup = WORKGROUP

    netbios name = MYSERVER
    server string = Samba Server TestServer
    security = share

[shared_name]       #共享名称 

 comment =           #注释信息

 path =              #共享目录的路径

 browseable =        #是否可以浏览(yes|no)

 read only =         #是否只读(yes|no)

 writable =          #是否可写(yes|no)

 write list = user1,user2,@group,+group      #定义可写列表,可以是用户或者组

 valid users =            #定义白名单

 invalid users =          #定义黑名单

 

注解:

[global]这段是全局配置,是必段写的。其中有如下的几行;

workgroup 就是 Windows 中显示的工作组;在这里我设置的是 LINUXSIR(用大写);
netbios name 就是在 Windows 中显示出来的计算机名;
server string 就是 Samba 服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了 share;验证方式有好多种,这是其中一种;另外一种常用的是 user 的验证方式;如果用 share 呢,就是不用设置用户和密码了;

[shared_name] 这个在 Windows 中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable = 是否可写,这里我设置为可写;
browseable = 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable = no

guest ok = 匿名用户是否允许以 guest 身份是登录;

 

第二步:建立目录并设置好权限

 

 [root@linuxidc samba]# mkdir /share/test -pv  #递归建立目录

mkdir: 已创建目录“/share”

mkdir: 已创建目录“/share/test”

修改 samba 配置文件,在最后面增加以下几行:

 [root@linuxidc samba]# vim smb.conf 

 

[tools]

      comment = Share Testing

      path = /share/test

      public = yes

      writable = yes

 

[root@linuxidc samba]# testparm   #查看测试配置文档是否有问题

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

Processing section “[homes]”

Processing section “[printers]”

Processing section “[tools]”

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

 

[global]

server string = Samba Server Version %v

passdb backend = tdbsam

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

max log size = 50

cups options = raw

 

[homes]

comment = Home Directories

read only = No

browseable = No

 

[printers]

comment = All Printers

path = /var/spool/samba

printable = Yes

browseable = No

 

[tools]

comment = Share Testing

path = /share/test

read only = No

guest ok = Yes

第三步:启动 smbd 和 nmbd 服务器;

[root@linuxidc samba]# service smb start   #启动 samba 服务

启动 SMB 服务: [确定]

启动 NMB 服务: [确定]

[root@linuxidc samba]# service nmb start  # 启动 nmbd 服务

启动 NMB 服务: [确定]

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/142614p2.htm

第四步:把相关需要访问共享的用户设置为 samba 服务用户

[root@linuxidc samba]# smbpasswd -a Hadoop #把系统已存在的用户 hadoop 设置为 samba 服务的用户

New SMB password:           # 设置访问共享的密码,此密码最好跟系统用户的登录密码不同

Retype new SMB password:

Added user hadoop.    # 添加成功

[root@linuxidc samba]#  ll

总计 52

-rw-r–r– 1 root root   20 2009-05-29 lmhosts

-rw——- 1 root root 4096 03-22 10:14 passdb.tdb     # 已经生成了密码数据库 文件

-rw——- 1 root root 8192 03-22 10:14 secrets.tdb    # 已经生成了安全密钥数据库 文件

-rw-r–r– 1 root root 9733 03-22 09:10 smb.back

-rw-r–r– 1 root root 9839 03-22 10:09 smb.conf

-rw-r–r– 1 root root   97 2009-05-29 smbusers

通过 windows 客户端访问测试结果如下,成功访问共享目录:

Linux 下 Samba 文件共享服务器配置

由于 tools 目录暂时没有给 hadoop 用户写权限,所以暂时无法再该目录下新建文件,需先修改 tools 目录的访问权限:

[root@johntest samba]# setfacl -m u:hadoop:rwx /share/test/  #给用户 hadoop 设置 facl 权限,使得对 test 目录具有读写执行权限。

 

扩展:

linux 系统如何访问 windows 共享文件

smbclient  #访问 windows 共享命令 

    -L NetBIOS_Name  #接主机名或 IP 地址

    -U username     #接访问共享的用户名

 

[root@linuxidc ~]# smbclient -L 10.109.134.247 -U j0701130

Enter j0701130’s password: 

Domain=[KS01-IT-521] OS=[Windows 10 Pro 10586] Server=[Windows 10 Pro 6.3]

 

Sharename       Type      Comment

———       —-      ——-

IPC$            IPC       远程 IPC

ISO             Disk      

Oracle          Disk      

工具          Disk      

session request to 10.109.134.247 failed (Called name not present)

session request to 10 failed (Called name not present)

session request to *SMBSERVER failed (Called name not present)

NetBIOS over TCP disabled — no workgroup available

[root@linuxidc ~]# smbclient //10.109.134.247/iso -U j0701130

# 以 j701130 用户访问 10.109.134.247 的共享目录 iso

Enter j0701130’s password: 

Domain=[KS01-IT-521] OS=[Windows 10 Pro 10586] Server=[Windows 10 Pro 6.3]

smb: \>      # 登录成功

 

[root@linuxidc ~]# yum install samba4-swat  #安装 web 界面控制 samb 服务器

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

Setting up Install Process

Resolving Dependencies

–> Running transaction check

—> Package samba4-swat.i686 0:4.0.0-58.el6.rc4 will be installed

–> Processing Dependency: xinetd for package: samba4-swat-4.0.0-58.el6.rc4.i686

–> Running transaction check

—> Package xinetd.i686 2:2.3.14-39.el6_4 will be installed

–> Finished Dependency Resolution

………

Installed:

  samba4-swat.i686 0:4.0.0-58.el6.rc4                                                                

Dependency Installed:

  xinetd.i686 2:2.3.14-39.el6_4  


[root@linuxidc ~]# service xinetd start

正在启动 xinetd:  [确定]

[root@linuxidc ~]# chkconfig swat on

[root@linuxidc ~]# chkconfig –list

……..

svnserve       0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭

sysstat        0: 关闭 1: 启用 2: 启用 3: 启用 4: 启用 5: 启用 6: 关闭

udev-post      0: 关闭 1: 启用 2: 启用 3: 启用 4: 启用 5: 启用 6: 关闭

winbind        0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭

xinetd         0: 关闭 1: 关闭 2: 关闭 3: 启用 4: 启用 5: 启用 6: 关闭

ypbind         0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭

 

基于 xinetd 的服务:

chargen-dgram: 关闭

chargen-stream: 关闭

daytime-dgram: 关闭

daytime-stream: 关闭

discard-dgram: 关闭

discard-stream: 关闭

echo-dgram:    关闭

echo-stream:   关闭

rsync:         关闭

swat:          启用

tcpmux-server: 关闭

time-dgram:    关闭

time-stream:   关闭

[root@linuxidc ~]# service xinetd restart

停止 xinetd:[确定]

正在启动 xinetd:[确定]

配置文件路径为:/etc/xinetd.d/swat

Linux 下 Samba 文件共享服务器配置

通过客户端访问 web 界面的 samb 服务:

Linux 下 Samba 文件共享服务器配置

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142614.htm

为了实现 Windows 主机与 Linux 服务器之间的资源共享,Linux 操作系统提供了 Samba 服务,Samba 服务为两种不同的操作系统架起了一座桥梁,使 Linux 系统和 Windows 系统之间能够实现互相通信,为广泛的 Linux 爱好者提供了极大方便。本文简要介绍如何在 Linux 操作系统上搭建 Samba 服务器和简单配置。

 

1、服务查询

默认情况下,Linux 系统在默认安装中已经安装了 Samba 服务包的一部分,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令

rpm -qa | grep samba,默认情况下可以查询到两个已经存在的包:

samba-client-3.0.33-3.7.el5

samba-common-3.0.33-3.7.el5

 

2、卸载 Samba

用 rpm -e 将两个包卸载掉。对于 samba-common-3.0.33-3.7.el5,因为与其它 rpm 包之间存在依赖关系,所以必须加参数 - f 和 –nodeps,- f 是指强制,–nodeps 是指不检查依赖关系,具体完整命令为:

 rpm -e samba-common-3.0.33-3.7.el5 -f –nodeps

rpm -e samba-client-3.0.33-3.7.el5 -f –nodeps

 

3、安装 Samba4 和 samba4-client 

用以下命令安装:

 [root@linuxidc ~]# yum install samba4

[root@linuxidc ~]# yum install samba4-winbind

[root@linuxidc ~]# yum install samba4-client

[root@linuxidc ~]# yum install samba4-devel

安装完成后,使用命令 rpm -qa | grep samba 进行查询,发现搭建 samba 服务器所依赖的所有服务器都已经安装好了即可。

 

4、配置 smb.conf 文件

Samba 的配置文件一般就放在 /etc/samba 目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是 samba 服务非常重要的核心配置文件,完成 samba 服务器搭建的大部分主要配置都在该文件中进行。

Samba 服务器的工作原理是:客户端向 Samba 服务器发起请求,请求访问共享目录,Samba 服务器接收请求,查询 smb.conf 文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。 

 

实例操作:如何通过 samba 共享 linux 文件目录:

 

第一步:修改配置文件

     首先备份一下 samba 的配置文件

cd /etc/samba

cp smb.conf smb.confbak

然后重新创建一个 smb.conf 文件

vim smb.conf

然后我们把这段写入 smb.conf 中 

[global]                                 #全局设置

    workgroup = WORKGROUP

    netbios name = MYSERVER
    server string = Samba Server TestServer
    security = share

[shared_name]       #共享名称 

 comment =           #注释信息

 path =              #共享目录的路径

 browseable =        #是否可以浏览(yes|no)

 read only =         #是否只读(yes|no)

 writable =          #是否可写(yes|no)

 write list = user1,user2,@group,+group      #定义可写列表,可以是用户或者组

 valid users =            #定义白名单

 invalid users =          #定义黑名单

 

注解:

[global]这段是全局配置,是必段写的。其中有如下的几行;

workgroup 就是 Windows 中显示的工作组;在这里我设置的是 LINUXSIR(用大写);
netbios name 就是在 Windows 中显示出来的计算机名;
server string 就是 Samba 服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了 share;验证方式有好多种,这是其中一种;另外一种常用的是 user 的验证方式;如果用 share 呢,就是不用设置用户和密码了;

[shared_name] 这个在 Windows 中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable = 是否可写,这里我设置为可写;
browseable = 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable = no

guest ok = 匿名用户是否允许以 guest 身份是登录;

 

第二步:建立目录并设置好权限

 

 [root@linuxidc samba]# mkdir /share/test -pv  #递归建立目录

mkdir: 已创建目录“/share”

mkdir: 已创建目录“/share/test”

修改 samba 配置文件,在最后面增加以下几行:

 [root@linuxidc samba]# vim smb.conf 

 

[tools]

      comment = Share Testing

      path = /share/test

      public = yes

      writable = yes

 

[root@linuxidc samba]# testparm   #查看测试配置文档是否有问题

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

Processing section “[homes]”

Processing section “[printers]”

Processing section “[tools]”

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

 

[global]

server string = Samba Server Version %v

passdb backend = tdbsam

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

max log size = 50

cups options = raw

 

[homes]

comment = Home Directories

read only = No

browseable = No

 

[printers]

comment = All Printers

path = /var/spool/samba

printable = Yes

browseable = No

 

[tools]

comment = Share Testing

path = /share/test

read only = No

guest ok = Yes

第三步:启动 smbd 和 nmbd 服务器;

[root@linuxidc samba]# service smb start   #启动 samba 服务

启动 SMB 服务: [确定]

启动 NMB 服务: [确定]

[root@linuxidc samba]# service nmb start  # 启动 nmbd 服务

启动 NMB 服务: [确定]

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/142614p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计9044字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中