Linux与Unix是多用户操作系统,所以文件的权限与所有权的实现就显得很有必要;每个文件主要与三组权限打交道,分别是用户(user),用户组(group),其他用户(other)

 

用户(u)是文件的所有者,通常有所有的文件的操作权限

用户组(g)是多个用户的集合,可能有文件的部分访问权,相当于各用户之间的共享文件

其他(o)是指文件所有者和用户组成员之外的任何人

 

使用ls -l可以显示出当前目录下的文件类型,权限,所有者以及组在内的多方面信息;

第一列含义为:-(filetype)—(user)—(group)—(other),每组权限对应一个三位的二进制数,第一位表示拥有读(r)的权限,第二位表示有写(w)的权限,第三位表示有执行(x)的权限(若该文件可执行);在拥有相应的权限时相应的位被置为1(否则为0),表示当前对象拥有此权限

 

1:用户可读写执行:-rwx——,通常来说,对于数据文件,用户的权限为rw-,可执行文件与脚本的权限为rwx;对于用户来说,还拥有一个叫做setuid的特殊权限,他能出现权限x的位置,setuid(S)权限允许可执行文件以其拥有者的权限来执行,即使该可执行文件是由其他用户运行的,若被赋予权限则序列为:-rwS——

2:用户组读写可执行:—-rwx—, 对于用户组来说,其拥有一个被称作setgid(S)的特殊权限它允许我们使用任意一个有效用户组来运行该文件,前提是该组需要与该文件的所需组权限相同,,—-rwS—

3:其他用户:——-rwx

 

一:使用chmod(change mode)设置文件权限:

–x=1;-w-=2;r–=4; r-x=5; rw-=6;rwx=7;

假如设置权限:rwxrw-r–

1:chomd 764 filepath

 

2:chmod u=rwx, g=rw, o=r filepath; chmod ugo=r,g=w filepath

 

为文件增添权限或删除权限:

1:增添可执行权限给用户与用户组(+):

chmod u+x, g+x filepath

 

2:删除(-)用户组的可执行权限:

chmod g-x fielpath

chmod g=u-r filepath意为设置用户组的权限为与用户相同的权限,但删除r权限

 

3:给所有(a)的权限类别(即用户,用户组,其他用户)添加/删除可执行权限

chmod a+x filepath

 

二:更改所有权(change owner)

1:使用chown更改文件的所有权,一般用户没有权限来改变别人的文件的拥有者,也没有权限可以将自己的文件的拥有者改设为别人,只有系统管理者(root)才有这样的权限:chown user:group filepath (user , group 为新的用户与用户组)

 

2:给目录设置粘滞位(sticky bit)

粘滞位:目录有一个叫做粘滞位的特殊权限,如果某目录设置了粘滞位,则只有创建该目录的用户才能删除目录中的文件。其出现在其他用户组中的执行权限位置。当设置执行权限时——-rwt,当没有设置执行权限时——-rwT,chmod a+t dirname

 

3:递归方式设置所有权和文件权限,使用选项-R;

chmod 764 . -R

chown user:group . -R

 

补:文件类型:- 普通文件 d 目录(directory); c 字符设备(char);b 块设备(block);l 符号链接(link)s 套接字(socket)p 管道(pipe)

 

 

 

 

 

 

版权声明:本文为hongbo-tao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hongbo-tao/p/11812139.html