【Linux】】Linux权限的理解

一.Linux中的用户

Linux中分为两种用户,分别为:

1.root 用户,也叫超级用户,它的权限非常高,不受其他权限的约束,也就是可以为所欲为;

2.普通用户:除了root用户外,都是普通用户,受权限的约束

我们可以输入命令:ls /home  查看当前根目录下有多少普通用户:

当然也可以添加一些选项,来显示更详细的内容。 

提权命令:sudo

可以让一条指令暂时拥有root的权限,但是新建的用户,sudo没有颁发实行,系统并不信任你;

除非加入到信任白名单内。 


二.什么是权限

1.权限和人有关;

Lniux中,这里的“人”指的是:

     a,所有者

     b,所属组

     c,其他

2.权限和事物的属性有关

Linux下一切皆文件,而文件具有可读,可写,可执行的属性。

三.文件类型和文件权限

如上图所示,这前面的10个字符,第一个字符表示文件类型,后面的9个字符表示文件属性;

文件类型

文件类型一般有:

d:目录文件
-:普通文件(文本,可执行程序,库都属于普通文件)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件(用来进行通信的)
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

最常见的就是目录文件和普通文件了。

文件属性

这里的文件属性包括:可读(r),可写(w),可执行(x),- 表示无任何权限

这里的9个字符是3个为一组的,按照前后顺序表示:所有者,所属组,其他的权限,且每组内rwx的顺序是严格不变的,即:

  1.位置是什么含义是确定的,第一个位置只有 r/- ,以此类推;

  2.每一个位置只有是或者否,具有指定的权限。

所以就可以用二进制的0和1表示。


四.文件权限值的表示方法

字符表示法

 8进制和2进制表示法

有了这些权限值的表示方法,我们就可以修改一个文件的权限了。 


五.文件权限的修改

chmod

字符修改:

所有者,所属组,其它分别用这些字母表示:u,g,o

增加权限  chmod  [u/g/o] + [r/w/x]   文件

例:给文件n1加上可执行权限

 去除权限也是一样的道理,只需把+换成-即可;

八进制修改

一个八进制数字代表一组,所以一共有三个数字,八进制换算成二进制后,就能知道有哪些权限。

实例:


# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt

chown 修改所有者

举个例子,生活中,你把东西给别人,是不是得经过别人得同意啊,别人从你那里拿东西也得经过你的同意。

所以,普通用户是不能自己修改所有者,所属组的,但是root可以,它不受权限的约束。

chown  用户名  文件

例:

 

chgrp 修改所属组

这个用法和chown一致,只不过他修改的是文件所属组。

总结

当然也可以使用chown指令同时修改所有者和所属组,格式为

chown  用户名:用户名  文件

例:

 chown和chgrp后都可以接选项: -R 表示递归修改文件或目录的所有者或所属组。


六.为什么创建文件时的默认权限是这样

我们在创建文件时,默认:

目录文件权限是775

普通文件权限是664

这是为什么呢?

这就要说明 umask 文件掩码了。

umask

umask  :查看文件掩码(八进制形式显示)

 umask   xxx :修改文件掩码

文件掩码作用:凡是在umask中出现的权限都不会在最终权限中出现。

其实,预备:

目录文件权限777

普通文件权限666

在经过文件掩码修饰后才变成了775和664

修饰规则:最终权限=起始权限&(~umask)

以umask=0002为例:


七.目录文件每个权限的作用

r :是否允许我们查看指定目录下的文件内容;

w:是否允许我们在当前目录下进行更改,创建,删除

x :是否允许用户进入对应的目录

 上图我们发现,每个普通用户的家目录下,所有者和所属组都是他自己,且所属组和其他没有任何权限,这样当我们在有共享文件的需求是,只能由root用户创建一个共享文件,并把权力全部放开:

 但是这样又会引发一个问题,普通用户互相之间可以随意删除这个share里文件,这是不合理的,但是把w权限去掉了,就又不能创建和修改文件了,这也是个问题,那该如何解决这个问题呢?

Linux中给出一个叫粘滞位的概念。

粘滞位

语法:chmod +t  文件

加了粘滞位的文件:

1、超级管理员删除
2、该文件的所有者删除

加上粘滞位后,原来的 x 会变成 t


八.权限总结

1.目录的可执行权限是表示你可否在目录下执行命令
2.如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r     读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件);
3.而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录;但由于       没有目录的读权限;

4.所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档;


🐬🤖本篇文章到此就结束了, 若有错误或是建议的话,欢迎小伙伴们指出;🕊️👻

😄😆希望小伙伴们能支持支持博主啊,你们的支持对我很重要哦;🥰🤩

😍😁谢谢你的阅读。😸😼

  • 45
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 43
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值