我之我见:samba共享

目录

1. Samba概述 1

1.1 Samba简介 1

1.2 SMB/CIFS协议 1

1.3 Samba服务基础 1

1.3.1主要软件包 1

1.3.2系统服务脚本 1

1.4共享账号控制 1

1.4.1共享访问控制 1

1.4.2共享账号管理 2

2.配置Samba服务器 2

2.1服务器端操作 3

2.1.1安装samba服务器端程序 3

2.1.2建立samba认证用户nick\hunter 3

2.1.3准备共享文件夹,确认相关权限 3

2.1.4修改samba.conf配置文件,添加documents共享设置,并启用服务 4

2.2从客户机访问documents共享,并验证访问权限 4

2.2.1安装samba客户端程序 4

2.2.2查看服务器共享资源 4

2.2.3使用smbclient命令测试共享访问 5

2.3使用mount命令挂载共享 6

2.3.1手动挂载 6

2.3.2为documents配置开机自动挂载 6

2.4通过别名账户访问共享 6

2.4.1建立别名记录文件 6

2.4.2启用别名文件,smbd进程在运行,调整配置后会自动生效,无需重启 6

2.4.3采用别名账号访问documents共享 7

2.4.4为documents共享添加客户机地址限制 7

2.4.5测试客户机访问限制 7

2.5配置文件测试工具 7

3.出现的问题 8

3.1把该在服务器端的配置写到了客户端 8

3.2防火墙为开放139和445 8

3.3不看提示瞎回车 9

3.4selinux安全上下文 9

1. Samba概述

1.1 Samba简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

1.2 SMB/CIFS协议

1.2.1 SMB

Server Message Block,服务消息块SMB协议在局域网上用于服务器文件访问和打印的协议

1.2.2 CIFS

Common Internet File System,通用网际文件系统CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议超文本传输协议的一个实现。

1.3 Samba服务基础

1.3.1主要软件包

服务器端:samba

客户端:samba-client、cifs-utils

1.3.2系统服务脚本

/etc/init.d/smb

1.4共享账号控制

1.4.1共享访问控制

共享账号

1:新建共享账号时,必须有同名的系统账户

2:共享账号的密码是独立的

3:访问共享时以共享账号/密码登录、权限取决于对应的系统账号

账号数据库文件

默认采用TDB数据格式       /var/lib/samba/private/passdb.tdb

1.4.2共享账号管理

pdbedit 工具

1)格式:pdbedit [选项]  [共享账户名]

2)常用管理选项

-a:将制定的系统用户添加为共享账号

-L:查看共享账号信息

-x:删除指定的共享账号

3)案例

[[email protected] ~]# useradd vina                  //建同名系统用户

[[email protected] ~]# pdbedit -a vina                //添加为共享账号

new password:                                 //设置密码

retype new password:                           //确认设置密码

[[email protected] ~]# pdbedit -vL vina               //查看vina账号信息

[[email protected] ~]# smbpasswd vina             //修改vina的smb密码

New SMB password:                           //输入新密码

Retype new SMB password:                     //再次输入密码

[[email protected] ~]# pdbedit -x vina               //删除vina用户

[[email protected] ~]# pdbedit -vL vina              //查看vina用户信息

Username not found!

2.配置Samba服务器

将/share/zhang发布为documents共享

2.1服务器端操作

2.1.1安装samba服务器端程序

[[email protected] ~]# yum -y install samba samba-client

注意:配置各种网络服务时,往往为了测试方便,会将某个应用的服务器端,客户端一起给装上,本次实验也是如此,此外还需要安装samba-common,一般这个系统已经安装。

2.1.2建立samba认证用户nick\hunter

[[email protected] ~]# useradd nick                     //添加系统用户nick

[[email protected] ~]# useradd hunter                   //添加系统用户hunter

[[email protected] ~]# pdbedit -a nick                    //为nick设置共享密码

new password:

retype new password:

[[email protected] ~]# pdbedit -a hunter                  //为hunter设置共享密码

new password:

retype new password:

[[email protected] ~]# pdbedit –L                        //查看共享账号列表

nick:502:

hunter:503:

