请回答linux【文件与目录权限】

本文详细介绍了Linux系统的文件和目录权限管理,包括超级用户和普通用户的区别、切换用户命令。重点讲解了文件访问者的分类(用户、组和其他)、文件类型(如普通文件、目录、链接文件等)及对应的权限设置。通过chmod命令修改文件权限,chown和chgrp用于更改文件所有者和所属组,umask设定默认权限。同时,文章讨论了目录权限的重要性,特别是粘滞位的概念,用于防止非所有者删除文件。
摘要由CSDN通过智能技术生成

BingWallpaper20

image-20220410200635646

1. Intro of rights in linux

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

1.1 超级用户

超级用户可以在linux系统下做任何事情,不受限制

超级用户的命令提示符是“#”

1.2 普通用户

普通用户在linux下做有限的事情。

普通用户的命令提示符是“$”

1.3 切换用户命令

命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su
root(root可以省略),此时系统会提示输入root用户的口令。

2. 文件权限的管理

文件权限的管理独立于Linux的权限,也就是超级用户和普通用户。

如果是root用户登陆的话,想怎么写就怎么写,无法约束

文件权限是用来约束普通用户的,不是用来约束超级用户的

对于文件来说人分三类,看下面

2.1 文件访问者的分类(人)

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

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

通过 ls -la

我们可以显示出文件的属性信息

image-20220406160903719

下图展示了不同文件属性以及其含义

image-20220406160446227

一般来说,新建一个用户,该用户就自成一个用户组。若需要调整用户组,就需要输入命令

2.2.1 文件类型

我们可以看到第一位表示的是

🍁 d:文件夹
🍁 -:普通文件(源代码,图片,动静态库,可执行程序,音频视频)
🍁 l:软链接(类似Windows的快捷方式)
🍁 b:块设备文件(例如硬盘、光驱等)
🍁 p:管道文件
🍁 c:字符设备文件(例如屏幕等串口设备)
🍁 s:套接口文件

2.2.2 文件权限

在第一位表示文件类型的位后面,文件的权限可以看到由9位组成,9位只会包含r,w,x,-的组合,表示该文件信息的不同权限

还有没有其他权限可言?基本没有其他了,当然这里使用的是基本,就说明还有

基本权限

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

人和权限
访问者权限位权限
Userrwx文件所有者的权限是读、写和执行
Grouprw-与文件所有者同一组的用户的权限是读、写但不能执行
Otherr–不与文件所有者同组的其他用户的权限是读不能写和执行

此时我们可以得知一个文件所对应不同访问人群的权限

2.2.3 文件权限值的表示方法
2.2.3.1 字符表示方法

image-20220406191718595

2.2.3.2 8进制数值表示方法

image-20220406191601935

上述两种方法都要会

文件访问策略

当一个访问者张三要访问这个文件,先查看张三是否属于文件拥有者 ,然后所属组

若张三什么都不是,那就则只能读,不能写和执行

2.2.4 文件访问权限设置
2.2.4.1 chmod
chmod快速入门

chmod命令可以修改文件权限

chmod [参数] 权限 文件名

常用选项:
-R 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

chmod g-r,g+x file.txt
chmod o+rwx file.txt	

我们可以改一个人的多个权限,多个人的多个权限

chmod格式
  1. 用户表示符+/-=权限字符
    +:向权限范围增加权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    =:向权限范围赋予权限代号所表示的权限
    用户符号:
    u:拥有者
    g:拥有者同组用
    o:其它用户
    a:所有用户
  2. 三位8进制数字
chmod 664 /home/abc.txt
chmod 777 file.txt
chmod示例

在创建一个普通文件的时候,文件权限位的显示是这样的

image-20220406163751600

现在我执行命令删除User读权限

chmod u-r file.txt

image-20220406164041804

访问被拒绝,vim也写不了,因为不让读,不过可以用echo >操作

echo >与 echo >>

表示清空并重定向的echo >会导致的效果是如果只写也能够操作,在制度条件下是不可以的

但是表示追加重定向的echo >>在只读条件下是不可以的

image-20220409113839769

2.2.4.2 chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名

chown user1 f1
chown -R user1 filegroup1

示例:把文件夹的拥有者改成root

image-20220409135319900

要用sudo来提升权限等级,sudo是短暂提升权限的操作,要先在sudo用户中添加该用户才能短暂执行

不然就会报

image-20220409140128470

需要在root用户下

visudo
# 然后紧跟着root在root的下面一行,增加
allen            ALL=(ALL)                ALL 

改完之后就可以修改权限了

image-20220409140832411

下面再改回来

image-20220409141103051

一次改拥有者和组

sudo chown allen:allen rootdir
2.2.4.3 chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名

chgrp group1 f1
2.2.4.4 umask

功能:查看或修改文件掩码

新建文件夹默认权限=0666
新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。

原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限"减去"权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

 umask 755
 umask //查看
 umask 044//设置

umask设置可以让我们自定义默认权限

3. 目录的权限

3.0 Intro

文件有权限,目录也有其权限

🍁 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

image-20220409123215360

🍁 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

image-20220409122249390

🍁 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

image-20220409122211292

如果没有x的话,我就进不了目录,但是即使我有rw,我都得进入目录才能操作不是吗

所以没有x权限,其他操作也执行不了

3.1 张三删了我的文件

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

张三居然把root用户的文件给删了

image-20220409141840120

Linux是怎么解决这个问题的?

为了解决这个不科学的问题, Linux引入了粘滞位的概念.

3.2 粘滞位

chmod 的 -t选项就是粘滞位

image-20220409142719554

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
🍁 超级管理员删除
🍁 该目录的所有者删除
🍁 该文件的所有者删除

小结:

image-20220409143114781

3.3 目录权限的总结

目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言之命至9012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值