改变Linux文件权限、所属用户组、所有者知识总结

news2025/2/22 22:21:51

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Linux操作系统专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:改变Linux文件权限、所属用户组、所有者知识总结

文章目录

    • 改变Linux文件权限chmod
      • 文字设定法
      • 数字设定法
    • 改变Linux文件所属用户组chgrp
    • 改变Linux文件所有者chown
      • 改变文件所有者chown

在这里插入图片描述

改变Linux文件权限chmod

  名称:chmod
  使用权限:root
  使用方式:chmod使用方式有两种,数字设定文字设定

  说明:Linux/UNIX的文件存取权限分为三级,文件拥有者、群组、其他。利用chmod可借以控制档案如何被他人所存取。

  Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读只写可执行三种。

  只读权限表示只允许读其内容,而禁止对其做任何的更改操作。

  可执行权限表示将该文件作为一个程序执行

  文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件进行阅读和修改。用户可以根据需要把访问权限设置为需要的任何组合。所有者一般是文件的创建者,所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。

  chmod命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

文字设定法

  使用方式:chmod [who] [+|-|=] [mode] filename

  who 可以是以下字母中的任意一个或它们的组合:

  • u: 表示“用户(user)”,即文件或目录的所有者。
  • g: 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
  • o: 表示“其他(others)用户”。
  • a: 表示“所有(all)用户”。它是系统默认值。

  []中的操作符号可以是:+ - =。

  • +: 添加某个权限。
  • -: 取消某个权限。
  • =: 赋予给定权限并取消其他所有者权限(如果有)。

  设置mode所表示的权限可用以下字母的任意组合。

  • r:可读。
  • w:可写。
  • x:可执行。只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
  • s:在文件执行时将进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
  • t:保存程序的文本到交换设备上。
  • u:与文件属主拥有一样的权限。
  • g:与文件属主同组的用户拥有一样的权限。
  • o:与其他用户拥有一样的权限。

  在一个命令行中可给出多个权限方式,其间用逗号隔开,例如:
  chmod g+r,o+r example

  删除之前/tmp/sanguo目录下的所有文件,然后将/etc/shadow文件复制到sanguo目录,并改名为zhaoyun,并为zhaoyun文件的所有用户全部加上读权限。

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

  说明1:使用seashorewang账户删除文件的时候没有权限,是因为之前将sanguo下除了shadow之外的文件的所属用户和组全部设置成了root,作为普通用户的seashorewang账户,肯定不具有删除权限。

  说明2:删除的时候用了通配符“”,rm pa,表示删除所有名称以pa开头的文件;rm *表示删除所有文件。

  说明3:chmod a+r zhaoyun表示给zhaoyun文件的自己、同组与其他都加上r权限。利用ls –l得到了验证。

  将zhaoyun文件的所属用户加上wx权限,所属组与其他用户加上w权限。

在这里插入图片描述
  说明:注意u+wx,go+w之间只有一个逗号,不能加任何空格。

  将zhaoyun文件的所属用户的x权限去掉。

在这里插入图片描述

数字设定法

  数字设定法与文字设定法殊途同归,都可以达到设置文件权限的目的,但数字设定法更加方便简洁。

  数字设定法中的数字表示的属性含义是:0表示没有权限;1表示可执行权限;2表示可写权限;4表示可读权限,然后将其相加。数字属性的格式为3个从0~7的八进制数,其顺序是(u)(g)(o)。

  换个思路理解,利用ls –l查看的文件详细信息第一列中的除了第一个字符之外的所有字符每三个一组分成三组,每组有三个字符,每个字符位只能用0或者1表示,即每组是一个- - -格式的数字,左起第一位的最大值为2的2次方,也就是4;左起第二位表示的最大值是2的1次方,也就是2;右数第一位则表示2的0次方,也就是1;0表示没有权限。因此每组的最大数值111转换成十进制应该是122+121+1*20=4+2+1=7,如果自己、同组与其他都具有读写执行的权限则为777。

  分析/tmp/sanguo目录下zhaoyun文件的三个身份的分别权重。

在这里插入图片描述

  说明:owner=rw=4+2+0=6;group=rw=4+2+0=6;others=rw=4+2+0=6

  将/tmp/sanguo目录下zhaoyun文件的三个身份的权限修改回“---------”

