Linux权限详解
Posted xiao zhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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权限详解的主要内容,如果未能解决你的问题,请参考以下文章