一种解决samba故障的方法及装置与流程

文档序号:12176726阅读:397来源:国知局
一种解决samba故障的方法及装置与流程

本发明涉及系统应用技术领域,特别涉及一种解决samba故障的方法及装置。



背景技术:

samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,SMB是Server Message Block的缩写,即为服务器消息块,SMB是作为Microsoft的网络通讯协议,而且samba将SMB通信协议应用到了Linux系统上,就形成了现在的samba软件。当samba故障出现了故障之后,因为samba软件的特殊性,导致解决samba故障变成了一个难以诊断和解决的问题。如何妥善的解决上述问题,就成为了业界亟待解决的课题。



技术实现要素:

本发明提供一种解决samba故障的方法及装置,用以高效便捷的解决在linux系统中出现samba故障的问题。

根据本发明实施例的第一方面,提供一种解决samba故障的方法,包括:

分别查询samba的工程文件夹的权限和当前用户的用户文件夹的权限;

根据所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限,修改SELinux的运行状态;

对修改后的所述SELinux进行设置;

使用windows客户端测试samba的运行情况。

在一个实施例中,所述分别查询samba的工程文件夹的权限和当前用户的用户文件夹的权限,包括:

确定系统中当前用户的用户名和所述当前用户所在的用户组的用户组名;

根据所述当前用户的用户名和和所述当前用户所在的用户组的用户组名,确定出所述当前用户的用户文件夹的地址;

分别查看samba的全局参数、本地参数和项目参数中的任一者或多者的参数;

根据所述全局参数、本地参数和项目参数中的任一者或多者的参数,确定出所述samba的工程文件夹的地址;

根据所述当前用户的用户文件夹的地址和所述samba的工程文件夹的地址,分别出查询samba的工程文件夹的权限和当前用户的用户文件夹的权限。

在一个实施例中,所述根据所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限,修改SELinux的运行状态,包括:

当所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限符合预设的第一权限时,查询所述SELinux的运行状态;

当查询出的所述SELinux的运行状态符合预设的第一运行状态时,半闭所述SELinux。

在一个实施例中,所述对修改后的所述SELinux进行设置,包括:

定位到所述samba的工程文件夹的地址;

在所述samba的工程文件夹的地址的路径下,设置第二权限。

在一个实施例中,所述使用windows客户端测试samba的运行情况,包括:

在同一局域网内,登录windows客户端;

测试所述windows客户端与linux客户端之间的文件及打印机的共享服务是否可以成功运行;

当所述共享服务可以成功运行时,确认所述samba故障已经成功解决。

根据本发明实施例的第二方面,提供一种解决samba故障的装置,包括:

查询模块,用于分别查询samba的工程文件夹的权限和当前用户的用户文件夹的权限;

修改模块,用于根据所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限,修改SELinux的运行状态;

设置模块,用于对修改后的所述SELinux进行设置;

测试模块,用于使用windows客户端测试samba的运行情况。

在一个实施例中,所述查询模块,包括:

第一确定子模块,用于确定系统中当前用户的用户名和所述当前用户所在的用户组的用户组名;

第二确定子模块,用于根据所述当前用户的用户名和和所述当前用户所在的用户组的用户组名,确定出所述当前用户的用户文件夹的地址;

查看子模块,用于分别查看samba的全局参数、本地参数和项目参数中的任一者或多者的参数;

第三确定子模块,用于根据所述全局参数、本地参数和项目参数中的任一者或多者的参数,确定出所述samba的工程文件夹的地址;

第一查询子模块,用于根据所述当前用户的用户文件夹的地址和所述samba的工程文件夹的地址,分别出查询samba的工程文件夹的权限和当前用户的用户文件夹的权限。

在一个实施例中,所述修改模块,包括:

第二查询子模块,用于当所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限符合预设的第一权限时,查询所述SELinux的运行状态;

半闭子模块,用于当查询出的所述SELinux的运行状态符合预设的第一运行状态时,半闭所述SELinux。

在一个实施例中,所述设置模块,包括:

定位子模块,用于定位到所述samba的工程文件夹的地址;

设置子模块,用于在所述samba的工程文件夹的地址的路径下,设置第二权限。

在一个实施例中,所述测试模块,包括:

登录子模块,用于在同一局域网内,登录windows客户端;

测试子模块,用于测试所述windows客户端与linux客户端之间的文件及打印机的共享服务是否可以成功运行;

第四确认子模块,用于当所述共享服务可以成功运行时,确认所述samba故障已经成功解决。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明一示例性实施例示出的一种解决samba故障的方法的流程图;

图2为本发明一示例性实施例示出的一种解决samba故障的方法的步骤S11的流程图;