在这里插入图片描述

  说明:chmod 000 zhaoyun中的000代表三个身份分别都没有任何权限

  将/tmp/sanguo目录下zhaoyun文件的权限修改为744.

在这里插入图片描述

  查看/bin/ls的属性与权限,将其去掉同组与其他的执行权限,然后在seashorewang账户中使用ls命令。

在这里插入图片描述

  说明:ls命令在去掉执行权限后不能使用,因为对于seashorewang账户来说,ls文件属于其他用户,其他用户不具有执行权限,所以不能执行ls命令。

改变Linux文件所属用户组chgrp

  名称:chgrp
  全称:change group
  使用权限:root
  使用方式:chgrp 组名 文件或目录

  参数:
  -R:递归式的改变指定目录及其下的所有子目录和文件的属组。

  说明:改变文件所属的组。该命令改变指定文件所属的用户组。其中group可以是用户组ID也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。

  要求seashorewang账户和与seashorewang账户同一组的账户都能查看root给的文件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  说明1:chgrp的用法和chown基本一样,格式都是:“命令 名称 文件”。

  说明2:本例中使用useradd命令新建了一个账户linux_whb,-G参数指定该账户默认的组为seashorewang,即让linux_whb账户和seashorewang账户属于同一个组,并且将shadow文件加上了同组可读的权限,当切换到linux_whb账户后,可以读出shadow文件的内容。

  将/tmp下的sanguo目录包括其中所有文件的所属组全部改成root。

在这里插入图片描述

  说明:-R表示递归,意思是连同目录中的文件的所属组全部改变。

改变Linux文件所有者chown

  无论什么样的操作系统,自己的所有文件永远不会停留在只有自己使用,有些文件是要共享的,是要传输的。

  使用root账户复制一份/etc/shadow文件放到/tmp/sanguo下,名称仍为shadow,供seashorewang账户使用。

在这里插入图片描述

  说明1:因为shadow文件本身的权限为“l---------”,为了更好地进行试验,让seashorewang账户去使用该文件,我们使用chmod命令给shadow文件加上了读权限。

  说明2:我们使用su root切换到了root账户下,复制了shadow文件,放到了/tmp/sanguo这个seashorewang账户也可以访问的目录下,并且为其加上了读权限。我们在seashorewang账户下使用ll命令查看文件的详细信息发现,这个文件的所有者与所属组仍为root,使用cat命令去查看这个文件的内容时发现,权限不够,分明给你一个文件,并且具有读权限,但是自己读不了,这样就造成文件仍然不能使用的局面。

  正因为有时候虽然给别人一个文件,别人却不能正常使用的这种情况经常存在,所以必须去学习如何改变文件的属性与权限。

改变文件所有者chown

  名称:chown
  全称:change owner
  使用权限:root
  使用方式:chown 账户名称 文件或目录

  参数:
  -R:递归修改,连同子目录一起修改。

  说明: Linux/UNIX是多用户多任务系统,所有的文件皆有拥有者,利用chown可以将文件的拥有者加以改变。一般来说这个指令只是由系统管理者root所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己文件的文件拥有者改设为别人。只有系统管理者root才有这样的权限。

  用seashorewang账户将shadow文件的所有者改为自己

在这里插入图片描述
  说明: 这个实例应该引起的注意是chown命令不能把别人的文件改成自己的,因为它一般使用者为root。

  seashorewang账户试图把自己/tmp/sanguo目录下的passwd文件给root,也就是把其拥有者改为root。

