【Linux基础】3. 文件基本属性

文章目录

  • 【 1. 文件的属主和属组 】
  • 【 2. 显示文件的类型、权限 】
    • 2.1 文件类型
    • 2.2 文件权限
  • 【 3. 更改文件属性 】
    • 3.1 chgrp 更改文件属组
    • 3.2 chown 更改文件所有者
    • 3.3 更改文件权限
      • 3.3.1 数字法更改文件权限
      • 3.3.2 符号法更改文件权限

【 1. 文件的属主和属组 】

  • Linux 系统是一种典型的 多用户系统,为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
  • Linux系统按 文件所有者文件所有者同组用户其他用户 来对不同用户分类进而规定了不同的文件访问权限。因此,不同的用户处于不同的地位,拥有不同的权限。
user 文件所有者对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
group 文件所有者同组用户在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
other 其他用户与该文件所有者不同组的用户
  • root 用户具有Linux整个系统的最高权限。

【 2. 显示文件的类型、权限 】

  • 在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的类型以及文件所属的用户和组,如:
    在这里插入图片描述
    在这里插入图片描述

2.1 文件类型

  • 第一个字符代表这个文件的类型 是目录还是文件或者链接文档等等。例如,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件就是一个目录文件。
第一个字符代表的含义
d目录
-文件
l链接文档(link file)
b装置文件里面的可供储存的接口设备(可随机存取装置);
c装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

2.2 文件权限

  • 接下来的9个字符中, 以三个为一组,每一组均为 rwx 的三个参数的组合(r 代表可读read、 w 代表可写write、 x 代表可执行execute,如果没有对应权限,则通过减号 - 替代),分别代表属主、属组和其他用户的读/写/可执行权限。 这三个权限的位置不会改变,例如 r-x 表示有读和可执行的权限,没有写的权限。
  • 一般来说,属主权限≥属组权限≥其他用户权限。
    在这里插入图片描述
  • 实例:mysql 文件的属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。
