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. maven和libgdx

    这一篇是关于maven和libgdx的.本来我准备用gradle(现已有gradle模板了),不过暂时有点小问题,而同时libgdx官方提供了maven支持,为了快速上手还是选用maven了. 博客已 ...

  2. C语言库函数大全及应用实例九

    原文:C语言库函数大全及应用实例九                                                [编程资料]C语言库函数大全及应用实例九 函数名: mktemp 功 ...

  3. python向mysql中存储JSON及Nodejs取出

    虽然把JSON数据存入mysql也是比较蛋疼,但是相比使用Nodejs嵌套处理多个mysql查询并拼接返回数据也算是没mongo时的一个折中方案了. 我使用python拼接了一个json格式的字符串, ...

  4. linux下的watch命令

    linux下的watch命令 在linux下,watch是周期性的执行下一个命令,并全屏显示执行结果. watch [-dhvt] [-n <seconds>] [--difference ...

  5. SQL SERVER 2005中如何获取日期(一个月的最后一日、上个月第一天、最后一天、一年的第一日等等)

    原文:[转]SQL SERVER 2005中如何获取日期(一个月的最后一日.上个月第一天.最后一天.一年的第一日等等) 在网上找到的一篇文章,相当不错哦O(∩_∩)O~ //C#本周第一天       ...

  6. c语言内存对齐(1)

    在<C陷阱与缺陷>有这样一个例子: #include <stdio.h> int main(void) { int i; char c; ;i<;i++){ scanf( ...

  7. CSS学习笔记之CSS的继承、层叠和特殊性

    继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代.比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签 ...

  8. App.config

      App.config的学习笔记 昨天基本弄清config的使用之后,再看WP的API,晕了.结果WP不支持system.configuration命名空间,这意味着想在WP上用App.config ...

  9. SQL Server查看表结构及视图,适合开发者使用,简单易用

    SELECT * FROM INFORMATION_SCHEMA.TABLES SELECT * FROM INFORMATION_SCHEMA.COLUMNS 查看执行结果

  10. ASP.NET MVC项目

    ASP.NET MVC项目里创建一个aspx视图 先从控制器里添加视图 视图引擎选"ASPX(C#)",使用布局或模板页不要选. 在Views\EAV目录里,生成的aspx是个单独 ...