注意:samba服务器使用独立的共享账号数据库文件,其中的账号名称必须有与它同名的系统用户相对应,以便主机对共享访问的权限进行控制;但共享用户的密码额外设置,可以与系统用户的密码不一样(甚至可不设密码)

2.1.3准备共享文件夹,确认相关权限

[[email protected] ~]# setfacl -m user:hunter:rwx /share/zhang

[[email protected] ~]# getfacl /share/zhang/

getfacl: Removing leading ‘/‘ from absolute path names

# file: share/zhang/

# owner: root

# group: root

user::rwx

user:hunter:rwx

group::r-x

mask::rwx

other::r-x

注意:文件夹默认的权限为755,系统用户nick、hunter对其有读取权限,但是没有写入权限。若希望在共享访问时hunter有权限写入,可以通过setfacl命令做相应调整。

为方便客户机下载测试,在/share/zhang下新建一个hello.txt文件

[[email protected] ~]# echo "hello,hello" > /share/zhang/hello.txt

[[email protected] ~]# cat /share/zhang/hello.txt

hello,hello

2.1.4修改samba.conf配置文件,添加documents共享设置,并启用服务

[[email protected] ~]# vim /etc/samba/smb.conf

[documents]

path = /share/zhang                      //指定共享目录

public = no                             //不对所有人开放

read only = yes                          //默认的权限为只读

valid users = nick,hunter                   //指定合法用户

write list = hunter                        //用户hunter用户可读可写

确保启动smb服务程序,必要时设为开机后自动运行

[[email protected] ~]# service smb restart

[[email protected] ~]# chkconfig smb on

[[email protected] ~]# netstat -anput | grep smbd

tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      2631/smbd

tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      2631/smbd

tcp        0      0 :::139                      :::*                        LISTEN      2631/smbd

tcp        0      0 :::445                      :::*                        LISTEN      2631/smbd

2.2从客户机访问documents共享,并验证访问权限

2.2.1安装samba客户端程序

[[email protected] ~]# yum -y install samba-client cifs-utils

2.2.2查看服务器共享资源

使用smbclient命令结合-L选项可以查看目标主机有哪些共享,此操作不涉及实际的文件资源,因此不需要密码,当提示验证密码时回车即可。

[[email protected] ~]# smbclient -L 192.168.1.132         //查看对方的共享资源列表

Enter root‘s password:                         //无密码,直接回车

Anonymous login successful

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]

Sharename       Type      Comment

---------       ----      -------

documents       Disk                    //显示对方提供了一个名为documents的磁盘共享目录

IPC$            IPC       IPC Service (Samba Server Version 3.6.23-25.el6_7)

Anonymous login successful

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]

Server               Comment

---------            -------

Workgroup            Master

---------            -------

2.2.3使用smbclient命令测试共享访问

[[email protected] smbdir]# smbclient -U nick //192.168.11.135/documents

Enter nick‘s password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]

smb: \>ls

.                                   D        0  Mon Apr 11 01:48:43 2016

..                                  D        0  Mon Apr 11 01:46:34 2016

hello.txt                                   12  Mon Apr 11 01:48:43 2016

36825 blocks of size 524288. 18248 blocks available

smb: \> get hello.txt

getting file \hello.txt of size 12 as hello.txt (0.5 KiloBytes/sec) (average 0.5 KiloBytes/sec)

smb: \> !ls

a.txt  hello.txt

smb: \> put a.txt

NT_STATUS_ACCESS_DENIED opening remote file \a.txt

smb: \> put a.txt

NT_STATUS_ACCESS_DENIED opening remote file \a.txt

smb: \> quit

[[email protected] smbdir]# smbclient -Uhunter //192.168.11.135/documents

Enter hunter‘s password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]

smb: \> ls

.                                   D        0  Mon Apr 11 01:48:43 2016

..                                  D        0  Mon Apr 11 01:46:34 2016

hello.txt                                   12  Mon Apr 11 01:48:43 2016

36825 blocks of size 524288. 18248 blocks available

smb: \> get hello.txt

getting file \hello.txt of size 12 as hello.txt (0.3 KiloBytes/sec) (average 0.3 KiloBytes/sec)

smb: \> put a.txt

putting file a.txt as \a.txt (0.0 kb/s) (average 0.0 kb/s)

