Linux文件权限

Linux是一个面向多用户与多任务的系统。所以对于文件权限的设置就非常重要。
一般一个文件 分为 文件所有者用户组其他
文件所有者:看名字就知道了,是文件的所有人。
用户组:表示的是这个组的人对于这个文件所能进行的操作。
其他:表示的是除了上面两者之外的人。

用户组的概念很重要,他可以让大家协同工作。(一定要注意Linux是面向多用户与多任务的,所以有这么多的概念。)

用ls 查看一个目录,会有

-rwx—r–:之类的。
可以把他们分为3部分,分别编号:1,2,3…..9
1:表示文件的类型。
2,3,4:表示文件所有者可以对该文件进行何等操作
5,6,7:表示用户组可以对该文件进行何等操作
8,9,0:表示其他人可以对该文件进行何等操作

r:表示我可以对这个文件有读的权利
w:表示我对这个文件有写得权利(但是没有删除的权利)
x:表示我对这个文件有执行的权利

如果这个文件是个目录类型呢:
drwx—r-x:
r:表示可以查看该目录下面有什么东西
w:表示可以对这个目录进行异动操作:例如删除这个目录下面的文件(即使这个文件的所有者不是我们自己,但是只要我们对于它所在的这个目录有w权限,那么我们就可以删除它)
x:表示可以把这个目录作为工作目录

注意:
在没有umask的情况下
目录的权限是777
文件的权限是666

相关命令

1.chown name filename:把filename的所有者变为name
2.chgrp name filename:把filename的用户组变为name
3.chmod更改filename的相关权限
r:4
w:2
x:1
那么chmod 441 filename :表示对于所有者我们有4 + 0 + 0有r–的权利
对于用户组我们也是r–,而对于其他我们只是—的权利。
或者用chmod u=r g=r filename来更改相关权限
也可以用chmod a[+-] [r,w,x]来表示对于所有者,用户组,其他都进行[+-][r,w,x]的操作

setuid与setgid

setuid只是对可执行文件有效果,表示的是普通用户执行这个程序时,可以获得 这个文件所有者 一样的权限。
例如:有一个普通文件myfile,属于foo,且是可执行的
那么他的权限假设为:
-rwxr-xr-x 1 foo staff 7734 myfile
说明myfile的所有者为foo,用户组为staff。

Unix内核如何确定一个进程对资源的访问权限:是这个进程的运行用户的有效ID,包括user id和group id。除了这两个ID之外,还有euid,egid。内核主要通过euid与egid来确定进程对资源的访问权限。

一个进程如果没有设置SUID和SGID,那么euid = uid, egid = gid。例如kevin用户的uid和gid分别为204和202,foo用户的uid和gid为200和201,kevin运行myfile程序形成的进程euid=uid=204,egid=gid=202,内核根据这些值来判断进程对资源访问的限制,其实就是kevin用户对资源的访问限制,和foo没关系。

但是如果myfile设置了suid,那么kevin用户运行myfile是形成的euid=200, egid=201,就是foo运行myfile是用的uid与gid,即具有foo的资源访问权限。

类似于suid,对于sgid是其他用户运行时,会获得用户组的权限。
例如一个myfile
-r-xr-sr-x 1 bin system ps,
ps的用户是bin,此时有一个kevin来运行myfile时,就会是相当于system组的成员运行myfile。
上面是sgid对于一个文件来说,如果一个目录设置了SGID,那么其他用户:

  • 用户若对于此目录有r与x的权限,该用户可以进入该目录
  • 用户在此目录下的egid将会变成该目录的群组
  • 用途:若用户在此目录下具有w的权限(可以新建文件),则该用户所建立的新文件的用户组与此目录的用户组是一样的。

注意
需要注意的是如果一个目录有set gid,那么在这个目录下再去创建一个目录,这个新创建的目录也会有set gid,且gid为新创建目录所属目录的gid。

例如:mydir
drwxrwsr-x foo system mydir
那么一个用户kevin来到这个目录下后,kevin的egid就会与system一致,且kevin新建了一个文件kevinfile,这个kevinfile的用户组会是system,即:
drw-rw-r-x kevin system kevinfile

这对于多个人在一个项目组工作很有帮助。

SBIT

只对于目录来说,如果一个目录设置了该权限。那么如果一个用户对于该目录有wx的权限时,它只能删除自己的东西,而不能删除别人的东西(root除外)。

文件的隐藏属性

chattr [+-=] [ASacdistr] filename

+:增加一个特殊属性,其他属性不变
-:移除一个特殊属性,其他属性不变
=: 把该文件或目录的属性设置为后面的参数。

a:设定了a之后,这个文件只能增加数据,而不能删除也不能修改数据,只有root可以设定该属性

i:设定之后,该文件不能删除,改名。只有root可以设置该权限。

lsattr [-adR] filename
-a:将隐藏文件的属性也显示出来
-d:如果接的是目录,仅列出目录本身的属性而非目录内的文件名
-R:连同子目录的数据也一并列出来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值