linux 文件夹权限详解
Posted 彼岸锋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 文件夹权限详解相关的知识,希望对你有一定的参考价值。
linux 如何设置文件夹权限
1、文件组成
在linux 中文件权限由 9 位字符组成,其中分为三部分
1.1、第一部分 文件所有者(Owner)
就是图片中黄色的部分 文件所有者的权限
1.2、第二部分 用户组(Group)
就是图片中绿色的部分 用户组的权限
1.3、第三部分 其它用户(Other Users)
就是图片中蓝色的部分 其它用户的权限
1.4、文件类型
图中第一竖排就是文件类型
2、文件标识/权限标识
2.1、文件/权限标识`-`
- 在文件第一排代表着 其他文件 的意思,如果在文件权限中代表着没有该权限的意思
2.2、文件标识`d`
d 在文件中代表着他是一个文件夹
2.2、文件标识`l`
l 在文件中表示他是一个软连接,就是我们经常说的快捷方式
2.3、权限标识`r`
r 在文件中表示他是一个可读的文件,如果在黄色区域内,就代表着他对文件所有者可读,如果在绿色区域内,就代表着他对文件所有组可读,如果在蓝色区域内,就代表着他对其他用户可读
2.4、权限标识`w`
w 在文件中表示他是一个可写的文件,如果在黄色区域内,就代表着他对文件所有者可写,如果在绿色区域内,就代表着他对文件所有组可写,如果在蓝色区域内,就代表着他对其他用户可写
2.5、权限标识`x`
x 在文件中表示他是一个可执行的文件,如果在黄色区域内,就代表着他对文件所有者可执行,如果在绿色区域内,就代表着他对文件所有组可执行,如果在蓝色区域内,就代表着他对其他用户可执行
3、权限的数值
r ------> 4
w ------> 2
x ------> 1
- ------> 0
4、认识文件权限
d rwxrwxrwx 换成数值就是 d 4+2+1 4+2+1 4+2+1 也就是 777
换算成叫法就是 对文件使用者可读可写可执行,对组可读可写可执行,对其他用户可读可写可执行
d r--r--r-- 换成数值就是 d 4+0+0 4+0+0 4+0+0 也就是 444
换算成叫法就是 对文件使用者可读不可写不可执行,对组可读不可写不可执行,对其他用户可读不可写不可执行
- rw-rw-r-x 换成数值就是 d 4+2+0 4+2+0 4+0+1 也就是 665
换算成叫法就是 对文件使用者可读可写不可执行,对组可读可写不可执行,对其他用户可读不可写可执行
5、设置文件权限
chmod [-R] 权限值 文件名
-R 可写可不写 写上的话就是相当于 该文件以及该文件下的所有子文件的权限 不写的话就相当于该文件的权限
5.1、用权限值设置文件权限(常用)
例:
1、设置文件 a 为 文件所有者 可读可写可执行 权限,所属组 可读可执行 权限,其他人 可读权限
也就是 4+2+1 4+2+0 4+0+0
命令 :chmod 764 a
2、设置文件 a 及 a下的所有子文件 为 文件所有者 可读可写可执行 权限,所属组 可读可执行 权限,其他人 可执行权限
也就是 4+2+1 4+0+1 0+0+1
命令 :chmod -R 751 a
5.2、用权限名称设置文件权限
设置所属权限 :文件所有者 u 用户组 g 其他用户 o 所有权限 a
设置操作符号:+ 用来添加权限 - 用来减少权限 = 用来赋值权限
设置权限: r 可读 w 可写 x 可执行
例:
1、设置文件 a 为 文件所有者 可读可写可执行 权限,所属组 可读可执行 权限,其他人 可读权限
也就是 u=rwx g=wx o=w
命令:chmod u=rwx,g=rx,o=r a
2、减少文件 a 为 文件所有者 可执行 权限,所属组 可读可 权限,其他人 可读权限
也就是 u=rwx g=wx o=w
命令:chmod u-x,g-r,o-r a
3、添加文件 a 为 文件所有者 可执行 权限,所属组 可读可 权限,其他人 可读权限
也就是 u=rwx g=wx o=w
命令:chmod u+x,g+r,o+r a
4、设置文件 a 为所有权限为可读可写
也就是 a=rw
命令:chmod a=rw a
花开一千年,花落一千年,花叶永不见
Linux权限详解
Linux权限详解
用户分类
1、超级用户(root):在Linux下可做任何事情,不受权限限制
2、普通用户(自己创建的用户):受到一定的权限限制。
用户之间的切换
1、超级用户切换成普通用户:(1)su [用户名]
(2)ctrl+d
(3)exit指令
2、普通用户切换成超级用户:su -
3、当处于普通用户进行某些操作受到权限限制时,我们可以在命令前+sudo来达到短暂提升用户权限的作用。
文件权限的介绍
红框内共有十个字符,第一个字符代表文件的类型。
后九个字符,三三为一组,分别代表“拥有者”,“所有组”以及“other”对于文件的“读、写、执行”的三种权限
r - 读文件的权限
w - 写文件的权限
x - 执行文件的权限
注:1.如果没有该权限,就会用-占位
sadk2.rwx的位置是固定不变的。
文件的类型
在Linux中,文件的类型不像Windows一样由文件的后缀表示,而是由最前面的字符表示
d | 文件夹 |
---|---|
- | 普通文件 |
l | 软链接(类似于Windows中的快捷方式) |
p | 管道文件 |
c | 字符设备文件(例如屏幕) |
s | 套接口文件 |
对于文件的角色
有三种相对于文件的角色。
角色 | 性质 |
---|---|
拥有者(u) | 文件的创建者 |
所属组(g) | 可以看做是与拥有者协同开发的人员 |
other(o) | 外部人员,除拥有者和所属组外的所有人都是other |
可以给不同角色以不同的权限,保证适合的人可以恰当的对文件进行操作。
举个例子:有A、B两个工作组,两个工作组互相不想让对方看到自己的文件,那么就要取消other的“rwx”。而在A组中,a创建了一个文件,a需要与同组同事协同开发,那么a就是文件拥有者,同组其他同事就可以是所属组,就要给他们设定相应的权限。
权限的作用
权限对于普通文件来说:
r(读):无法读取文件内容
w(写):无法向文件中写入内容
x(执行):执行对应文件的二进制文件
权限对于目录来说:
r(读):作用是显示文件下的内容
w(写):在目录下创建删除文件
x(执行):是文件操作的基本权限,没有执行权限那么就不能显示文件,创建删除文件。
更改文件权限——chmod命令
使用:chmod [对象]+/- [权限][文件名]
对象:u-拥有者
…\\wx.g-所属组
…\\wx.o-other
…\\wx.不指明对象则默认给三个对象同时操作,或者a-all(操作对象是所有)
还可以一次命令对多个对象的权限进行修改,需要逗号分隔
即使文件没有读写权限,但是root作为超级用户,即使没有权限也可以随意操作。
权限修改的八进制方案
使用3个比特位来某一个对象的权限内容,具体如下:
rwx | 111 | 7 |
---|---|---|
rw- | 110 | 6 |
r-x | 101 | 5 |
r– | 100 | 4 |
-rx | 011 | 3 |
-w- | 010 | 2 |
–x | 001 | 1 |
— | 000 | 0 |
更改权限对象
更改文件所有者–chown
其他用户要把文件所有者变成root,那么就需要指令的权限提升,就需要添加"sudo "。
root把文件给其他普通用户的话就不需要,可以直接更改。
更改所属组–chgrp
同更改文件所有者一样,也需要权限提升,使用“sudo”
更改other
其实没有更改other的指令,但是更改了拥有者和所属组,那么作为other其余人也随之改变
可以拥有者和所属组同时更改:chown XXX :XXX 文件名(必要时也需要添加sudo)
umask
我们随意创建一个文件 或者目录,都会有一个默认权限
那么,为什么默认权限就是-rw-rw-r–这样呢?
普通文件默认起始权限从“666”开始,目录的默认起始权限从“777”开始。同时起始权限还与umask有关。设定一个umask那么,umask中出现的权限位都不应该在最终权限的八进制表示中出现。
目前Linux默认的umask是002
下面以文件为例来具体解释一下:
因此,如果我们去更改umask,则会更改起始权限,所创建的文件的默认权限也会随之更改。
总结一个公式:默认权限 = default & (~umask)
default:默认起始权限八进制表示
umask:umask的权限八进制表示
粘滞位
先看一种现象
有一个公开文件,文件不属于你,但是你可以随意增加删除文件。有些情况问题不大,但是有时候这不是你想要的情况,other随意删除不属于他自己的文件是一个十分危险的事情。
那么我们就需要一定的方式来解决这个问题,这个时候我们就需要粘滞位来起作用。
以上是关于linux 文件夹权限详解的主要内容,如果未能解决你的问题,请参考以下文章