【Linux学习】权限

news2024/9/21 20:29:15

在这里插入图片描述

🔥个人主页: Forcible Bug Maker
🔥专栏:Linux学习

目录

  • 🌈前言
  • 🔥Linux权限的概念
  • 🔥Linux权限管理
    • 01.文件访问者的分类
    • 02.文件类型和访问权限(文件属性)
    • 03.文件权限值得表示方法
    • 04.文件访问权限的相关设置方法
  • 🔥目录的权限
  • 🔥粘滞位
  • 🌈结语

🌈前言

本篇博客主要内容:Linux权限的概念以及权限管理。

Linux系统的权限是Linux安全模型的核心组成部分,它决定了系统上的用户、用户组以及进程可以对文件、目录和其他系统资源执行哪些操作。理解Linux的权限对于确保系统的安全性、稳定性和数据保护至关重要。

🔥Linux权限的概念

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

  • 超级用户:可以在Linux系统下做任何事情,不受限制
  • 普通用户:在Linux下做有限的事情

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

命令:su [用户名]
功能:切换用户
例如,要从root切换到用户user,使用su user。要从用户user切换到root用户则使用su root,此时系统会提示输入root用户的密码。

快捷键:Ctrl+D,退出。

🔥Linux权限管理

01.文件访问者的分类

  • 文件和文件目录的所有者:u—User(拥有者)
  • 文件和文件目录的所有者所在的组的用户:g—Group(所属组)
  • 其他用户:o—Other(other)

02.文件类型和访问权限(文件属性)

我们通过ll指令展现出文件列表及其对应的属性。
在这里插入图片描述
在这里插入图片描述
开头的第1个字符表示文件的类型,而2~10的九个字符表示的就是三类不同访问者的权限。九个字符三三为一组,分成三组。

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

基本权限(第2~9个字符):
r:读权限。对文件而言,具有读取文件内容的权限;对目录来说,既有浏览该目录信息的权限。
w:写权限。对文件而言,具有修改文件内容的权限;对目录来说,具有删除移动目录内文件的权限。
x:执行权限。对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
-:代表不具有该权限。

03.文件权限值得表示方法

字符表示法:
在这里插入图片描述
8进制数值表示法:
在这里插入图片描述

04.文件访问权限的相关设置方法

chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
说明:只有文件的拥有者和root用户才可以改变文件的权限

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限

用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

文件访问权限增删:
chmod o+w file	->给file文件other增加写权限
chmod u+x file	->给file文件拥有者增加可执行权限
chmod g+r file	->给file文件所属组增加读权限
chmod u-w file	->给file文件拥有者去除w权限
chmod u+rw file	->给file文件拥有者增加w和r权限
chmod a+rwx file	->给file文件所有类型访问者增加所有权限
八进制权限修改:
chmod xxx(三个八进制数) file
改文件拥有者:
chown [name] testfile.txt

改文件所属组:
chgrp [name] testfile.txt

同时更改文件拥有者和所属组:
chown [name1]:[name2] testfile.txt

注 :普通用户无法改拥有者和所属组,只能通过root权限更改。

问:为什么新建目录默认权限是775,而新建普通文件是664?
这是因为计算机中存在权限掩码,最终权限=起始权限&(~权限掩码),而umask指令可以帮助查询到我们机器的权限掩码。
在这里插入图片描述

🔥目录的权限

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

到这里会有一个问题,只要用户有一个目录的写权限,就可以随意删除目录中的文件,不论这个用户是否有文件的写权限。
没有文件的写权限却能删除该文件,这样明显是不合理的。

[root@localhost ~]# chmod 0777 /home/
[root@localhost ~]# ls /home/ -ld
drwxrwxrwx. 3 root root 4096 9月 19 15:58 /home/
[root@localhost ~]# touch /home/root.c
[root@localhost ~]# ls -l /home/
总用量 4
-rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9月 19 15:53 litao
-rw-r--r--. 1 root root 0 9月 19 15:59 root.c
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
rm:是否删除有写保护的普通空文件 "/home/root.c"? y