图3为本发明一示例性实施例示出的一种解决samba故障的方法的步骤S12的流程图;

图4为本发明一示例性实施例示出的一种解决samba故障的方法的步骤S13的流程图;

图5为本发明一示例性实施例示出的一种解决samba故障的方法的步骤S14的流程图;

图6为本发明一示例性实施例示出的一种解决samba故障的装置的框图;

图7为本发明一示例性实施例示出的一种解决samba故障的装置的查询模块61的框图;

图8为本发明一示例性实施例示出的一种解决samba故障的装置的修改模块62的框图;

图9为本发明一示例性实施例示出的一种解决samba故障的装置的设置模块63的框图;

图10为本发明一示例性实施例示出的一种解决samba故障的装置的测试模块64的框图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是根据一示例性实施例示出的一种解决samba故障的方法流程图,如图1所示,该解决samba故障的方法,包括以下步骤S11-S14:

在步骤S11中,分别查询samba的工程文件夹的权限和当前用户的用户文件夹的权限;

在步骤S12中,根据所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限,修改SELinux的运行状态;

在步骤S13中,对修改后的所述SELinux进行设置;

在步骤S14中,使用windows客户端测试samba的运行情况。

在一个实施例中,解决samba故障首先需要分别查询samba的工程文件夹的权限和当前用户的用户文件夹的权限。进一步的,需要确定系统中当前用户的用户名和该当前用户所在的用户组的用户组名,然后根据该当前用户的用户名和和该当前用户所在的用户组的用户组名,确定出该当前用户的用户文件夹的地址。以及分别查看samba的全局参数、本地参数和项目参数中的任一者或多者的参数,进而根据该全局参数、本地参数和项目参数中的任一者或多者的参数,确定出该samba的工程文件夹的地址。从而根据上述的该当前用户的用户文件夹的地址和该samba的工程文件夹的地址,分别出查询samba的工程文件夹的权限和当前用户的用户文件夹的权限。

接下来,根据该samba的工程文件夹的权限和该当前用户的用户文件夹的权限,修改SELinux的运行状态。详细的步骤为,先判断该samba的工程文件夹的权限和该当前用户的用户文件夹的权限是否符合预设的第一权限时,当符合时,查询该SELinux的运行状态。当查询出的该SELinux的运行状态符合预设的第一运行状态时,半闭该SELinux。

对修改后的该SELinux进行设置。进一步的,需要定位到该samba的工程文件夹的地址。该samba的工程文件夹的地址的路径下,设置第二权限。

最后,使用windows客户端测试samba的运行情况。执行的过程为在同一局域网内,首先登录windows客户端。然后测试该windows客户端与linux客户端之间的文件及打印机的共享服务是否可以成功运行。当该共享服务可以成功运行时,确认该samba故障已经成功解决。

本发明可高效便捷的解决在linux系统中出现samba故障的问题。

在一个实施例中,如图2所示,步骤S12包括如下步骤S21-S25:

在步骤S21中,确定系统中当前用户的用户名和所述当前用户所在的用户组的用户组名;

在步骤S22中,根据所述当前用户的用户名和和所述当前用户所在的用户组的用户组名,确定出所述当前用户的用户文件夹的地址;

在步骤S23中,分别查看samba的全局参数、本地参数和项目参数中的任一者或多者的参数;

在步骤S24中,根据所述全局参数、本地参数和项目参数中的任一者或多者的参数,确定出所述samba的工程文件夹的地址;

在步骤S25中,根据所述当前用户的用户文件夹的地址和所述samba的工程文件夹的地址,分别出查询samba的工程文件夹的权限和当前用户的用户文件夹的权限。

在一个实施例中,首先需要确定出系统中的当前用户和当前用户所在的用户组,以便可以进一步的获取当前用户的用户名和当前用户所在的用户组的用户组名。根据该当前用户的用户名和和该当前用户所在的用户组的用户组名,就可以在系统中查找到该当前用户的用户文件夹的地址。

分别查看samba的全局参数、本地参数和项目参数中的任一者或多者的参数,例如可以查看到下述信息:

[global]

netbios name=SERVER.REDHAT.SUN

server string=Samba Server Version%v

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

max log size=50

load printers=No

idmap config*:backend=tdb

cups options=raw

[homes]

comment=Home Directories

read only=No

browseable=No

[project]

comment=smbuser's project

path=/home/project

write list=@users

read only=No

根据上述的全局参数、本地参数和项目参数中的任一者或多者的参数,确定出samba的工程文件夹的地址,以及该工程文件夹的参数。根据该当前用户的用户文件夹的地址和所述samba的工程文件夹的地址,分别出查询samba的工程文件夹的权限和当前用户的用户文件夹的权限。

