1,必备知识。已经知道的请跳过。

首先科普一下这两个东西:samba和chmod其实是完全不同层面的东西,一个是共享服务协议,一个是权限设置语句。但是他们有一个共同的用途:可以用来实现设置一个共享文件夹的访问权限。

Samba:

Samba是用来实现SMB的一种软件,咱们在这里在了解一下SMB(Server MessageBlock,服务信息块)。SMB协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。

Chmod:

可以使用命令chmod来为文件或目录赋予权限。Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。

abc权限设置:

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1

若要rwx属性则4+2+1=7;

若要rw-属性则4+2=6;

若要r-x属性则4+1=5。

2,使用方法。

Samba设置一个文件夹的权限步骤:

(1)编辑samba配置文件:sudo vi /home/etc/samba/smb.conf

内容如下:

[共享文件夹名]

Path=/home/…/文件夹名

Valid user=用户名1,用户名2,用户名3…

Create mask=0777(此处权限设定依具体情况而定)

(2)重启samba使之生效:sudo smbd restart

chmod更改一个文件夹的权限步骤:

格式:chmod [-cfvR] [--help] [--version] abc /home/…/文件夹名

3,比较实验。

那么这两个家伙谁的权力大,谁的级别高呢,我做了如下一系列的实验:

创建一个文件夹,修改smb.conf设置其为共享文件夹。此时,同时修改chmod和valid user来进行比较。

(1)chmod abc>770 (如771,772,773,775,776,777) ;  valid user= user name A      =>  A有读,写,执行权限

(2)chmod abc<760 ; valid user= user name A   =>  A的权限完全受制于chmod abc,与samba设置无关

(3)chmod abc>770 (如771,772,773,775,776,777) ;  valid user内不包含 user name A (A为group user或者owner)     =>  A无读,写,执行权限

(4)chmod abc<760  ;  valid user内无 user name A    (A为group user或者owner)  =>  A无读,写,执行权限

4,结论。

chmod和samba在近端远端共同控制着一个文件夹的访问权限,相当于一条路的两道关卡,要想通过,缺一不可。chmod是本地控制,对各级用户使用权限具有本地决定权;samba是网端控制,在开放chmod权限的前提下(通常是至少770),才能使用samba进一步设置特定用户权限,具有网端决定权。

5,特殊说明。

(1)若所共享的文件夹处于某一用户目录下,则对于该目录访问权限,该用户仅受本地chmod abc控制,samba对于设置无效。若将文件夹置于root目录下,则不存在这个问题。

(2)samba中的valid user对文件夹的owner,group user ,other具有同等的权限赋予能力。

设置共享文件夹,samba和chmod到底谁的权限大的更多相关文章

  1. linux设置共享文件夹 - samba

    安装samba sudo apt-get install samba 配置 /etc/samba/smb.conf 的global模块添加security = user 最下加入 [share] pa ...

  2. [转]CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?

    CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器? 转自这里 一.为什么要这么做? 最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insi ...

  3. virtualbox设置共享文件夹代替sftp同步代码

    通常的开发场景: 代码放在virtualbox上运行,本地的IDE通过sftp实现和虚拟机的代码同步. 有 一个不能避免的问题是,当使用git时,如果装在virtualbox端,那么每次virtual ...

  4. VirtualBox CentOS安装增强功能与设置共享文件夹

    如果安装的是CentOS minimal版无网络的可以看这篇文章. 一.安装依赖环境 依次执行如下命令 yum install update yum install kernel-headers yu ...

  5. VirtualBox设置共享文件夹和镜像访问的方法

    VirtualBox设置共享文件夹和镜像访问的方法 virtualBox是一款虚拟机软件,可以在该软件上安装各类的操作系统,至于如何安装请参见另外一篇经验<如何使用VirtualBox安装win ...

  6. vbox里面的Ubuntu虚拟机与主机win7之间设置共享文件夹

    有时候我们希望虚拟机和主机之间进行通信,例如传一些文件.那么设置共享文件夹就是一种很好的方式. 这里我的主机是win7系统,vbox里面的虚拟机是Ubuntu. 1.首先安装vbox的VBOXGues ...

  7. kali在vbox上运行设置共享文件夹

    mount -t vboxsf VBoxShared /root/Desktop/vbox 0x00 使用共享文件夹的前提 需要自行安装增强功能:https://jingyan.baidu.com/a ...

  8. ubuntu root 密码是随机的! root权限下设置共享文件夹

    一.Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码.我们可以在终端输入命令 sudo passwd,然后输入当前用户的密码,enter, 二.终端会提示我们输入新的密码并确 ...

  9. virtualbox安装增强功能并设置共享文件夹

    virtualbox安装增强功能并设置共享文件夹 我们在安装之前,必须得先安装好它所需要的依赖包,不然安装过程必定会出现错误! 一.安装依赖包 #yum install kernel-headers# ...

随机推荐

  1. 使用Bootstrap

    开始使用Bootstrap 作为一名Web开发者而言,如果不借助任何前端框架,从零开始使用HTML和CSS来构建友好的页面是非常困难的.特别是对于Windows Form的开发者而言,更是难上加难. ...

  2. ThinkPHP框架设计与扩展总结

    详见:http://www.ucai.cn/blogdetail/7028?mid=1&f=5 可在线运行查看效果哦 导言:ThinkPHP框架是国内知名度很高应用很广泛的php框架,我们从一 ...

  3. Android开展Exception:ActivityNotFoundException: Unable to find explicit activity class

    project出现在一个以上的activity,不AndroidManifest.xml配置,在阅读的时候,你需要知道的配置activity,使用时间或忘记配置.流汗!配置activity后proje ...

  4. linux 下一个 jira-6.3.6 组态 皴 翻译 迁移数据库

    每一个版本号翻译包下载  https://translations.atlassian.com/dashboard/download jira下载地址  https://www.atlassian.c ...

  5. jmeter 控制器

    Critical Section Controller :

  6. JS解析DataSet.GetXML()方法产生的xml

    在实际的项目制作过程中,经常要采用ajax方式来进行,当然,这就免不了要进行数据交换.如果采用拼接字符串的方式来进行,不仅拼接的时候麻烦,而且在拆解的时候更加麻烦,一旦遇到特殊字符,那么就是灾难了.因 ...

  7. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  8. 非接触式电子音乐控制器CHIMAERA

    本篇文章,我将介绍个有意思的设备. 她就是Chimaera,一个基于电磁场效应的非接触式电子音乐控制器. <弹奏Chimaera的声音> 霍尔效应传感器阵列及其周围部件组成了一个连续的2D ...

  9. 【jar包】JSON之解析利器GSON--【gson-2.2.4.jar】

    Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为串行化Java对象为JSON字符串,或反串行化JSON字符串成Java对象.GSON核心jar包不到 ...

  10. 如何给TableLayout加边框

    呵呵,其实很简单 就是将TableLayout定义一种颜色,在给TableRow定义一种颜色.通过TableRow的layout_margin挤出一个像素的宽度就变成了TableLayout的宽度.这 ...