Linux的权限概念

Linux下有两种用户:超级用户(root)、普通用户。

超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$

命令: su [用户名]

功能:切换用户

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码

Linux权限管理

文件访问者的分类(人)

文件和文件目录的所有者: u---User(文件的创建者)
文件和文件目录的所有者所在的组的用户: g---Group
其它用户: o---Others (其他人)

文件类型和访问权限(事物属性)

我们输入ls -l 的指令 就会出现有权限的字符

 我们来分析一下drwxr-xr-x 8 root root 4096 0ct 2 22:19 C这个是代表着什么

例如: 拥有者的权限是 rwx 分别对应的是可读可写可执行,如果拥有者没有可读的权限,那在可读的位置会是 “-” 符号,即有权限就会显示相对应的字符,如果没有权限则显示 “-” 。

文件类型

Linux的文件跟windows的有很大的区别,Linux的文件不以文件后缀名来区分,即使我们把一个文件的后缀改为.c 或其他符号,仍然可以进行对其进行编辑运行,但是如果要用到其他工具的话,例如gcc等,是需要对后缀名做区别对待的

例如,我们现在有个a.out文件,我们把这个文件名字改为aaaaa 我们同样可以运行他

这说明Linux不根据后缀名来区别对待文件,但是我们仍然可以用后缀来区别对待文件,仅仅是对我们而言做个提示,对Linux而言,我们认为的后缀,仅仅是名字的一部份

 

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

 文件权限值的表示方法

Linux表示说明Linux表示说明
r--只读-w-仅可写
--x仅可执行rw-可读可写
-wx可写可执行r-x可读可执行
rwx可读可写可执行---无权限

具体这些表示是怎么来的呢?

我们再看一下 每个权限符号对应的八进制和二进制

权限符号八进制二进制
r4100
w2010
x1001
rw6110
rx5101
wx3011
rwx7111
---0000

 文件访问权限的相关设置方法

chmod 指令

功能: 设置文件的访问权限

格式: chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod的命令权限值的修改格式

① 用户表示符“+”“-”“=”权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

例如: chmod u-r aaaaa

我们可以看到,aaaaa的拥有者,已经没有r 可读权限了 

 

例如: chmod g-x aaaaa

我们可以看到,aaaaa的所属组,已经没有x可执行权限了 

如果没有权限会怎么样呢?

我们把所有者的可读权限取消了。​​​​​​

 为什么我们还可以读这个文件呢?

因为我不仅是所有者,我还是所属组的成员,Linux识别你的角色时,从左往右识别的,如果识别到了,就不会再继续识别下去。所以你要取消这个人的可读权限,要取消掉所有者和所属组的角色才行。 

-------------------------------------------------------------

我们还有一种修改的方法,通过三个8进制的数进行修改,把拥有者,所属组,other的可读可写可执行看成二进制表示,有权限为1,无权限为0,再把他们三个看成3个8进制表示,就是我们第二种修改方法。

 

 举例: chmod 000 fail.txt

我们还可以修改文件的拥有者,所属组,通过 chown 指令 更改拥有者,chgrp 指令 更改所属组,我们需要用到root账号,或suco临时提权,才能修改,因为我们不能不经过别人同意,就把文件给别人。

举例:chown other fail.txt

 

 我们可以看到 fail.txt的文件拥有者 已经被改为other了,这里我登的是root账号所以可以随便改。

举例: chgrp other fail.txt

 为什么我们创建文件,创建目录,是我们所看到的权限。

 

 

 

Linux系统默认定义了,我们创建目录的起始权限为777,文件为666,为什么现在目录实际的是755,文件为644?

这是因为Linux会默认配置好一个权限掩码,查看掩码的指令为umask,意思是掩码那一位二进制不为零,那在创建的时候,那一个权限位就会去掉,即默认777,掩码为002,即去掉other的可写权限,具体的运算步骤是,掩码取反与上起始权限。掩码是八进制的,转为二进制,起码权限也是八进制的,转为二进制,进行运算。

 

 

举例如果我们把权限掩码去掉,则我们创建文件和目录的时候,就会是777,666了

 超级用户默认掩码值为0022,普通用户默认为0002

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值