【Linux】权限管理

目录

一.用户在使用Linux系统时的权限

1.概念

2.用户权限切换(角色切换)

1.普通用户切换root

2.root切换普通用户

二.用户在使用文件或目录时的权限

0.如何区分是文件还是目录?

1.拥有文件或目录权限的三个身份

2.文件或目录的权限

3.如何修改权限

(1)修改权限

(2)修改人

4.权限常见问题(面试题)

(1)目录权限

(2)权限掩码 - umask

(3)粘滞位


一.用户在使用Linux系统时的权限

1.概念

Linux下可以同时存在多个用户,Linux是一个多用户的操作系统

root:只有一个,具有linux下的最高权限(一般不受权限约束)

普通用户:可以有多个,受权限约束

2.用户权限切换(角色切换)

切换用户,本质就是切换权限

1.普通用户切换root

指令:su -,回车然后输入root密码

2.root切换普通用户

指令:su 指定用户,回车且不需要密码

或者 ctrl+d 或者 logout 或者 exit

二.用户在使用文件或目录时的权限

0.如何区分是文件还是目录?

Linux下,不以文件后缀来区分文件类型

那么,想要区分一个文件是文件还是目录,看下图

但是需要注意一点,如果我们用linux下的gcc编译器,编译一个后缀不是.c的文件就会报错!

为什么呢?

原因就是:gcc是linux环境下的一款软件,linux不以文件后缀区分文件类型,但是没有说软件不可以!其实gcc这款linux下的软件,需要文件后缀来确定链接哪一个静/动态库

1.拥有文件或目录权限的三个身份

2.文件或目录的权限

3.如何修改权限

(1)修改权限

第一种形式:chmod [u/g/o] [+/-] [r/w/x] [文件名]

第二种形式:chmod [三个八进制为] [文件名]

(2)修改人

普通用户没有权限修改人

要么在命令前使用sudo,要么切换成root,使用sudo超级命令时,需要输入用户自己的密码

 

4.权限常见问题(面试题)

(1)目录权限

进入一个目录的权限:x(执行)

在目录中创建或删除目录/文件:w(写)

查看目录下的目录/文件:r(读)

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

没有x权限,只能ls查看该目录下的文件名,ls -l无法查看具体文件属性,tree显示为空!!

(2)权限掩码 - umask

一般的,创建一个目录系统的默认权限是777

创建一个文件系统的默认权限是666

可是实际我们看到的却是,创建目录:775,创建文件:664

为什么?以及是如何实现出来的?

答:一般的,other权限没有对文件/目录的w权限,这是为了保护文件/目录。其余权限默认为rwx。(说明一下,不管对于谁,都没有必要对文件有x权限,因为文件本身就没有执行属性)

以文件举例:刚开始创建好系统生成的默认权限就是777,而为了保护文件安全,需要去掉other的w权限,于是默认权限777会&一个~umask,umask是权限掩码,默认值为0002,而我们至于要关注后三位,且后三位是八进制位。

777&(~002) ---》775,就形成了最终我们所看到的默认权限775

也就是说,只要出现在umask上的权限,我们就不应该让文件/目录有这样的权限

注意,不是减法,而是 最终权限 = 起始权限 & (~umask),因为减法有进位问题。

umask是可以修改的,比如把umask修改为0777指令就是:umask 0777

(3)粘滞位

现在假设有这样一个场景:

一个公司,领导是root,员工是普通用户。此时为了便于多名员工协作开发一个项目,root创建了一个目录,这个目录的own和grp都是root,员工们是other。

目录的w权限:在目录中创建或删除目录/文件

此时思考一个问题:root是否要将此目录的other权限中的w权限打开呢?

员工在工作时,一定是需要自己能够自由的创建和删除目录下的文件(这个需求other需要w权限)

但是,仅仅只是能删除属于自己的文件(这个需求other不能拥有w权限)

这样就会产生矛盾,员工们既需要能够在目录下创建和删除文件,需要w权限。但一但w权限面对other开启,就意味着所有员工都可以自由的随意删除里面的任何文件。

如果才能做到:自己只能创建或删除属于自己的文件呢?

答:我们引入一个新的权限:粘滞位

指令:chmod +t [目录名]

此指令只能是目录的拥有者 或者 root才能执行 或者 sudo+指令

粘滞位只能给目录设置。

所以,这也说明了,虽然我的文件对外不开放rwx权限,但是如果拥有我这个文件所在目录的w权限,他虽然看不了改不了我的文件,但是可以删除我的文件!而粘滞位就很好的解决了这个问题!让他依然有这个目录的w权限,但是只能创建和删除属于自己的文件!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值