百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

2Linux网络服务之Samba文件共享服务

ahcoder 2025-02-18 10:19 10 浏览

Samba文件共享服务

一 Samba服务介绍

Samba是著名的开源软件之一,它在linux上实现了微软的SMB/CIFS网络协议,能跨平台实现文件互访问题

1 Samba软件包构成

samba-3.0.33-3.28.el5 //服务端软件(默认安装)


samba-common-3.0.33-3.28.el5 //公共组件(默认安装)


samba-client-3.0.33-3.28.el5 //客户端软件(默认安装)


samba-swat-3.0.33-3.28.el5.i386.rpm //web图形管理软件

2 Samba服务器的主要程序

smbd:提供对服务器中文件、打印资源的共享访问

nmbd:提供基于NetBIOS主机名称的解析

3 Samba的服务脚本

/etc/init.d/smb

4 Samba的配置目录及文件

/etc/samba/

/etc/samba/smb.conf

配置文件检查工具:testparm

二 主配置文件smb.conf

1 配置文件默认共享

vim /etc/samba/smb.conf

[global] //全局设置

workgroup = MYGROUP //所在工作组名称

server string = Samba Server Version %v //服务器描述信息

security = user //安全级别,可用值如下: share、user、server、domain

passdb backend = tdbsam //设置共享账户文件的类型

load printers = yes

cups options = raw

[homes] //宿主目录共享设置

comment = Home Directories //对共享目录的注释、说明信息

browseable = no //该共享目录在“网上邻居”中是否可见

writable = yes //是否可写,与read only的作用相反

[printers] //打印机共享设置

comment = All Printers

path = /var/spool/samba //共享目录在服务器中对应的实际路径

browseable = no

guest ok = no //是否允许所有人访问,等效于“public

writable = no

printable = yes

2 自定义共享目录

vim /etc/samba/smb.conf

[global] //全局设置

workgroup = MYGROUP //所在工作组名称

server string = Samba Server Version %v //服务器描述信息

security = user //安全级别,可用值如下: share、user、server、domain

passdb backend = tdbsam //设置共享账户文件的类型

load printers = yes

cups options = raw

[homes] //宿主目录共享设置

comment = Home Directories //对共享目录的注释、说明信息

browseable = no //该共享目录在“网上邻居”中是否可见

writable = yes //是否可写,与read only的作用相反

[newname]

comment = RHEL 5.5 DVD directory.

path = /media/cdrom

public = yes //是否用户验证

read only = yes

三 构建文件共享服务器

1 安装samba软件

yum install samba //安装

rpm -qa samb* //查看

2 可匿名访问的共享

1)创建共享目录

:mkdir t227

2)修改smb.conf配置文件

vim /etc/samba/smb.conf

[global]

security = share //允许匿名

[t227]

comment=dddddddddd

path=/t227

public=yes //不需要用户验证,所有人都可以访问

readonly=yes //只能读取不能写入

3)可上传的匿名共享

A) 给共享文件夹写入权限

:chmod o+rwx t227

B) 修改配置文件

vim /etc/samba/smb.conf

[global]

security = share

[t227]

comment=dddddddddd

path=/t227

public=yes //无需用户验证

readonly=no //将只读禁止即可

3 需用户验证的共享

Samba使用独立的共享账户数据库文件,其中账户名称必须与它同名的系统用户名相对应,以便对读写权限进行控制,共享账户的密码可以与系统用户的密码不一样

1)创建共享账户

useradd //创建对应系统账户

pdbedit -a u1 //创建同名共享账户

:pdbedit -L //查看共享账户列表

:pdbedit -x u1 //删除共享账户

2)设置用户访问授权

A)新建共享目录 //注意不要将目录创建到root下了

:mkdir t227

B)修改配置文

vim /etc/samba/smb.conf

[global]

security = user

[t227]

comment=alll

path=/t227

public=no

readonly=no //可写入

valid users=lisi,zhangsan //指定访问的用户

write list =lisi //可上传用户

注:有时候在windows上登录时验证时间比较长,即使输入正确的密码也提示错误,只要耐心等待一会即可

C)确定用户访问权限

:chmod o+rw t227 //设置目录写入权限

D)设置上传文件和目录的默认权限

: vi /etc/samba/smb.conf

[tools]

……

directory mask = 0755

create mask = 0644

4 重启服务

:service smb reload

四 用户映射及访问地址限制

1 共享账号映射(别名)

vim /etc/samba/smbusers

root = administrator admin //可以设置多个别名

nobody = guest pcguest smbguest

lisi = nimei qianqian

vim /etc/samba/smb.conf //添加全局配置启用别名

username map=/etc/samba/smbusers

:service smb restart //重启服务

