Linux下修改文件权限,所有权
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)
上一篇: [Go] 分页计算页码的主要逻辑