Linux的权限管理

文章目录

  • 文件权限
    • 文件类型
    • 文件访问者的分类
    • 文件权限的类型
  • 文件访问权限的设置
  • 目录的权限

文件权限

对于每个LInux文件,如果用ll指令查看的话,可以发现每个文件前面都有一串类似的字符:
在这里插入图片描述
这里总共有十个字符,其中第一个字符表示文件的类型,后面九个字符表示文件访问者的权限。

文件类型

LInux的文件类型分为以下几种:

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

显然我们上面那个文件就是一个文件夹。
此外,在众多文件类型中,最常见的是文件夹类型和普通文件类型。

文件访问者的分类

在Linux操作系统中,我们通常将访问者分为三类;

  1. 文件的所有者:u---User
  2. 文件所在的组:g---Group
  3. 其他用户:o---Others

值得注意的是root用户凌驾于所有访问者之上。root不受权限的约束。

文件权限的类型

一个文件的权限共有三个:

  1. r---读权限
  2. w---写权限
  3. x---执行权限

前面提到的十个字符,第一个表示的是文件的类型。剩下的九个字符中,前三个是u的权限,中间三个是g的权限,后面三个是o的权限。

  • 也就是说,三个字符代表了访问者的三个权限。三个权限的顺序为rwx。如果没有这个权限即为-。
  • 例如:r--为只读权限;rw-为读写权限;---为无权限。
  • 关于执行权限需要特别说明一下:文件被执行需要满足的条件,访问者具有执行权限,文件是可执行文件

文件访问权限的设置

chmod [参数] 权限 文件名

常用选项:

  • R->递归修改目录文件的权限。
  • 注意:只有文件拥有者和root才能修改文件的权限。

我们可以通过u/g/o/a(所有人) +-= rwx来修改权限。
在这里插入图片描述
# chmod u+x test.c
在这里插入图片描述
# chmod u=rw test.c
在这里插入图片描述
此外,如果将有权限看成1,无权限看成0.则rwx对应了111这样一个三位的二进制数。我们可以通过输入对应的十进制数来设置访问权限。
# chmod 000 test.c
在这里插入图片描述
# chmod 664 test.c
在这里插入图片描述
其中,6对应的二进制是110,对应的权限为rw-;4对应的二进制为100,对应的权限为r--。

chown [参数] 用户名 文件名

能够改变文件的拥有者。

chgrp [参数] 用户组名 文件名

能够修改文件的所属组。

umask 权限值

  • 单独使用umask时,能够查看文件掩码。
  • 加上权限值时,能够设置文件掩码

我们新建的文件默认权限为0666,目录的权限为0777.
但细心的读者可以发现,我们平时新建的普通文件权限明明就是-rw-rw-r--,新建文件夹的权限是drwxrwxr-x。
这似乎和我们的默认权限不太吻合啊!
实际上新建文件时设置的权限,会消掉umask(文件掩码)对应的权限。
普通用户umask的默认值为0002,root用户umask的默认值为0022.
这就是为什么当我们用普通用户创建一个普通文件时,权限为-rw-rw-r--,因为others的权限中的w被掩码给过滤掉了。

file [选项] 文件

能够辨识文件类型。
常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容。

# file test.c
在这里插入图片描述
# file -c test.c
在这里插入图片描述

此外,我们还可以使用sudo来分配权限。

目录的权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

换言之,我们只需要拥有文件夹的w权限就能随意删除文件夹里面的文件,即使这些文件的所有者不是我们。这显然对所有者来说时不公平的。
为了解决这个问题。

Linux引入了粘滞位的概念。

chmod +t 目录名

经过上面的指令操作,就可以将目录加上粘滞位。
那么一个目录被设置了粘滞位,那么这个目录下的文件只能由

  1. root
  2. 目录user
  3. 文件user

删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/318604.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT httpServer多线程后台服务器的例子实现

1.需求 1.1 用户需要其他平台(web端)调用Qt平台的接口,获取想要的数据并实时显示在网页里,比如实时的温湿度,用户数据等 1.2 用户需要在其他平台(web端)调用Qt平台的接口,下发数据…

贝叶斯统计实战:Python引领的现代数据分析之旅

贝叶斯统计这个名字取自长老会牧师兼业余数学家托马斯贝叶斯(Thomas Bayes,1702—1761),他最先推导出了贝叶斯定理,该定理于其逝世后的1763年发表。但真正开发贝叶斯方法的第一人是Pierre-Simon Laplace(1749—1827),因此将其称为…

Copilot Venture Studio創始合伙人楊林苑確認出席“邊緣智能2024 - AI開發者峰會”

隨著AI技術的迅猛發展,全球正逐步進入邊緣計算智能化與分布式AI深度融合的新時代,共同書寫著分布式智能創新應用的壯麗篇章。邊緣智能,作為融合邊緣計算和智能技術的新興領域,正逐漸成為推動AI發展的關鍵力量。借助分布式和去中心…

Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现

摘要: 尽管 CQT 代币流通供应量增加了 20%(新增 1.04 亿枚 CQT),但 CQT 的质押百分比仅从 2023 年第一季度的 22% 增长到了 2024 年第一季度的 29%。 CQT 的市值季度环比增长了 28%,多次达到 2.75 亿美元&#xff0c…