2 访问地址限制

一般用在全局配置[global]部分,也可以用于某个具体的共享配置

hosts allow配置项:仅允许特定的客户机

hosts deny配置项:仅拒绝特定的客户机

客户机地址表示形式:

以空格分隔多个地址

主机名或IP地址,例如: 192.168.168.11 或者 prtsvr

网络地址,例如:173.17. 或者 173.17.0.0/255.255.0.0

vi /etc/samba/smb.conf

hosts allow = 192.168.4. 173.17.

五 访问共享文件夹

1 在linux客户机上的访问

1)查询目标主机上的共享资源列表

smbclient -L 192.168.4.11 //无需输入密码,直接回车即可

  1. 登录并访问共享文件件

:smbclient -U lisi //192.168.4.11/t227

Password:

Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.33-3.28.el5]

smb: \> pwd //查看当前路径

smb: \> ls //显示目录列表

smb: \> lcd /root //切换到本地下载目录

smb: \> cd t227 //切换到共享目录

smb: \> mget share* //下载share开头的文件到/root下

smb: \> quit //退出

  1. 使用mount挂载共享文件夹

挂载后可直接查看共享文件内容

mkdir /media/smbdir //创建挂载目录

mount -o username=lisi //192.168.4.11/tools /media/smbdir/ //挂载

mount | tail -1 //查看挂载状态

//192.168.4.11/tools on /media/smbdir type cifs (rw,mand)

2 windows客户机访问

方法:在运行里输入\\192.168.1.1即可访问

注:需要切换用户时在CMD里输入net use * /del

清除共享用户缓存,清不掉时多执行几次命令即可

六 swat 图像管理工具

1 swat介绍

SWAT是Samba的图形化管理工具。我们可以通过浏览器利用swat工具来设置samba

SWAT工具嵌套在xinetd超级守护进程中,要通过启用xinetd进程来启用swat。因此要先安装xinetd工具包,然后安装swat工具包。

2 编辑swat配置文件

因为swat是xinetd超级守护进程的一个子进程,所以swat配置文件在/etc/xinetd.d目录中

vim /etc/xinetd.d/swat

service swat

