Linux 权限

💓博主个人主页:不是笨小孩👀

⏩专栏分类:数据结构与算法👀 C++👀 刷题专栏👀 C语言👀

🚚代码仓库:笨小孩的代码库👀

⏩社区:不是笨小孩👀

🌹欢迎大家三连关注,一起学习,一起进步!!💓

权限

Linux下有两种用户:

  1. 超级用户(root)
    可以再linux系统下做任何事情,不受限制。
  2. 普通用户
    在linux下做有限的事情。

超级用户的命令提示符是"#",普通用户的命令提示符是"$"。

su命令

su 用户名

可以切换用户

要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。

Linux权限管理

在Linux下一切皆文件。权限一般是对谁,拥有怎样的约束。

文件访问者分类

  1. 拥有者

拥有我这个文件的人,一般来说是文件的创造者,但是可以更改。

  1. 所属组

我们有一个文件,除了自己以外,还想让别人查看,但是不想让所有人查看,只想让自己限定的人查看,所以就有一个所属组的概念。

  1. other

除了拥有者和所属组剩下的就是other了。

文件类型和访问权限

  1. 文件类型

d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

Linux下文件的类型适合文件后缀没有关系的,我们加后缀是为了我们自己方便观察,虽然Linux不分文件后缀,但是有些工具是要区分的,比如gcc就不认识.txt后缀的文件,换成.c的就可以跑。

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

怎么看这文件类型和权限呢?

我们可以输入ll指令


文件权限的表示方法

  1. 字符表示法

  2. 八进制表示法

文件权限的修改

修改文件的权限我们需要有到chmod指令

  1. 语法

chmod 参数 权限 文件名

  1. 功能

设置文件的访问权限。

  1. 常用选项

R -> 递归修改目录文件的权限

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



也可以使用八进制数字

chown指令

可以修改文件的拥有者。


chgrp指令

可以修改文件的所属组。

我们在创建一个文件时,是有默认权限的

  1. 对于目录来说,它的默认权限是777。
  2. 对于普通文件来说,它的默认权限是666。

但是从我们目前看到的结果来说好像并不是这样的,这是为什么呢?

这是因为在创建文件或目录的时候还要受到umask(掩码)的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask。

我们可以用umask指令来查看我们当前的掩码。

这是一个八进制数字,第一个0我们可以不用管,可以认为是八进制数字的前置。

所以我们用 mask & ~umask这个公式算一下,就是上面的结果了。

我们也可以用umask设置掩码。

我们将掩码设置为0,可以看到对于目录来说,它的默认权限是777。对于普通文件来说,它的默认权限是666。

file指令

可以查看文件的类型

我们也可以用sudo指令来提升指令的权限。

sudo --u 用户名 命令

如果不加用户名默认就是root。

目录的权限

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

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

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

也就是说,一个文件一定存在一个目录中,它能否被删除与它自己的权限没有关系,和它的父目录有关,就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。也就是我们常说的毁灭你与你无关。

但是这也引发了很多问题,如果我们在同一目录下工作,凭什么你可以删除我创建的文件,这多少有点不太合理,因此Linux引入了一个新的权限:粘滞位。

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

  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除

总结:

目录的可执行权限是表示你可否在目录下执行命令。

如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

那么今天的分享就到这里了,有什么不懂得可以私信博主,或者添加博主的微信,欢迎交流。

相关推荐
大树8814 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠14 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质14 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush414 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52014 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz15 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工15 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智16 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩16 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_16 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化