chmod文件夹

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具有同等的权限赋予能力。