在这里插入图片描述

  说明: 这个实例应该引起的注意是chown命令不但不能把别人的文件改为自己的,也不能把自己的改为别人的,因为它一般使用者为root。

  总结: chown这个命令在不进行特殊修改的情况下,只有root具有使用权限,root账户使用该命令时的正确格式为“chown 账户名 文件名”。其作用时把后面的文件的拥有者改为前面的账号。

  seashorewang账户看到自己不能使用这个文件,想办法让该用户能够看到shadow文件的内容。

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

  说明: 我们使用su root切换到root账户,复制了一份/etc/shadow文件给/tmp/sanguo目录,并使用chmod命令为其加上了r权限,然后使用chown命令将shadow文件的拥有者改为seashorewang用户,退出root返回seashorewang账户,然后使用cat命令查看shadow文件的内容,发现可以查看了,是因为这个文件是seashorewang自己的了,并且自己又拥有读权限,于是可以读出其中的内容。

  再次使用root账户将/etc/shadow文件复制2份到/tmp/sanguo目录下,分别命名为yingzi1、yingzi2,使用chown命令同时改变这两个文件的拥有者以及组。

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

  说明1: 本例中采用了两种方法,同时修改文件的拥有者与文件的所属组,一种是“用户名.组名”,另一种是“用户名:组名”。

  说明2: 如果需要使用chown命令同时改变所属用户与所属组,建议使用“用户名:组名”的格式,因为确实有些人喜欢使用域名之类的作为用户名,这样容易产生歧义,因为你使用的用户名本身就含有“.”。

  说明3: 上面第一次使用chown的时候,提示无效的用户“seashorewang.seashorwang”。这不是作者做实验时不小心输错组名,这是实验有意设计的。因为不管是在改变所属用户,还是改变所属组的时候,首先要保证所要改成的用户与组是存在的,意思是当前Linux系统中必须存在这个账户与组,对应到文件应该是/etc/passwd文件中存在这个账户与组,才能试图将某个文件的用户与组进行修改;如果不存在,虽然用的是root,也无能为力。

  将/tmp下的sanguo目录包括其中所有文件的所属用户全部改成root

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

  说明:-R表示递归,意思是连同目录中的文件的所属全部改变。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

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

相关文章

requestAnimationFrame详解-js性能优化

requestAnimationFrame 请求动画帧 它是一个浏览器的宏任务 requestAnimationFrame的用法与settimeout很相似,只是不需要设置时间间隔而已。requestAnimationFrame使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。它返回一个整数&#x…

快鲸SCRM打通工单系统,实现客户售前售后一体化管理

深度运营客户关系,做好客户售后服务,才符合企业的长远利益。然而大多数企业只注重售前售中,忽视了售后,导致客户售后服务现状不尽人意,主要体现在: 把客户问题抛到售后群后,便放任不管; 缺乏标…

自动驾驶感知——超声波技术

文章目录1. 超声波基本概念1.1 声波的频率与分类1.2 超声波的波速和波长1.3 超声波的指向性1.4 超声波的反射和折射1.5 超声波的衰减1.6 超声波产生的效应2. 超声波传感器原理及传感器分类2.1 超声波传感器原理2.2 压电式超声波传感器2.3 磁致伸缩式超声波传感器2.4 超声波传感…

MyBatis案例 | 使用映射配置文件实现CRUD操作——通过主键查询对应数据

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥JavaWeb Java入门篇: 🔥Java基础学习篇 Java进阶学习篇&…

关于Linux中断的相关查询

1.linux 内核 /proc/interrupts 在 /proc/interrupts 文件中记录了 Linux 内核的中断信息,我们可以通过命令查看 sudo cat /proc/interrupts 文件中以表格的形式列举出来所有的内核中断,其表头信息标注如下: 我们可以通过特定任务执行时…

计算机SCI论文一定要在指定的机构润色吗? - 易智编译EaseEditing

不一定要在指定的机构润色。 首先期刊要求润色,是非常正常的事情。国人投的中文论文,有的也会被要求润色。 更不要说国外的英文期刊了,咱们写的英文文章投过去,大部分都会被要求润色的。 为什么期刊总是要求润色语言呢&#xff…

Windows7操作系统安全(3)

实验简介 实验所属系列:网络安全实践 实验对象: 本科/专科信息安全专业 相关课程及专业:计算机基础,Linux基础 实验时数(学分):2学时 实验类别:实践实验类预备知识 Windows系列是目…

Oracle重建控制文件

利用trace文件重建控制文件 1、生成trace文件: SQL>alter database backup controlfile to trace;2、找到生成的trace文件: SQL>show parameter user_dump_destuser_dump_dest 文件对应的路径即为trace文件的路径 3、关闭数据库 SQL>shutdo…

VueJS 之模板引用