{

port = 901 //tcp端口号,可修改

socket_type = stream

wait = no

only_from = 0.0.0.0 //指定来访IP地址,默认只能本机,修改为所有IP

user = root

server = /usr/sbin/swat

log_on_failure += USERID

disable = no //随xinetd一起启动

3 查看TCP端口号是否被添加进去

cat /etc/services | grep 901

如果/etc/services文件中没有tcp901,那么就编辑该文件,添加“swat 901/tcp”即可

4 启动swat

因为swat是xinetd的子进程,所以只要启用了xinetd,那么swat也就会伴随xinetd启动

service xinetd restart

5 防火墙设置

关闭防火墙或者开启swat相关端口。

【关闭防火墙】

[root@RHEL5 /]#service iptables stop


【开启swat901端口,直接写入INPUT链,重启iptables会丢失】

[root@RHEL5 /]#iptables -I INPUT -p tcp --dport 901 -j ACCEPT


【开启swat901端口,通过编辑“RH-Firewall-1-INPUT”自定义链来打开,配置不会丢失】

[root@RHEL5 /]#vi /etc/sysconfig/iptables

加入:-A RH-Firewall-1-INPUT -p tcp --dport 901 -j ACCEPT


【关闭SELinux】

[root@RHEL5 /]#vi /etc/sysconfig/selinux

设置“SELINUX=disabled”

6 使用web登入swat

http://192.168.120.241:901

七 实验


作者:马向军 时间:2013-05-07

实验目的:构建samba文件共享服务器,模拟公司内部共享需求

实验要求:

1 公司需要一个所有员工都能访问,但只有读取权限的共享目录

2 公司需要一个管理员和技术部所有员工都能访问,但只有读取权限、禁止其他员工访问的共享目录

3 公司需要一个技术不所有员工可以读取,但只有管理员和项目组的所有员工可以写入的共享目录

实验环境:如图所示

实验步骤:

1,在服务器上安装samba服务

yum install samba //安装

rpm -qa samb* //查看

2,创建组、用户和共享账户

:groupadd jishu 创建技术组

:groupadd xiangmu 创建项目组

:useradd jishu1 创建技术组员工

:useradd xiangmu1 创建项目组员工

:pdbedit -a jishu1 添加共享账户jishu1

:pdbedit -a xiangmu1 添加共享账户xinagmu1

:gpasswd -a jishu1 jishu 将技术组员工加入基本组jishu

:gpasswd -a xiangmu1 xiangmu 将项目组员工加入基本组xiangmu

要求1

mkdir public 创建目录

vim /etc/samba/smb.conf 添加共享目录

[public]

comment=all

path=/public

public=yes 所有人都可以访问

readonly=yes 不能写入

:service smb restart 重启服务

要求2

:mkdir jishu

:pdbedit -a root 添加共享账户root

vim /etc/samba/smbusers 为root用户设置别名

root = admin

vim /etc/samba/smb.conf 配置共享目录

[jishu]

comment=jishu

path=/jishu

public=no //不公开

readonly=yes //不能写入

valid users=admin,@jishu //只admin和技术部员工能访问

要求3

:mkdir xiangmu

vim /etc/samba/smb.conf 配置共享目录

[xiangmu]

comment=jishu

path=/jishu

public=no //不公开

readonly=no //可写入

valid users=admin,@xiangmu,@jishu //可访问列表

write list=admin,@xiangmu //可写入用户

:chown :xiangmu xiangmu //给共享目录设置属组

:chmod g+w xiangmu //设置属组可写

:service smb restart //重启服务

相关推荐

Linux ntp时钟同步问题(linux ntp同步命令)

有时候,操作系统会报linux的ntp时钟错误。从时钟源同步时间超时。我查看了一下ntp的时钟源,发现执行ntpq-p显示超时。执行nslookup时钟服务器域名,发现可以正常解析。执行了n...

linux服务器同步利器Rsync全介绍(付脚本)

1、认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件...

如何使用Rsync同步两个网站服务器的内容

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。如需学习视频,请复制以下信息到手机浏览器或电脑浏览器上:zc...

Linux TB级小文件同步备份解决方案

在某些电子档案存储的业务系统下,按照业务场景要求,需要将产生的所有电子影像资料永久存储,并支持备份;因为“钞能力”等原因,一般备份存储只有一个节点(即:一个备份存储服务器);这样就要求研发工程师,不...

CentOS7下使用Lsyncd实现文件实时同步

Lsyncd简单介绍Lsyncd使用文件系统事件接口(inotify或fsevents)来监视本地文件和目录的更改。Lsyncd在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更...

如何手动同步Linux系统时间并与互联网时间保持同步?

在Linux系统中,正确的时间同步对于许多任务都是至关重要的。一些关键应用程序可能需要准确的时间戳才能正常工作,而一些安全功能也需要确保所有服务器的时间都是准确的。NTP服务可以自动同步系统时间和互...

Linux服务器Rsync定时同步一键化配置指南

1、主从服务器同时安装rsyncopenssh-clientaptupdate&&aptinstall-yrsyncopenssh-client2、主服务器安装好后输入以下命令生成密钥...

Linux系统如何使用NTPDATE命令设置时间同步

简介:咱们在使用Linux系统的时候,常常能发现用了一阵子之后,Linux系统的时间就对不上了。已经知道的情况是,安装Linux的时候选的时区是Asia/Shanghai,可这系统运行了一...

开源的Linux文件同步工具有哪些?(linux 文件夹 同步)

Linux系统之间经常需要文件同步,一个好的文件同步工具省时省力,这里介绍几款开源的Linux文件同步工具1.rsync:rsync是Linux上一个功能强大的命令行工具,可以在不同的服务器之间同...

Linux 系统使用 rsync + inotify 实现文件实时同步

Linux系统使用rsync+inotify实现文件实时同步简介inotify监控文件的变化后通知rsync进行文件的同步#配置免密登录ssh-keygen-trsaca...

Linux 远程数据同步工具详解(linux远程同步命令)

一、简介1认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之...

构建基于 Linux 的 NTP 时间同步集群与时间安全防护实战指南

一、为什么时间同步对系统如此重要?在分布式系统、数据库复制、消息队列、审计日志、安全认证(如Kerberos)、容器编排等场景中,系统时间一致性是保障正确性与安全性的基础。一旦服务器间时间漂移,可能...

每日Linux学习:同步备份工具 rsync

rsync是一个用于高效同步文件和目录的工具。它通过仅传输变化的部分(增量传输)来节省时间和带宽,支持本地同步、远程同步(通过SSH),还能保留文件原有权限、时间戳等属性。本文通过几个常用的实例来...

Chromixium OS 1.0发布 基于Ubuntu发行版

Chromixium项目宣布chromixiumOS1发布,一款基于Ubuntu的Linux分支,chromixiumOS试图重新打造一款外观和感觉与ChromeOS相似的完...

iOS8.0.X~iOS8.1完美越狱!盘古团队出品

【巴士速递·移动情报站】最新消息,iOS8.1越狱了!!此次越狱依旧是iOS7时代我国的大神盘古团队带来的,而该次越狱支持最新的iPhone6、iPhone6Plus、iPadAir2和iPad...