Bug:Linux用户拥有r权限但无法打开文件【Linux权限体系】

news2024/9/20 0:10:25

Bug:Linux用户拥有r权限但无法打开文件【Linux权限体系】

0 问题描述&解决

问题描述:

  • 通过go编写了一个程序,产生的/var/log/xx日志文件发现普通用户无权限打开
    - 查看文件权限发现该文件所有者、所有者组、其他用户均有r权限
    - 查看该日志文件的父目录,普通用户是否有权限打开,发现也有权限打开
    - 因为文件是在/var/log目录下,担心是selinux(linux的一个安全机制)导致没有权限,执行setenforce 0 临时关闭,再通过getenforce查看是否关闭成功。发现关闭之后依然没有权限访问/var/log/日志。

解决:

  • 给文件添加x执行权限,让其可以cd进入对应目录。

1 Linux权限rwx&用户、用户组

1.1 查看文件、目录权限信息

# 查看权限 ls -l 文件名/目录名
ls -l xx

在这里插入图片描述
在这里插入图片描述

①r/4读权限:读取文件内容、浏览目录信息

Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

②w/2写权限:修改文件内容、删除移动目录内的文件

Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

③x/1执行权限:执行文件、进入目录

execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

④—表示不具有该项权限

拥有者 拥有者所在组 其他用户

  • 拥有者:rw权限
  • 拥有者所在组:无读写执行权限
  • 其他用户:无读写执行权限
    在这里插入图片描述
⑤特殊执行权限s:可执行文件是否支持提权

针对可执行文件而言,除了x,还有s权限

  • 当s权限在user的x时,也就是类似 -r - s - - x - - x,称为Set UID,简称为SUID,这个UID表示User的ID,而User表示这个程序(/usr/bin/passwd)的拥有者(root)。那么,我们就可以知道,当test用户执行 /usr/bin/passwd时,它就会“暂时”得到文件拥有者root的权限。

  • 让普通用户以该文件拥有者的权限执行命令
    在这里插入图片描述

1.2 用户、用户组

①用户:普通用户、超级用户(root)

1.超级用户:可以再linux系统下做任何事情,不受限制在linux下做有限的事情命令提示符是"#”。
2.普通用户:普通用户权限就没有超级用户那么高会受到限制 .普通用户的命令提示符是"$”。

从普通用户切换到超级用户root:

# 切换到root用户
su root

# 以root权限临时执行某个操作(短暂提权执行某个操作)
sudo rm -f 1.txt

# id查看当前用户(uid、gid)
id

在这里插入图片描述

添加用户:

# 指定userid并分配给指定
# group useradd testuser -u 1003 -g 1005

# 指定用户名为testuser,并指定用户家目录/usr/testhome
useradd -d /usr/testhome -m testuser 

# 修改test用户密码
passwd testuser

# 新建testGroup工作组,并指定gid为2000
groupadd testGroup -g 2000
# 将用户添加进工作组
usermod -G testGroup testuser

# 将用户testuser加入到nobody(gid一般为65534)组
gpasswd -a testuser nobody

# 查看testuser用户属于哪些组
groups testuser

# 查看所有组
groups

# 删除用户
userdel testuser

在这里插入图片描述

②用户组

在某个组里的用户,拥有该组所拥有的权限

# 新建testGroup工作组,并指定gid为2000
groupadd testGroup -g 2000

# 将用户添加进工作组
usermod -G testGroup testuser

# 将用户testuser加入到nobody(gid一般为65534)组
gpasswd -a testuser nobody

# 查看testuser用户属于哪些组
groups testuser

# 查看所有组
groups

2 权限相关命令:chmod、chown

2.1 chmod:修改权限

# chmod概述
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限说明:只有文件的拥有者和root才可以改变文件的权限
chmod使用                                                                      
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限  
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

案例:

给文件所有者添加执行权限

# 添加hello.sh文件所有者的执行权限
chmod u+x hello.sh

# 给所有用户添加文件的执行权限x
chmod +x hello.sh

在这里插入图片描述

2.2 chown:修改拥有者

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

在这里插入图片描述

chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
# chgrp root hello.sh

在这里插入图片描述

3 umask

1.查看或修改文件掩码
2.新建文件夹默认权限=0666
3.新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

  • 格式:umask 权限值说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
    户默认为0002。
# 查看权限掩码
umask

# 修改权限掩码(不建议)
umask 0000

在这里插入图片描述

4 目录权限:rwx(ls查看、创建删除文件、cd进目录)

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

5 粘滞位:chmod +t

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

echo 111 > xx
chmod +t xx
ll xx
rm -rf xx

# 提权删除
sudo rm -rf xx

在这里插入图片描述

6 sudoers:决定该用户能否执行sudo提权操作

/etc/sudoers文件中配置哪些用户能够执行sudo提权操作。

# 给test用户添加sudo执行权限,如果提示只读,则chmod u+w添加写权限
sudo vim /etc/sudoers

# 找到 ## Allow root to run any commands anywhere不分,添加
test ALL=(ALL) ALL

# 保存退出,重新以test身份执行sudo

在这里插入图片描述

/etc/sudoers:
在这里插入图片描述

参考文章:https://blog.csdn.net/qq_56999918/article/details/123647390

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

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

相关文章

AI数学知识

AI数学知识 1、线性代数相关(矩阵)1、什么是秩2、奇异值分解3、特征值分解和奇异值分解4、低秩分解 回归分类知识点2、概率论相关1、先验概率和后验概率2、条件概率、全概率公式、贝叶斯公式、联合概率3、最大似然估计4、贝叶斯公式和最大似然估计5、伯努…

