Linux权限概念

目录

Linux权限的概念

什么是权限

如何去操作权限

设置文件所属角色

设置文件属性

umask

粘滞位


Linux权限的概念

首先我们要了解到,在linux下有两种用户:超级用户(root)和普通用户。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”!

见名知其意,超级用户在linux下做的任何事情不会受到限制。而普通用户,在linux下可做的事情则是有限的。当你需要切换用户时,需要用到su [用户名]来切换用户!

这里注意一下,当你输入密码的时候是看不到的,正常输入即可。上述的用户切换过程也体现了超级用户的“特权”,就好比“神”一样的存在!但是,我们大多数人在生活中都是平凡的小角色,在未来的工作当中使用linux也是普通用户,这个时候我们可以处理的问题就是有限的,难道每当我们遇到需要root身份才能执行的命令就去找领导要root账号吗?可不可以不切换用户,让普通用户以root的身份执行相应的命令。答案是可以的,面对上述场景,只需用sudo [命令]来进行短暂的提权即可:

 权限被拒绝的原因:

 使用sudo 提权:

输入普通用户的密码为什么就可以提权到root身份进行一些命令操作了呢,这不存在风险吗?其实这个机制存在的价值就是给受信任的用户减少执行障碍,提供最大的便利!就好比你把这个用户写进了“白名单”只要他忠心于root就可以给他最大的便捷。反之不信任的用户没有这一特权!

 sodoers文件就相当于领导的小本本,把当前用户写到sodoers文件中就能得到系统的信任,这里暂时不做处理,zxy没有添加到sudoers中,所以不能完成提权的操作。在后面的学习中在探索如何将用户写到“白名单”中。

什么是权限

简单来说,权限限制的就是一件事情是否允许被,权限约束的是一个人或者是某些群体。我们在生活中都扮演着不同角色,就好比学生这个身份,因为这个身份才有了进入学校学习的权利,并不因为我是张三就能进入学校!就好比我想在学校里读书或者唱KTV,前者读书是学校提供的“业务”,而后者唱KTV是学校没有的属性。在linux下的文件访问中,访问者的身份可能不同,文件的类型和访问权限也可能不同:

角色:

●拥有者:文件和文件目录的所有者!

●所属组:和拥有者同在一个小组的用户!

●其他人:其它用户!

 如上图所示,张三家和李四家就是两个用户组张三和李四分别有一个文件,他们对于文件而言就是拥有者他们组内的用户属于用户组中的一份子,而李大对于张三的文件而言就是其他人(others),张三家的人对于李四的文件而言也是其他人(others)。这里还要提一下root,上面说过它不受任何限制,所以root可以去它任何想去的地方。

文件属性: 

●文件类型

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

在windows中我们经常通过文件的后缀来判断文件的类型。在linux中与之不同,文件的类型由文件属性的第一列确定,与文件后缀无关,所以在linux下创建文件时可以不用加后缀,如果你想将后缀作为符号给用户一个提示也是一个很好的习惯,但这时要注意你写的后缀也是文件名中的一部分。

为了验证后缀和文件类型有无关系你可能会想到这样的反例:

上述示例对后缀有要求的原因是gcc工具对文件后缀的要求,和我们谈论的linux下文件类型和后缀无关并不冲突。

●基本权限

r读权限: Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w写权限: Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
x可执行权限: execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
-无权限:没有权限!

字符表示文件权限:

 8进制数值表示:

如何去操作权限

设置文件所属角色

chown:修改文件或目录的拥有者

chgrp:修改文件或目录的所属组

下图中的操作都是以root用户进行操作的:

 用普通用户修改文件的拥有者和所属组不被允许!

设置文件属性

chmod:设置文件的访问权限

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


●八进制方案

 

umask

当我们创建一个文件或者目录的时候,它们都有默认的权限:

这些默认权限是怎么来的,真相只有一个:系统会默认配置好umask权限掩码,凡是在umask中出现的权限,需要在起始权限中去掉。linux中规定,目录的起始权限是777,文件的起始权限是666,超级用户默认掩码是022,普通用户默认掩码是002!

最终权限的计算方法:最终权限 = 起始权限&(~umask) 

粘滞位

可执行权限: 如果目录没有可执行权限, 则无法进入到目录中
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

基于上述关于目录权限的描述,产生了这样的问题:只要用户拥有了目录的写权限,就可以对文件进行删除操作,如果有一天用户A不小心删除了用户B写的“机密文件”,就会带来很大的问题!这个机制好像不太合理。

 为了解决上述问题,linux引进了粘滞位的概念,当一个目录被设置粘滞位(chmod +t),则目录下的文件只能由超级管理员、文件或者目录的所有者对其进行删除!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值