为了解决此问题,Linux引入了粘滞位的概念。

🔥粘滞位

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"? y
rm: 无法删除"/home/abc.c": 不允许的操作

当一个目录被设置为“粘滞位”(chmod +t)后,该目录下的文件只能由:

  • 超级管理员(root)删除
  • 该目录的所有者删除
  • 该文件的所有者删除

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

🌈结语

本编博客主要讲解了,Linux权限的概念以及权限的管理方式。通过精细控制对文件和目录的访问,Linux权限机制有助于防止未授权的数据访问和操作,从而提高系统的安全性。熟练掌握权限的规则和使用,有助于维护系统的稳定性和可靠性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程同步-条件变量

文章目录 引言条件变量初始化条件变量:pthread_cond_init销毁条件变量:pthread_cond_destroy条件等待:pthread_cond_wait唤醒等待:pthread_cond_signal、pthread_cond_broadcast认识条件变量接口使用 引言 有一个非常好的VIP自习…

树莓派3B运行rasa init和rasa shell遇到的tensorflow报错总结

终于在我的树莓派上安装rasa-1.4.0版本成功(见《树莓派智能语音助手之聊天机器人-RASA》)。不过,在初始化rasa的时候还是遇到了很多报错,在此总结,供朋友们参考。 1. ModuleNotFoundError: No module named ‘tensorf…

合肥网站制作服务

合肥网站制作服务:为您的企业搭建数字化桥梁 随着互联网的迅猛发展,越来越多的企业意识到拥有一个专业的网站对于提升品牌形象和扩大市场影响力的重要性。合肥作为安徽省的省会,经济发展迅速,许多企业渴望通过优质的网站制作服务&…

Windows采用VS2019实现Open3D的C++应用

1、参考链接 https://blog.csdn.net/qq_31254435/article/details/137799739 但是&#xff0c;我的方法和上述链接不大一样&#xff0c;我是采用VS2019进行编译的&#xff0c;方便在Windows平台上验证各种算法。 2、创建一个VS2019的C Console工程 #include <iostream>…

Unity 6 预览版正式发布

Unity 6 预览版发布啦&#xff0c;正式版本将于今年晚些时候正式发布&#xff01; 下载链接&#xff1a; https://unity.com/releases/editor/whats-new/6000.0.0 Unity 6 预览版是 Unity 6 开发周期的最后一个版本&#xff0c;在去年 11 月 Unite 大会上&#xff0c;我们宣…

应急响应-DDOS-典型案例

某单位遭受DDoS攻击事件如下 事件背景 2019年2月17日&#xff0c;某机构门户网站无法访问&#xff0c;网络运维人员称疑似遭受DDoS攻击&#xff0c;请求应急响应工程师协助。 事件处置 应急响应工程师在达到现场后&#xff0c;通过查看流量设备&#xff0c;发现攻击者使用僵…

日拱一卒(4)——leetcode学习记录:路经总和

一、任务&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶…

RCE与SQL漏洞的复现

eval长度限制突破 php eval函数参数限制在16个字符的情况下&#xff0c;如何拿到webshell呢 首先&#xff0c;我们还是先把环境搭好&#xff08;此次的所有漏洞环境我都部署在Ubuntu下,我的Ubuntu下的环境是nginxphp&#xff0c;至于Ubuntu下的nginxphp环境我也有博客也写到&a…

配置maven环境(全局)

全局设置 修改Maven 更改JRE 更改Java Compiler 修改完成后&#xff0c;Apply即可

一些有趣的XSS注入GAME

目录 1.ma,Spaghet 2.Jefff 3.Ugandan Knuckles 4.Ricardo Milos 5. Ligma 6.Ah Thats Hawt 7.Msfia 8.Ok,Boomer 1.ma,Spaghet innerHTML :设置 innerHTML 的值可以让你轻松地将当前元素的内容替换为新的内容。 HTML 5 中指定不执行由 innerHTML 插入的 <script&g…