[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

【 3. 更改文件属性 】

  • 在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与对应的权限:
    • chown (change owner) : 修改所属用户与组。
    • chmod (change mode) : 修改用户的权限。
  • 实例:下图中通过 chown 来授权用户,通过 chmod 为用户设置可以开门的权限。
    在这里插入图片描述

3.1 chgrp 更改文件属组

  • chgrp 更改文件属组基本语法
chgrp [-R] 属组名 文件名
  • 参数选项
    -R:递归更改文件属组,就是在更改某个目录文件的属组时, 如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。

3.2 chown 更改文件所有者

  • 也可以同时更改文件属组。
  • chown 更改文件所有者基本语法
chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名
  • 实例1:进入 /root 目录(~)将 install.log 的拥有者改为bin这个账号:
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
  • 实例2:将 install.log 的拥有者与群组改回为 root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3.3 更改文件权限

  • Linux文件属性有两种设置方法,一种是数字,一种是符号。

3.3.1 数字法更改文件权限

  • 文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的。其中,我们可以使用数字来代表各个权限,各权限的数字对照表 如下:
权限数字
r4
w2
x1
-0
  • 每种身份(owner/group/others)各自的三个权限(r/w/x)数字是需要累加的,例如当权限为: -rwxrwx— 分数则是:
    owner = rwx = 4+2+1 = 7
    group = rwx = 4+2+1 = 7
    others= — = 0+0+0 = 0
    所以当我们更改权限时,该文件权限代表的数字就是 770。
  • chmod 数字法更改文件权限基本语法
    • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
    • R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更。
 chmod [-R] xyz 文件或目录
  • 实例:将 .bashrc 这个文件所有的权限都设定启用即777。
[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

那如果要将权限变成 -rwxr-xr-- ,权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

3.3.2 符号法更改文件权限

  • 可以使用 u, g, o 来代表三种身份的权限。其中,u代表user用户,g代表group组,o代表other其他。此外, a 则代表 all,即用户、组、其他三者全部的身份。
  • chmod 符号法更改文件权限基本语法
chmod  文件属性(u、g、o、a)  操作类型(+加入、-减去、=设定)   权限(r读、w写、x可执行)  文件或目录
  • 实例1:将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
  • 实例2:将权限去掉而不改变其他已存在的权限,例如要拿掉全部人的可执行权限
#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

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

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

相关文章

Vue的脚手架

脚手架配置 脚手架文档:Vue CLI npm config set registry https://registry.npm.taobao.org vue.config.js配置选项: 配置参考 | Vue CLI ref选项 ref和id类似,给标签打标识。 document.getElementById(btn); this.$ref.btn; 父子组…

Kafka 分级存储在腾讯云的实践与演进

导语 腾讯云消息队列 Kafka 内核负责人鲁仕林为大家带来了《Kafka 分级存储在腾讯云的实践与演进》的精彩分享,从 Kafka 架构遇到的问题与挑战、Kafka 弹性架构方案类比、Kafka 分级存储架构及原理以及腾讯云的落地与实践四个方面详细分享了 Kafka 分级存储在腾讯云…

Leetcode 1901. 寻找峰值 II(Java + 列最大值 + 二分)

题目 1901. 寻找峰值 II 一个 2D 网格中的 峰值 是指那些 严格大于 其相邻格子(上、下、左、右)的元给你一个 从 0 开始编号 的 m x n 矩阵 mat ,其中任意两个相邻格子的值都 不相同 。找出 任意一个 峰值 mat[i][j] 并 返回其位置 [i,j] 。你可以假设整个矩阵周边…

基于JAVA的海南旅游景点推荐系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

STM32 RTC总结

RTC入侵检测Tamper RTC Tamper功能就是,MCU在Tamper管脚检测到一个指定边缘信号(可配置)时,就主动清除所有备份寄存器数据的功能。如果需要,可以使能Tamper中断,在每次检测到Tamper信号后执行指定代码。 在…

用23种设计模式打造一个cocos creator的游戏框架----(二十一)组合模式

1、模式标准 模式名称:组合模式 模式分类:结构型 模式意图:将对象组合成树型结构以表示“部分-整体”的层次结构。Composite 使得用户对单个对象和组合对象的使用具有一致性。 结构图: 适用于: 1、想表示对象的部分…

算法通关村第十关—快速排序(青铜)

快速排序 快排的基本过程 快速排序是将分治法运用到排序问题的典型例子  快速排序基本思想是:通过一个标记pivot元素将n个元素的序列划分为左右两个子序列left和right,.其中left中的元素都比pivot小,right的都比pivot的大,然后再次对Ieft和r…

关于折线回归

一、说明 今天的帖子主要是关于使用折线回归找到最佳值。即将某条曲线分解成包络线段,然后用分段回归方式优化。但它也涉及使用 SAS 和 R 的剂量反应研究和样条曲线。这不是第一篇关于这些主题的文章,但我确实想在其中添加折线。只是因为它还在使用。 二…

使用docker-compose搭建docker私服与配置WebUI

简介 本文介绍了使用docker compose 搭建 docker私服 环境 Docker version 24.0.6, build ed223bc Docker Compose version v2.21.0 正文 一、创建registry文件夹 我的路径是/usr/loca/docker/registry 二、创建并编写docker-compose.yml version: "3.9" services…

机器学习之逻辑回归(Logistic Regression)

概念 逻辑回归(Logistic Regression)是一种用于解决分类问题的机器学习算法,尽管其名字中包含"回归"一词,但实际上它用于处理分类任务,而不是回归任务。逻辑回归是一个二分类算法,它用于预测目标变量的取值为两个类别之一。 1. 基本原理: 假设函数(Hypothe…

ios备忘录怎么导入华为 方法介绍

作为一个常常需要在不同设备间切换的人,我深知备忘录的重要性。那些突如其来的灵感、重要的会议提醒、甚至是生活中的琐碎小事,我们都习惯性地记录在备忘录里。但当我决定从iPhone转向华为时,一个问题困扰了我:如何将那些珍贵的备…

React面试题:React.createClass和extend Component的区别有哪些?

回答思路:语法区别-->获取props区别-->状态的区别-->this的区别-->Mixins的区别 注释: 工厂函数:是一种函数式编程的概念,用于创建和返回其他函数。在React中,工厂函数常用于创建组件。工厂函数接受一些参…

智能优化算法应用:基于学校优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于学校优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于学校优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.学校优化算法4.实验参数设定5.算法结果6.…

Axure中继器完成表格的增删改查的自定义元件(三列表格与十列表格)

目录 一、中继器 1.1 定义 1.2 特点 1.3 适用场景 二、三列表格增删改查 2.1 实现思路 2.2 效果演示 三、十列表格增删改查 3.1 实现思路 3.2 效果演示 一、中继器 1.1 定义 在Axure中,"中继器"通常指的是界面设计中的一个元素,用…

面试算法61:和最小的k个数对

题目 给定两个递增排序的整数数组,从两个数组中各取一个数字u和v组成一个数对(u,v),请找出和最小的k个数对。例如,输入两个数组[1,5,13,21]和[2,4&#xff0…

Python基于joblib的并行计算进程线程multiprocessing多核并行计算

文章目录 Python基于joblib的并行计算适用场景使用示例总结爬虫&joblib使用`joblib`的场景注意事项使用实例结论joblib介绍简单示例多参数并行并行时CPU是怎么分配的何时选用并行进程&线程进程和线程之间的关系

IntelliJ IDE 插件开发 | (三)消息通知与事件监听

系列文章 IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听 前言 在前两篇文章中讲解了关于插件开发的基础知识&…

【linux】解决matplotlib中文显示乱码

一、Debian操作系统版本号 $ cat /etc/debian_version 12.4 二、问题 matplotlib中文显示乱码。 三、解决方法: plt.rcParams["font.sans-serif"] "Noto Sans CJK JP" 四、解决过程 1.问GPT 回答了一些相关问题,但是好像用…

Python tkinter 初探Toplevel控件搭建父子窗口

目录 Toplevel控件搭建父子窗口 最简明的父子窗口框架 改进一:屏蔽和开放按钮 改进二:子窗口始终在主窗口之上 改进三:增加子窗口的关闭协议 改进四:使子窗口长获焦点 总结 Toplevel控件搭建父子窗口 最近,用P…

k8s集群1.23.0版本部署说明

1.部署 k8s1.23.0版本与1.26.0版本的部署基本差不多,只不过k8s 1.23版本不需要部署cri-docker,所以只需要在1.26.0版本部署的基础上不要cri-docker的部署即可 参考:kubeadm部署k8s 1.26.0版本高可用集群_kubeadm 高可用集群-CSDN博客 搭建…