在一个实施例中,如图3所示,步骤S12包括如下步骤S31-S32:

在步骤S31中,当所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限符合预设的第一权限时,查询所述SELinux的运行状态;

在步骤S32中,当查询出的所述SELinux的运行状态符合预设的第一运行状态时,半闭所述SELinux。

在一个实施例中,该第一权限是指samba的工程文件夹可读,但是不可以写,以及该当前用户的用户文件夹不可读也不可写。当该samba的工程文件夹的权限和该当前用户的用户文件夹的权限符合预设的第一权限时,自动查询该SELinux的运行状态,例如可以通过查询语句“[root@server~]#getenforce”来查看。该预设的第一运行状态为“Enforcing”,当查询出的所述SELinux的运行状态为“Enforcing”时,执行半闭SELinux的操作。例如,通过下述指令“[root@server~]#setenforce 0”来半闭SELinux。

在一个实施例中,如图4所示,步骤S13包括如下步骤S41-S42:

在步骤S41中,定位到所述samba的工程文件夹的地址;

在步骤S42中,在所述samba的工程文件夹的地址的路径下,设置第二权限。

在一个实施例中,定位到该samba的工程文件夹的地址,例如通过指令“/etc/samba/smb.conf”来实现samba的工程文件夹的地址的定位。在该samba的工程文件夹的地址的路径下,设置第二权限,例如执行语句“setsebool-P samba_enable_home_dirs on”来设置第二权限。之后,再运行“chcon-t samba_share_t/home/project

[root@server~]#ls-ldZ/home/project/

drwxrws---.root users unconfined_u:object_r:samba_share_t:s0/home/project/”进一步的设置第二权限。

在一个实施例中,如图5所示,步骤S14包括如下步骤S51-S53:

在步骤S51中,在同一局域网内,登录windows客户端;

在步骤S52中,测试所述windows客户端与linux客户端之间的文件及打印机的共享服务是否可以成功运行;

在步骤S53中,当所述共享服务可以成功运行时,确认所述samba故障已经成功解决。

在一个实施例中,samba是用来在Linux和UNIX系统上实现SMB协议的。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。在同一局域网内,登录windows客户端,测试所述windows客户端与linux客户端之间的文件及打印机的共享服务是否可以成功运行。当所述共享服务可以成功运行时,确认所述samba故障已经成功解决。

在一个实施例中,图6是根据一示例性实施例示出的一种解决samba故障的装置框图。如图6示,该装置包括查询模块61、修改模块62、设置模块63和测试模块64。

该查询模块61,用于分别查询samba的工程文件夹的权限和当前用户的用户文件夹的权限;

该修改模块62,用于根据所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限,修改SELinux的运行状态;

该设置模块63,用于对修改后的所述SELinux进行设置;

该测试模块64,用于使用windows客户端测试samba的运行情况。

如图7所示,该查询模块61包括第一确定子模块71、第二确定子模块72、查看子模块73、第三确定子模块74和第一查询子模块75。

该第一确定子模块71,用于确定系统中当前用户的用户名和所述当前用户所在的用户组的用户组名;

该第二确定子模块72,用于根据所述当前用户的用户名和和所述当前用户所在的用户组的用户组名,确定出所述当前用户的用户文件夹的地址;

该查看子模块73,用于分别查看samba的全局参数、本地参数和项目参数中的任一者或多者的参数;

该第三确定子模块74,用于根据所述全局参数、本地参数和项目参数中的任一者或多者的参数,确定出所述samba的工程文件夹的地址;

该第一查询子模块75,用于根据所述当前用户的用户文件夹的地址和所述samba的工程文件夹的地址,分别出查询samba的工程文件夹的权限和当前用户的用户文件夹的权限。

如图8所示,该修改模块62包括第二查询子模块81和半闭子模块82。

该第二查询子模块81,用于当所述samba的工程文件夹的权限和所述当前用户的用户文件夹的权限符合预设的第一权限时,查询所述SELinux的运行状态;

该半闭子模块82,用于当查询出的所述SELinux的运行状态符合预设的第一运行状态时,半闭所述SELinux。

如图9所示,该设置模块63包括定位子模块91和设置子模块92:

该定位子模块91,用于定位到所述samba的工程文件夹的地址;

该设置子模块92,用于在所述samba的工程文件夹的地址的路径下,设置第二权限。

如图10所示,该测试模块64包括登录子模块101、测试子模块102和第四确认子模块103。

该登录子模块101,用于在同一局域网内,登录windows客户端;

该测试子模块102,用于测试所述windows客户端与linux客户端之间的文件及打印机的共享服务是否可以成功运行;

该第四确认子模块103,用于当所述共享服务可以成功运行时,确认所述samba故障已经成功解决。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1