smb: \> quit

2.3使用mount命令挂载共享

2.3.1手动挂载

[[email protected] smbdir]# mount -o username=nick,password=1234 //192.168.11.135/documents /mnt/smbdir/                    //通过mount命令挂载documents共享,由于要求用户

认证,因此要结合-o选项指定用户名,密码才能挂上。

[[email protected] smbdir]# mount | tail -1

//192.168.11.135/documents on /mnt/smbdir type cifs (rw)

[[email protected] smbdir]# df -hT /mnt/smbdir/

Filesystem                 Type  Size  Used Avail Use% Mounted on

//192.168.11.135/documents cifs   18G  8.2G  9.0G  48% /mnt/smbdir

[[email protected] smbdir]# ls /mnt/smbdir/

a. txt  hello.txt

2.3.2为documents配置开机自动挂载

[[email protected] smbdir]# tail -1 /etc/fstab           //配置开机自动挂载

//192.168.11.135/documents /mnt/smbdir cifs defaults,username=nick,password=1234 0 0

[[email protected] smbdir]# umount /mnt/smbdir/      //卸载已挂载目录

[[email protected] smbdir]# mount | grep cifs          //确认已卸载

[[email protected] smbdir]# mount /mnt/smbdir/       //测试fstab配置

[[email protected] smbdir]# mount | grep cifs          //确认挂载结果

//192.168.11.135/documents on /mnt/smbdir type cifs (rw)

2.4通过别名账户访问共享

通过别名账户访问共享,这是为了提升账户安全性,知道账户名,可以暴力破解尝试一下,而不知道用户名,没法破解。

2.4.1建立别名记录文件

Vim /etc/samba/smbusers                    //修改配置文件

# Unix_name = SMB_name1 SMB_name2        //告诉你格式

root = administrator admin

nobody = guest pcguest smbguest              //添加以几行

hunter = hijack

2.4.2启用别名文件,smbd进程在运行,调整配置后会自动生效,无需重启

[global]

username map = /etc/samba/smbusers

2.4.3采用别名账号访问documents共享

[[email protected] ~]# smbclient -U hijack //192.168.11.135/documents

Enter hijack‘s password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]

smb: \>

2.4.4为documents共享添加客户机地址限制

Vim /etc/samba/smb.conf

Hosts allow = 192.168.11.135                //允许客户机访问的ip地址

2.4.5测试客户机访问限制

将ip地址改为其他ip后,作为测试机的客户端不能访问,出现以下提示

2.5配置文件测试工具

[[email protected] ~]# testparm

2.6常见配置

workgroup 工作组名称

server string 服务器描述

security user|share安全级别,user为要去用户验证

comment对此共享目录的说明文字

path共享目录的实际位置,方括号的类似于别名

browseable是否可见,no为隐藏共享

public是否所有人可用,等效于guest ok

writeable 是否可写,与read only相反

共享目录的认证配置

设置共享访问权限

valid users = 共享账号

write list = 共享账号

用户名或者 @组名,多个账号之间以逗号分隔

主机地址控制

hosts allow = ip或网段地址

hosts deny = ip或网段地址

3.出现的问题

3.1把该在服务器端的配置写到了客户端

问题:在准备测试别名账号的时候出现以下错误,这是因为配置的时候把配置都写到了客户端,不是在服务器端做的配置。修改之后,正常

3.2防火墙为开放139和445

问题:在使用smbclient时老提示错误,但是能ping通如下图

解决:这说明服务器是没有down机的,然后查看进程也正常,最终定位防火墙问题,开放服务器的139和445端口后,成功。

需要在服务器端开放这两个端口

-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

常见配置

3.3不看提示瞎回车

这个报错是自己疏忽大意了,没输密码就直接按回车,每次都是拒绝

这个报错应该就是selinux的关系了,当时是执行了下边第一条命令就可以了

3.4selinux安全上下文

如果是selinux的问题,设置安全上下文

setsebool -P samba_export_all_rw on

1. samba共享的文件必须用正确的selinux安全上下文标记。

chcon -R -t samba_share_t /tmp/abc

2.如果共享/home/abc,需要设置整个主目录的安全上下文。

