Linux文件权限

重点:linux下一切皆文件

linux下有两种用户

1、超级用户,也就是root

2、普通用户

超级用户可以在linux下做任何事情,不受限制。

普通用户在linux下只能做有限的事情。


linux下的文件

第一个字符代表文件类型

-:代表普通文件;d:目录;s:套接字;p:管道;l:链接文件;b:块设备;c:字符设备。

后面九个字符每三个为一组,分别代表user、group、other的权限

rwx代表当前用户拥有读、写和执行的权限(权限可以被修改)

字符表示法
Linux表示说明Linux表示说明
r--只读-w-只写
--x仅可执行rw-可读可写
-wx可写可执行r-x可读可执行
rwx可读可写可执行---无权限
八进制数值表示法
权限符号八进制二进制
r4100
w2010
x1001
rw6110
rx5101
wx3011
rwx7111
---0000

注意:root 啥都能干。

接下来后面的数字代表的是与该文件硬链接的个数,也就是相同的inode的个数,包括自己。

往后走的两组字符串代表的是拥有者和所属组。

20和74代表的是文件的大小,单位字节。

后面的日期代表的是修改时间,字符串代表文件名。


权限的修改

chmod命令

用法:chmod 参数 权限 文件名

用法1:chmod u-r main.c,改变main.c文件的读权限,u代表的是user,-r代表的是删除读权限

同理chmod u+r main.c 增加user对main.c的读权限。对于group和other分别采用g和o来代替u就行

如果一个文件没有对应的操作的权限,就会报Permission denied的错误

用法2:用二进制的方式修改rwx为一组,1代表存在,0代表无权限

u g o所对应的有三组rwx,比如说110 101 011 -> 653,在字符方式所对应下就为rw-r-x-wx。

例如chmod 666 main.c,给u、g和o都添加 r 和 w 权限:

目录的权限

如果将一个目录的读权限去掉,就无法查看目录里面的内容

如果一个目录没有写权限,则不能在目录里面添加新的文件。

如果一个目录没有可执行权限,则无法进入目录,进而导致无法读写。


修改文件的拥有者和所属组 

chown命令:修改文件拥有者

如果直接修改成 root 权限会报错,因为权限不够,需要sudo一下

可以看到main.c的拥有者变为root了。

在普通用户模式下无法修改root用户的文件权限

chgrp命令:修改文件所属组

使用方法与chown同理


-t 权限

正常情况下,不会随意删除其他用户的文件。但是普通用户是可以删除root用户的文件的。

为了解决这个问题,给特定目录设置粘滞位,即采用chmod +t dir 的方式,使得该目录下自己只能删除自己的文件。

给当前目录加上-t 权限 

 


umask 

文件或者目录最开始创建的时候默认的权限是如何来的?

文件的默认权限是666,目录的默认权限是777,但是由于umask的存在,凡是在umask中存在的为1的位都要在实际权限中去掉。umask默认是000 000 010 。例如:

666->

110 110 110

umask-> 

000 000 010

最终权限 ->

110 110 100

umask 的值可以更改

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值