分享三款可以给pdf做批注的软件

PDF文件不像Word一样可以直接编辑更改,想要在PDF文件上进行编辑批注需要用到一些专业的软件,我自己常用的有三款,全都是官方专业正版的软件,功能丰富强大,使用起来非常方便! 1.edge浏览器 这个浏览器不仅可…

van-cascader(vant2)异步加载的bug

问题描述:由于一次性返回所有的级联数据的话,数据量太大,接口响应时间太久,因此采用了异步加载的方案,看了vant的官方示例代码,照着改了下,很轻松地实现了功能。正当我感叹世界如此美好的时候&a…

2.2 Java全栈开发前端+后端(全栈工程师进阶之路)-前端框架VUE3-基础-Vue基本语法

文本渲染指令 文本渲染指令-v-html与v-text Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue的模板都是 合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。 在前面,我们一直使用的是字符串插…

Flutter - 折叠面板

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新,请前往github查看最新代码 flutter 自定义折叠组件 支持三种类型和两种展示效果可自定义title和被折叠的内容 效果图 示例 import package:flutter/material.dart; import /jh_common/widge…

springboot+websocket开发简单的在线群聊聊天web版本

springbootwebsocket开发简单的在线群聊聊天web版本&#xff01;近期在测试websocket插件的群聊功能。下面是一个简单的demo。分享给大家&#xff0c;亲测可以使用的。 1&#xff1a;首先是一个chat.html页面。代码如下&#xff1a; <!DOCTYPE html> <html lang"…

Linux的Shell脚本详解

本文目录 一、什么是 Shell 脚本文件 &#xff1f;二、编写Shell脚本1. 基本规则2. shell 变量&#xff08;1&#xff09;创建变量&#xff08;2&#xff09;引用变量&#xff08;3&#xff09;删除变量&#xff08;4&#xff09;从键盘读取变量&#xff08;5&#xff09;特殊变…

VMware安装ubuntun虚拟机使用桥接模式无法上网问题解决

问题&#xff1a;最近准备使用VMware虚拟机搭建k8s集群服务&#xff0c;因为需要在同一个网段下&#xff0c;我使用桥接的方式&#xff0c;我发现主机在使用有线连接时虚拟机网络连接正常&#xff0c;但是使用无线网就显示连接不上网络。 解决方法 一、查看网络连接&#xff…

MFC 列表控件删除实例(源码下载)

1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例&#xff08;源码下载) 》 2、程序功能选中列表控件某一项&#xff0c;删除按钮由禁止变为可用&#xff0c;点击删除按钮&#xff0c;选中的项将删除。 3、首先在主界面添加一个删除参数按钮。 4、在myDlg.cpp 文件…

蓝桥杯练习系统(算法训练)ALGO-951 预备爷的悲剧

资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 英语预备爷gzp是个逗(tu)比(hao)&#xff0c;为了在即将到来的英语的quiz中不挂科&#xff0c;gzp废寝忘食复习英语附录单词…

基于缓存注解的时间戳令牌防重复提交设计

文章目录 一&#xff0c;概述二&#xff0c;实现过程1、引入pom依赖2、定义缓存管理3、时间戳服务类4、模拟测试接口 三&#xff0c;测试过程1&#xff0c; 模拟批量获取2&#xff0c; 消费令牌 四&#xff0c;源码放送五&#xff0c;优化方向 一&#xff0c;概述 API接口由于…

PHP源码_最新Ai对话系统网站源码 ChatGPT+搭建教程+前后端

基于ChatGPT开发的一个人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人类一样来聊天交流&#xff0c;甚至能完成撰写邮件、视频脚本、文案、翻译、代码&#xff0c;写论…

C++Day6作业

1、模板实现顺序栈 #include <iostream>using namespace std;template <typename T> class Stack {T* S; //数组int size;//栈容量int top; //栈顶元素下标 public://有参构造Stack(int size):S(new T[size]),size(size),top(-1){}//初始化时直接将栈顶元素下标设…

记一次古董级netapp存储更换故障硬盘全过程

1、案例背景 记一次某医院PACS存储NetApp FAS2554更换故障硬盘的过程。 这个netapp设备以前从未调试过&#xff0c;据客户说该设备上线也有快9年了&#xff0c;头一次故障硬盘。因为己经过保了&#xff0c;客户只是采购的硬盘&#xff0c;我这来免费服务了。。。 netapp调试…

LeetCode 110.平衡二叉树(Java/C/Python3/Go实现含注释说明,Easy)

标签 树深度优先搜索递归 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡的二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 原题&#xff1a;LeetCode 110.平衡二叉树 思路及…

『跨端框架』Flutter环境搭建

『跨端框架』Flutter环境搭建 资源网站简介跨平台高性能发展历程跨平台框架的比较成功案例 环境搭建&#xff08;windows&#xff09;基础环境搭建Windows下的安卓环境搭建Mac下的安卓环境配置资源镜像JDKAndroid StudioFlutter SDK问题一问题二问题三修改项目中的Flutter版本 …

Android14之解决报错:libncurses.so.5与libtinfo.so.5缺少问题(二百零九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…