Linux权限理解(内含粘滞位)
作者主页: 翻转的乌龟
专栏链接: Linux
目录
- 前言
- 一、shell命令及其运行原理
- 二、权限管理
- 01.用户的分类
- 02.文件类型和访问权限(事物属性)
- 03.权限的表示方法
- 04.文件权限的相关设置方法
- (1)chmod(设置访问权限)
- (2) chown(修改文件拥有者)
- (3)chgrp(修改所属组)
- (4)file(辨识文件类型)
- 三、默认权限与权限掩码(umask)
- 四、目录权限(粘滞位)
- 总结
前言
一、shell命令及其运行原理
shell 是包裹在 Linux 内核 kernel 之外的外壳层,因为我们不能直接对操作系统进行操作,故而出现shell外壳帮助我们操作Linux内核。
他们之间的关系就像翻译一样,不会英语的我听不懂英文,英国人也听不懂我说话,所以shell就像一个翻译一样,给我们翻译我们两人都说了什么,方便我们理解。
shell外壳的作用:
- 对用户的指令进行解析,将解析的命令传给Linux操作系统,然后将运行的结果返回给用户。
- 是对Linux内核的一种保护。
- 执行命令时,创建子进程来进行执行
shell是对linux操作系统内核的外部程序的总称,而就像bash这种是Centos下的一种外壳程序。
就像职业与个人一样,老师是职业统称,但李老师就是XX中学下的数学教师。
二、权限管理
什么是权限?
权限=人+事物属性
权限是用来限制用户的某些行为,当然如果事物本来没有这个属性,自然也就没有这个权限
例子:
腾讯视频的VIP和普通用户,vip权限更大,当然你不能在腾讯视频上面写代码,因为它没有写代码的属性。
01.用户的分类
Linux中用户分为两类:
- root(超级管理员),几乎可以干任何事情;
- 普通用户,权限受到限制;
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
命令: su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
02.文件类型和访问权限(事物属性)
- 文件和文件目录的所有者: u User(中国平民 法律问题)
- 所有者所属组: g Group(XX省XX市XX区)
- 其他用户: o o—Others (外国人)
ls-l可以查看文件的权限:
权限的前三位:文件的所有者权限
权限的中间三位:文件所属用户组的权限
权限的最后三位:其他用户的权限
文件类型 >:
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
基本权限 >:
读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
“-”表示不具有该项权限
03.权限的表示方法
r/w/x 这三种字符来表示权限的方法是文件权限值的 字符表示方法 ,通常我们通过命令获取到的文件的属性中的权限即是采用这种方法表示出来的,也可以用二进制、八进制表示。下面附有八进制表示。
字符表示方法:
Linux表示 | 说明 |
---|---|
r – – | 只读 (4) |
– w – | 仅可写 (2) |
– – x | 仅可执行 (1) |
r w – | 可读可写 (6) |
– w x | 可写可执行 (3) |
r – x | 可读可执行 (5) |
r w x | 可读可写可执行 (7) |
– – – | 无权限 (0) |
04.文件权限的相关设置方法
在Linux中,我们可以通过相关的命令来设置文件的访问权限,但需要说明的是:只有文件的所有者和root才能修改文件的权限。
(1)chmod(设置访问权限)
功能: 设置文件的访问权限
格式: chmod [参数选项] 权限 文件名
常用选项: R -> 递归修改目录文件的权限
chmod命令权限值的格式: (其中权限代号可用字符表示法或者八进制表示法)
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
用户符号 : u(拥有者)、g(拥有者所属组)、o(其他用户)、a(所有用户)
(2) chown(修改文件拥有者)
功能: 修改文件的拥有者
格式: chown [参数] 用户名 文件名
注意:要执行chown命令需要有root超级用户的权限,普通用户用sudo,
格式为:sudo chown [参数] 用户名 文件名 ,
(3)chgrp(修改所属组)
功能: 修改文件或目录所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: R -> 递归修改文件或目录的所属组
注意:root用户才有权限修改文件或者目录所属组
(4)file(辨识文件类型)
功能: 辨识文件类型
格式: file [选项] 文件或目录
常用选项:
c:详细显示指令执行过程,便于排错或分析程序执行的情形
z:尝试去解读压缩文件的内容
三、默认权限与权限掩码(umask)
文件的默认权限是0664
目录的默认权限是0775
权限掩码默认为0002
默认权限是这样,但是实际上我们见到的都是最终权限
==最终权限= 起始权限&(~umask码)==这就是为什么是664 775的原因
umask
功能: 查看或修改文件掩码
格式: umask 权限值
说明:新建文件的起始权限为:0666;新建目录的起始权限为:0777,但实际上当我们查看我们创建的目录和文件的属性时,看到的权限往往不是上述的值。原因就在于创建文件和目录时还要受到umask 的影响。假设起始权限是 mask ,则实际创建出来的文件的权限是:mask & (~umask)。将文件现有的存取权限减去权限掩码后,即可产生建立文件时的预设权限。超级用户默认掩码值为:0022;普通用户默认掩码值为:0002。
四、目录权限(粘滞位)
可执行权限: 如果用户对目录没有可执行权限,则无法通过 cd 命令进入到目录中。
可读权限: 如果用户对目录没有可读权限,则无法通过 ls等命令查看目录中的文件内容。
可写权限: 如果用户对目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。
粘滞位诞生背景
工作中通常会有共享目录,方便大家把代码放入其中进行信息交互,由于共享目录都有所有权限会导致别人进入你的目录中删除你的代码,这是我们不愿意看到的,但是共享目录又必须有w权限去让别人创建文件,能创建就能删除,很难搞,所以粘滞位诞生了,让其他人不能随便删除你的文件。
通过命令 chmod (用户符号)+t 目录 即称为为目录设置粘滞位。粘滞位是针对目录而言的概念,通常需要为共享目录设置粘滞位。通过为目录设置粘滞位,可以在保证目录共享的同时防止其他用户删除共享目录中非所有者的文件。
当一个目录被设置粘滞位后,则该目录下的文件只能由:
- 超级管理员(root)删除
- 该目录的所有者删除
- 该文件的所有者删除
总结
- 目录的可执行权限表示的是用户可否在目录下执行命令。
- 如果用户没有对目录的 x (可执行)权限,则无法对目录执行任何命令,甚至无法通过 cd 命令进入目录,即使用户对目录仍然有 r (可读)权限。
- 如果用户对目录具有 x (可执行)权限,则用户可以执行命令,通过 cd 进入目录,但由于没有对目录的可读(r)权限,所以在目录下,即使可以执行 ls 命令,但仍然没有权限读出目录下的文件。
如果感觉写的不错的话,麻烦来个三连支持一下,让我们下次见!!
Linux权限理解(内含粘滞位)相关推荐
- 【我在异世界学Linux】Shell外壳程序以及权限的理解(粘滞位、umask)
文章目录 shell外壳程序 用户为什么不是直接使用操作系统 用户如何访问的操作系统 Shell外壳程序是什么 外壳程序存在的意义 查看当前使用的shell外壳程序 权限 Linux下的用户 用户切换 ...
- Linux入门:权限管理之粘滞位
关于linux下粘滞位(sticky位): 粘滞位(Sticky bit): 如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可.粘滞位出现可执 ...
- 【Linux】权限管理 _目录权限 _umask _粘滞位[学习总结 _复习专用]
1.Linux权限的概念 Linux下有两种用户:root.普通用户. root:可以在Linux系统下做任何事情,不受权限的限制 普通用户:在Linux下做有限的事情 root用户的命令提示符是&q ...
- linux应用程序设置粘滞位,Linux粘滞位的设置
粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标.最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件.如果不为目录设置粘滞位,任 ...
- 【Linux】什么是粘滞位
文章目录 前言 粘滞位 用法 谁能删除 前言 我们知道了用户一旦拥有了目录的写权限,就可以删除目录中的文件,而用户本身可能没有这个文件的写权限.这样就会造成:我张三创建的一个文件,莫名其妙被李四删掉的 ...
- linux应用程序设置粘滞位,Linux中的粘滞位
Sticky 位是一个访问权限标志位,可以用来标示文件和路径. 历史: 粘滞位是在1974年Unix的第5版中引入的,用来设置可执行文件.当可执行文件设置粘滞位之后,它能够指示操作系统在程序退出后,保 ...
- linux应用程序设置粘滞位,Linux中设置粘滞位
关于目录有三种权限: r - -可读权限,可以列出目录下的内容(但如果要列出目录下的内容必须要能进入这个目录所需要的权限为 r-x) -w-可写权限,可以往目录里些内容(但是如果如果往目录里面些内容, ...
- linux系统下的粘滞位
1.粘滞位的引出: 用户对目录具有(w)写的权限就可以删除目录(不是用户自己创建的目录)中的文件,哪怕该用户对该文件(不是用户自己创建的文件)没有写(w)的权限 用户具有目录写的权限 root用户创建 ...
- linux应用程序设置粘滞位,linux 权限设置和SUID,SGID以及粘滞位
我们知道文件的权限可以用三个八进制数字表示.其实文件的权限应该用四个八进制来表示,不过用 ls -l 命令时,只显示三个罢了.那个没有显示的八进制数字其实是第一个,它用来设定一些特殊权限.这个八进制数 ...
最新文章
- GAN的统一架构与WGAN
- poj 1935(搜索+回溯)
- CUDA Stream流并发性
- dmesg与printk命令
- .net mvc 超过了最大请求长度 限制文件上传大小
- leetcode235. 二叉搜索树的最近公共祖先
- 交换机配置工具_二层网管交换机应用—环路检测
- WebClient上传文件至服务器和下载服务器文件至客户端
- c#关于委托和事件(二)(介绍的很详细)
- Java异常处理之------Java方法中throws Exception使用案例!什么情况下使用throws Exception?...
- 同济大学 线性代数 第六版 pdf_同济大学版工程数学 线性代数 第六版 课本
- 递归算法教学设计java,递归算法数字游戏教学软件的设计|java递归算法经典实例...
- U盘装机助理-PE环境
- mysql数据库命令从哪里输入_mysql数据库操作命令
- no zuo no die 歌
- 越来越喜欢SQL语法了,Linq什么时候出来啊,半年了,咋没见更新了呢!真是望眼欲穿。...
- 实时高速实现改进型中值滤波算法_爱学术_免费下载
- 企业为什么做不好生产计划?
- 谈谈步进电机的优点与缺点
- 符号函数(sign function)性质及应用
热门文章
- Gradle安装和使用maven仓库配置
- VSAM file status
- 如果网站被同行恶意攻击了怎么办?
- 8. 查询表product——产品名中带有“小米”的商品信息
- 二级计算机突袭计划,【图片】学长帮你们过二级,计算机二级突击学习计划【武汉长江工商学院吧】_百度贴吧...
- opencv FFMpeg写视频报错 [mp4 @ 0xcb0f40] Tag mp4v/0x7634706d incompatible with output codec id '13
- golang json Marshal遇到的字符转义
- U-boot中LPDDR4关键参数的意义
- C语言 青蛙过河问题
- 初来咋到还以为是TOC