【win/mac】矢量图形编辑软件Adobe Illustrator(AI) 2024版本下载与安装

一、Adobe AI 软件简介 什么是 Adobe AI 软件Adobe Illustrator&#xff08;简称 AI&#xff09;是一款功能强大的矢量图形编辑软件&#xff0c;广泛应用于平面设计、插画绘制、图标设计、包装设计等领域。它允许用户创建、编辑和处理各种复杂的矢量图形&#xff0c;具有极高的…

Metasploit 入门教程(非常详细)从零基础入门到精通,看完这一篇就够了!

一、引言 Metasploit 是一款强大的开源渗透测试工具框架&#xff0c;被广泛应用于网络安全领域。无论是安全研究人员、渗透测试工程师&#xff0c;还是对网络安全感兴趣的初学者&#xff0c;掌握 Metasploit 都是提升技能的重要一步。本教程将带您从零基础开始&#xff0c;逐步…

Linux软件编程学习第十三天

网络&#xff1a;1.协议&#xff1a;通信双方约定的一套标准 2.国际网络通信协议标准&#xff1a; 1.OSI协议&#xff1a; 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 …

HarmonyOS NEXT星河版零基础入门(3)

1. 系统弹出框 import { promptAction } from kit.ArkUI;Component struct weChat {State text:string build(){Column(){Text(this.text )Search({value:$$this.text})Button(改值).onClick(()>{promptAction.showToast({message:this.text,duration:10000})})}} } messa…

什么是DevUI?

DevUI是面向企业中后台产品的开源前端解决方案&#xff0c;其设计价值观基于"高效、开放、可信、乐趣"四种自然与人文相结合的理念&#xff0c;旨在为设计师、前端开发者提供标准的设计体系&#xff0c;并满足各类落地场景&#xff0c;是一款企业级开箱即用的产品。 …

Pikachu-XSS漏洞之cookie值获取、钓鱼结果和键盘记录实战记录

目录 Pikachu-XSS漏洞之cookie值获取、钓鱼结果和键盘记录实战记录 一、XSS&#xff08;get型&#xff09;之cookie值获取&#xff1a; 二、xss&#xff08;post型&#xff09;之cookie值获取 三、Xss之钓鱼攻击 四、XSS获取键盘记 Pikachu-XSS漏洞之cookie值获取、钓鱼结果…

RabbitMQ消息队列:概念、单节点和集群示例

目录 消息队列 概念 主流的消息队列 消息队列名词 &#xff08;1&#xff09;Broker &#xff08;2&#xff09;Topic &#xff08;3&#xff09;Producer &#xff08;4&#xff09;Consumer &#xff08;5&#xff09;Queue &#xff08;6&#xff09;Message 消息…

【C++二分查找】1011. 在 D 天内送达包裹的能力

本文涉及的基础知识点 C二分查找 LeetCode1011. 在 D 天内送达包裹的能力 传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天&#xff0c;我们都会按给出重量&#xff08;weights&#xff09;的顺序往传送带上…

MVC与三层架构分层

1. 应用分层 应用分层类似公司的组织架构。我们进行项目开发时&#xff0c;最开始功能简单&#xff0c;前后端放在一起开发&#xff0c;但随着项目功能的复杂&#xff0c;项目会被前端和后端不同的团队接手&#xff0c;甚至更细粒度的团队。甚至后端开发也会根据功能再进行细分…

把VTK窗口嵌入到Qt的窗口中显示(二)

把VTK窗口嵌入到Qt的窗口中显示(二) 一、控件拖动 之前的文章介绍了,如何通过拖动一个控件,然后提升这个控件为QVTKWidget,然后来显示点云信息。 把VTK窗口嵌入到Qt的窗口中显示(一) 其实我们还可以直接通过代码来实现。我们打开QVTKWidget的代码可以看到,这个类就…