设置共享文件夹,samba和chmod到底谁的权限大

时间:2022-07-18 15:23:26

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

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

Samba

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

Chmod

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

abc权限设置

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

r=4w=2x=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设置其为共享文件夹。此时,同时修改chmodvalid user来进行比较。

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

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

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

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

 

4,结论。

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

 

5,特殊说明。

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

2samba中的valid user对文件夹的ownergroup user other具有同等的权限赋予能力。