chcon -R -r samba_share_t /home

查看samba共享,提示一下

这是由于wuhaoshu仅仅只是系统用户,而没有将它加入到samba账户中来,换言之,用来登录samba服务器的账户,首先是一个系统账户,同时还应是samba账户。

smbpasswd -a wuhaoshu

时间: 2024-07-29 13:34:49

我之我见:samba共享的相关文章

samba共享目录构建wordpress与mysql

项目一 (1) 使用samba共享/data/application/web,在目录中提供wordpress; (2) 使用samba客户端挂载samba server共享的目录至/var/www/html: (3) 客户端(lamp),部署wordpress,并让其正常访问:要确保能正常发文章,上传图片: (4) 客户端2(lamp),挂载samba server共享的目录至/var/www/html:验正其wordpress是否可被访   问:要确保能正常发文章,上传图片: samba服务器

samba共享服务的实现

实现SMB共享 1.在samba服务器上安装samba包 yum install samba  -y 2.创建samba用户和组 [[email protected] ~]# groupadd  -r  amdin [[email protected] ~]# useradd –s  /sbin/nologin  -G admin  wang [[email protected] ~]# smbpasswd  -a wang    #设置密码 [[email protected] ~]# use

通过samba共享目录的方式搭建lamp平台并安装wordpress(二)

在A主机上安装httpd,php,mariadb,samba-client,作为samba client,在B主机上安装samba,作为samba server.A主机IP192.168.199.157,B主机IP 192.168.199.174. 1.在A主机上安装httpd,php,php-mysql,mariadb,samba-client ~]# yum install httpd php php-mysql mariadb-server samba-client 2.在B主机上安装sa

如何在Fedora或CentOS上使用Samba共享

如今,无论在家里或者是办公场所,不同的电脑之间共享文件夹已不是什么新鲜事了.在这种趋势下,现代操作系统通过网络文件系统的方式使得电脑间数据的交换变得简单而透明.如果您工作的环境中既有微软的Windows又有Linux,那么,一个共享文件及目录的方式便是通过一个跨平台网络文件共享协议:SMB/CIFS.Windows原生的支持SMB/CIFS,Linux也通过开源的软件Samba实现了SMB/CIFS协议. 在这篇文章中,我们将展示如何使用Samba共享文件夹.我们使用的Linux平台是Fedor

samba共享

samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世

samba 共享

samba共享 主要依靠tcp协议  端口号 137 138 139 功能:实现Linux和Windows之间的数据共享 (数据同步,可以分享已挂载的目录)目录不可以删除,文件不可以修改,但可以删除也可以添加新的文件 实验准备 redhat7 windows2007 服务器端 linux系统 安装程序包 Samba Samba-client 客户端 linux系统 安装程序包 Samba-client 服务器端制作共享文件目录 设置安全权限 mkdir /mnt/read mkdir /mnt/

samba共享目录多台主机挂载,搭建WordPress

项目实践一: (1) 使用samba共享/data/application/web,在目录中提供wordpress; (2) 使用samba客户端挂载samba server共享的目录至/var/www/html: (3) 客户端(lamp),部署wordpress,并让其正常访问:要确保能正常发文章,上传图片: (4) 客户端2(lamp),挂载samba server共享的目录至/var/www/html:验正其wordpress是否可被访问:要确保能正常发文章,上传图片: 项目实践二: (

Linux的Samba共享

实验04:SAMBA共享 实验目标 在Linux上完成SAMBA共享的配置,并验证配置. 实验要求 samba匿名共享 工作组设为Tarena 共享名设为 tools 将目录 /usr/src 共享给所有人 允许所有人访问.无需密码验证 访问权限为只读 实验步骤 1.安装软件包 [[email protected] ~]# rpm -q samba-client samba samba-common package samba-client is not installed package sa

搭建Samba共享服务及访问控制

Samba共享服务 Linux如何访问Windows的共享? Windows能实现访问Linux的共享吗? 关于Samba --SMB/CIFS协议 -- Server Message Block ,服务消息块 -- Common Internet File System , 通用网际文件系统 Samba服务基础 主要软件包 [[email protected] Server]# rpm -qa | grep samba samba-common-3.0.33-3.39.el5_8