文章目录参考描述模板引用引用访问模板引用组件中的模板引用$nextTick()示例updated错误示范正确演示$nextTick()参考 项目描述搜索引擎Bing哔哩哔哩黑马程序员VueJS 官方文档模板引用 描述 项目描述Edge109.0.1518.70 (正式版本) (64 位)操作系统Windows 10 专业版vue/cli5.…

jvm相关,jvm内存溢出,内存占用过高,CPU占用率高原因分析,MAT内存镜像文件分析的使用----学习笔记

什么是内存泄漏? 什么是内存溢出 内存溢出: OutOfMemory 它是指程序在申请内存时,没有足够的内存空间供其使用,抛出 OutOfMemory 错误 内存泄露: Memory Leak 它是指程序运行后,没有释放所占用的内存空间,比如程序运行完后没有释…

数据库和SQL初探

数据库和SQL初探1. 什么是数据库2. 数据库的结构3. MySQL表定义相关操作4. MySQL体系结构和存储引擎1. 什么是数据库 将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。用来管理数据库的计算机系统称为数据库管理系统(DatabaseManagementSyste…

Java面试题二(自用-持续更新)

本文目录如下:Java面试题(二)四、并发编程线程和进程的区别?守护线程是什么?创建线程有哪几种方式?线程有哪些状态?sleep() 和 wait() 有什么区别?线程的sleep()方法和yield()方法有什么区别?线…

我发现买不起自己出版的书了,这到底是咋回事?

大家好,我是冰河~~ 这次我是真的有点买不起自己的书了! 聊聊背景 继出版《海量数据处理与大数据技术实战》、《MySQL技术大全:开发、优化与运维实战》和《深入理解分布式事务:原理与实战》之后,冰河于2022年6月出版…

基于uni-app的小程序电子签名功能(带有笔锋)

前言 目前做的一个项目需要用到电子签名的功能,网上其实也挺多这种类型的电子签名,但是带有笔锋效果的确比较少,所以参考了一些博客,总结成了这个功能,在此分享给大家。 效果展示 代码展示 触摸开始(touc…

大数据专业需要学习python么

如果零基础入门数据开发行业的小伙伴,可以从Python语言入手。 Python语言简单易懂,适合零基础入门,在编程语言排名上升最快,能完成数据挖掘、机器学习、实时计算在内的各种大数据集成任务。 但是不会python也是没有关系的&#…

基于Vector VT系统的车身域测试方案介绍

车身域控制器作为车身主要部件的控制大脑,需要经过严苛的测试,常见的测试方式是通过搭建硬件在环测试系统实现的,测试原理是通过仿真控制器外围的传感器和执行器,实现车身域控制器的闭环仿真和测试。小怿基于国际一流的测试设备提…

Day15 C++STL入门基础知识九——list容器 基本概念-构造函数-赋值变换-大小操作-插入删除-数据存取-反转排序 【全面深度剖析+例题代码展示】

文章目录1. 基本概念1.1 功能1.2 概念1.3 组成和存储方式1.4 优缺点1.4 图解2. 构造函数2.1 函数原型2.2 代码展示2.3 测试结果3. 赋值交换3.1 函数原型3.2 代码展示3.3 测试结果4. 大小操作1.3 代码展示1.4 测试结果6. 插入删除6.1 函数原型6.2 代码展示6.3 测试结果7. 数据存…

React报错#310复盘小结

React报错#310复盘小结问题背景解决方案原理&学习引发错误情况1. 不要在循环,条件或嵌套函数中调用 Hook2. 把所有的钩子移到组件的顶层,在任何可能返回值的条件之上。总结问题背景 apm报错:Minified React error #310 https://reactjs.…

浅谈Graph Embedding(一)

Graph Embedding算法背景引入先回顾下图的概念:图(graph)由节点(vertex)和点之间连线(edge)所组成;其中,点通常被成为“顶点(vertex)”,而点与点之间的连线则被成为“边”(edge)。通常记为,G(V,E)。常见分为无向图和有向图。示例如下&#xf…

MySQL数据类型约束

文章目录数据类型MySQL中的数据类型整数类型类型介绍可选属性MUNSIGNEDZEROFILL适用场景如何选择?浮点类型类型介绍数据精度说明精度误差说明定点数类型类型介绍开发中经验位类型:BIT6. 日期与时间类型YEAR类型DATE类型TIME类型DATETIME类型TIMESTAMP类型…