【Linux】Linux权限的概念

本文详细介绍了Linux系统中的用户权限结构,包括root和普通用户的区别,sudo临时提权机制,文件和目录的访问权限分类、设置方法,以及目录的粘滞位设置。
摘要由CSDN通过智能技术生成

一、用户与提权

1、root用户与普通用户

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

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

命令:su [用户名]
功能:切换用户。

例如,要从root用户切换到普通用户user,则使用

 su user 

要从普通用户user切换到root用户则使用

su root (root可以省略)

此时系统会提示输入root用户的口令。

2、普通用户指令短暂提权

sudo whoami

当该用户被添加至 etc/sudoers 中,sudo为最近的一条指令提权至root,需要输入当前普通用户密码。

在一次密码认证过后,接下来的几分钟使用sudo提权操作,将无需再次输入密码。

为什么sudo提权需要输入当前用户的密码,而不是root密码呢?
这样做是为某些被信任的用户,提供最少的执行障碍。而不是直接将 root 的密码交给某人。

二 、文件权限

1、文件访问者的分类(人)

  • u—User :文件和文件目录的所有者
  • g—Group :文件和文件目录的所有者所在的组的用户
  • o—Others :其它用户

权限限制的不是某个用户,而是这个用户当前所处的角色

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

在这里插入图片描述

(1)文件类型

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

(2)基本权限

r (读):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w (写):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
x (执行):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
— :表示不具有该项权限

(3)文件权限值的进制表示

在这里插入图片描述

3、文件访问权限的设置

(1)设置访问权限

chmod u-r text01 #将text01的拥有者减去可读权限
chmod g+x text01 #将text01的所属组加上可执行权限
chmod o-rwx text01 #将text01的其他用户减去读、写、可执行权限
chmod u+rx,g-w,o-rwx text01 #可以组合操作权限的增减
chmod a-rwx text01 #对所有角色减去读、写、可执行权限

也可以通过八进制的表示方法

chmod 777 test01 # 此时权限将变为 rwxrwxrwxx

(2)文件所属的更改

sudo chown Opfish text01 #把text01的 拥有者 改成Opfish
sudo chgrp Opfish text01 #把text01的 所属组 改成Opfish
sudo chown Opfish:Opfish text01 #把text01的拥有者、所属组改成Opfish

递归修改目录以及目录内的文件所属

chown Opfish mytmp -R

(3)目录的起始权限及权限掩码 umask

Linux规定,目录的起始权限从777开始,普通文件的起始权限从666开始。

在这里插入图片描述

系统默认配置好的权限掩码为 0022,即000 010 010

凡是在umask中出现的权限,必须在起始权限中去掉,即最终权限 = 起始权限 &(~umask)。

所以,我们创建出来的目录的权限是755(rwx r-x r-x),普通文件的权限是644(rw- rw- r–)。
在这里插入图片描述

umask 0444 #更改umask的值,即 100 100 100

修改后创建出来的目录权限变为 333(即 -wx -wx -wx)
普通文件权限变为 222
在这里插入图片描述

4、目录的权限

目录的 r 权限 :能否查看目录中的文件。

目录的 w 权限 :能否在目录中创建文件和删除。

目录的 x 权限 :能否进入、执行目录中的文件

所以,目录的起始权限从777开始,是因为所有角色都需要x权限进入目录。

三、粘滞位(公共目录使用)

由上面目录的权限可以知道,就是只要用户具有目录的写权限, 该用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

这好像不太科学啊,就如我张三创建的一个文件, 凭什么被你李四可以删掉?

因此 Linux 引入了粘滞位的概念

当一个目录被设置为 " 粘滞位 " (用chmod +t) , 则该目录下的文件只能由

  • 一、root 删除
  • 二、该目录的所有者删除
  • 三、该文件的所有者删除
chmod +t ./mytmp   # 在当前目录下的mytmp目录中加上粘滞位

在这里插入图片描述

加上粘滞位后,该公共目录的 other 的 x 权限变为 t,也就是该目录下other的可执行权限变为粘滞位,其他用户无权删除不属于他的文件。

权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有 -r 读权限
  • 而如果目录具有 -x 权限,但没有 -r 权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读
    权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值