深入解读力扣154题:寻找旋转排序数组中的最小值 II(多种方法及详细ASCII图解)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

【VTKExamples::Utilities】第十三期 SaveSceneToFile

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例SaveSceneToFile,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步…

高项案例分析知识点总结

文章目录 纠错题计算题进度估算成本管理立项管理版本管理组合管理知识产权信息技术计算题运筹学 纠错题 人:人员经验、能力、数量、缺少培训;自己一个人完成需求和计划不正确流程:先做什么,后做什么,流程是否正确。是…

【UE Slate】 虚幻引擎Slate开发快速入门

目录 0 引言1 Slate框架1.0 控件布局1.1 SWidget1.1.1 SWidget的主要作用1.1.2 SWidget的关键方法1.1.3 使用SWidget创建自定义控件1.1.4 结论 1.2 SCompoundWidget1.2.1 SCompoundWidget的主要作用1.2.2 SCompoundWidget的使用示例1.2.3 SCompoundWidget的关系1.2.4 总结 1.3 …

闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?

前言 虽然说,目前 .NET FrameWork 上的大部分类都已经移植到 .NET Core 上,而且 .NET FrameWork 也已经停止了更新,未来必然是 .NET Core 的天下,但要说现在 .NET Core 就能淘汰 .NET FrameWork,我觉得为时尚早&#…

C++学习笔记(21)——继承

目录 1. 继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承关系和访问限定符1.2.3 继承基类成员访问方式的变化 继承的概念总结: 2. 基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数知识点:派生类中6个默认成员函数…

利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

【吊打面试官系列】Java高并发篇 - ConcurrentHashMap 的并发度是什么?

大家好,我是锋哥。今天分享关于 【ConcurrentHashMap 的并发度是什么?】面试题,希望对大家有帮助; ConcurrentHashMap 的并发度是什么? ConcurrentHashMap 的并发度就是 segment 的大小,默认为 16, 这意味着最多同时…

.DFS.

DFS 全称为Depth First Search,中文称为深度优先搜索。 这是一种用于遍历或搜索树或图的算法,其思想是: 沿着每一条可能的路径一个节点一个节点地往下搜索, 直到路径的终点,然后再回溯,直到所有路径搜索完为止。 DFS俗…

ComfyUI简单介绍

🍓什么是ComfyUI ComfyUI是一个为Stable Diffusion专门设计的基于节点的图形用户界面,可以通过各种不同的节点快速搭建自己的绘图工作流程。 软件打开之后是长这个样子: 同时软件本身是github上的一个开源项目,开源地址为&#…

I.MX6ULL Linux C语言开发环境搭建(点灯实验)

系列文章目录 I.MX6ULL Linux C语言开发 I.MX6ULL Linux C语言开发 系列文章目录一、前言二、硬件原理分析三、构建步骤一、 C语言运行环境构建二、软件编写三、链接脚本 四、实验程序编写五、编译下载验证 一、前言 汇编语言编写 LED 灯实验,但是实际开发过程中汇…

Python实现国密GmSSL

Python实现国密GmSSL 前言开始首先安装生成公钥与私钥从用户证书中读取公钥读取公钥生成签名验证签名加密解密 遇到的大坑参考文献 前言 首先我是找得到的gmssl库,经过实操,发现公钥与密钥不能通过pem文件得到,就是缺少导入pem文件的api。这…

maven的下载以及配置的详细教程(附网盘下载地址)

文章目录 下载配置IDEA内部使用配置 下载 1.百度网盘下载 链接: https://pan.baidu.com/s/1LD9wOMFalLL49XUscU4qnQ?pwd1234 提取码: 1234 2.解压即可 配置 1.打开安装文件下conf下的settings.xml文件,我的如下 2.修改配置信息(目的是为了修改本地…

【技术分享】Maven常用配置

一、Maven简介 (一)为什么使用 Maven 由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 包的形式出现的,例如 Spring,SpringMVC、MyBatis、数据库驱…

MQ本地消息事务表

纯技术方案水文特此记录 MQ本地消息事务表解决了什么问题? MQ本地事务表方案解决了本地事务与消息发送的原子性问题,即:事务发起方在本地事务执行成功后消息必须发出去,否则就丢弃消息。实现本地事务和消息发送的原子性&#xf…

系统安全扫描扫出了:可能存在 CSRF 攻击怎么办

公司的H5在软件安全测试中被检查出可能存在 CSRF 攻击,网上找了一堆解决方法,最后用这种方式解决了。 1、问题描述 CSRF 是 Cross Site Request Forgery的缩写(也缩写为也就是在用户会话下对某个 CGI 做一些 GET/POST 的事,RIVTSTCNNARGO一这…

香橙派AIpro初体验,详解如何安装Home Assistant Supervised

香橙派AIpro(OrangePi AIpro)开发版,定位是一块AI开发板,搭载的是华为昇腾310(Ascend310)处理器。 没想到,这几年的发展,AI开发板也逐渐铺开,记得之前看到华为发布昇腾3…

挑战你的数据结构技能:复习题来袭【3】

chap3 练习1 一. 单选题 1. (单选题)栈和队列具有相同的() A. 抽象数据类型B. 逻辑结构C. 存储结构D. 运算 答案: B:逻辑结构 答案分析:逻辑结构都属于线性结构,只是它们对数据的运算不同。 2. (单选题)栈是() A. 顺序存储的线性结构B…

深入理解python列表与字典:数据结构的选择与性能差异

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、列表与字典:基础数据结构的对比 二、列表:逐个遍历的查找方式 …