Linux文件属性详述

一、文件属性信息概述

文件属性信息组成如下:

  1. 文件索引属性信息——inode编号;
  2. 文件类型权限信息;
  3. 文件链接属性信息——硬链接数;
  4. 文件属主信息——文件所有者;
  5. 文件属组属性信息——文件所属组;
  6. 文件大小属性信息——最小单位字节;
  7. 文件修改时间信息;
  8. 文件名称信息说明;

Linux文件属性详述

二、文件属性信息详述

2.1 文件类型概念说明

  • 文件类型预备知识 扩展名说明:
  • Windows中通过扩展名区分不同文件类型
  • Linux中通过扩展名提示不同文件类型(就算把压缩文件扩展名改了,依旧是压缩文件);
  • 文件类型详细说明
  • 普通文件——f/-(file) ①. 纯文本文件text: /etc/hosts; ②. 二进制文件binary: /bin/ls; ③. 数据型文件data: /tmp/etc.tar.gz

    利用file命令可以查看文件类型

  • 目录文件(文件夹)——d/d(directory)
  • 链接文件——l/l(软链接 符号链接 快捷方式)
  • 设备文件

    b/b(block)(块设备文件) c/c(character)(字符设备文件 会不断产生字符信息) 需要关注的设备文件:

磁盘设备文件 /dev/sda
随机设备文件 /dev/urandom
输出设备文件 /dev/zero
输入设备文件 /dev/null
  • 套接字文件——s/s(socket)(套接接口文件 和网络有关的文件)
  • 管道文件——p/p(pipe)(管道文件)
  • 文件类型查看方法
file [文件信息]

配置文件---.conf
日志文件---.log
脚本文件---.sh
脚本文件---.py

注意:不能以颜色判断文件类型。

2.2 文件软硬连接说明

  • 概念说明
  • 硬链接直接指向index node编号;
  • 相当于访问文件的一个入口;
  • 相当于访问文件的入口数量;
  • 同一个分区中,inode号码相同的文件互为硬链接;
  • 操作练习
01. 创建文件信息
touch /data/oldboy
02. 创建硬链接
ln /data/oldboy /data/oldboy.txt_hard
03. 检查创建信息
ls -lhi oldboy*
  • 特点作用
  • 防止误删数据;
  • 不能给目录创建硬链接;

  • 概念说明

  • 相当于快捷方式;
  • 用于存放指向源文件的路径信息;
  • 操作练习
01. 创建文件信息
touch /data/oldboy
02. 创建软链接
ln -s /data/oldboy /data/oldboy.txt_soft
03. 检查创建信息
ls -l oldboy*

-s:创建软链接
* 特点作用
1. 软件链接创建最好采用绝对路径,否则容易失效;
2. 链接源文件删除,会影响软链接;

2.2.3 扩展知识点
  • 如何真正删除一个文件
  • 文件硬链接数为0时,表示数据真正删除了;
  • 文件信息没有被进程调用的时候,进程调用数为0;

    查看文件是否被进程调用:lsof |grep “secure”

  • 删除文件的底层逻辑:
  • 删除的硬链接;
  • 判断该文件硬链接数是否为0;
  • 如果为0,则在磁盘中将其删除;
  • 如果不为0,则只删除一个硬链接;

2.3 存储数据相关—inode

2.3.1 概述介绍
  • 索引节点:index node
  • 存放文件信息
  • 文件大小
  • 文件时间
  • 文件类型
  • 文件权限
  • 文件名称
2.3.2 诞生原因

存储知识储备:

  1. 硬盘硬件–拥有房子
  2. 硬盘分区–划分隔断
  3. 格式化硬盘–开始装修
  4. 文件系统–装修风格
  5. 进行挂载–安装门窗

inode是在格式化创建文件系统的时候诞生的

2.3.3 特点说明
  • inode用于存放的是文件属性;
  • inode用于存放块的指针位置;
  • 创建一个文件至少占用一个inode和一个block;
  • 在同一分区中,两个文件的inode号码相同,两个文件互为硬链接;
2.3.4 命令查看
展示inode信息:
ls -lhi /etc/hosts
131100 -rw-r--r--. 2 root root 352 Jan 27 01:15 /etc/hosts

统计inode数目:
df -i

2.4 存储数据相关—block

2.4.1 概述介绍
  • 存储数据-block块信息
  • 存储文件数据信息
2.4.2 诞生原因

也是在格式化创建文件系统的时候诞生的。

2.4.3 特点说明
  • block用于存放的是数据信息;
  • block默认大小为4k(比较大的文件,会占用多个block);
  • 创建一个文件至少占用一个inode和一个block(非空文件);
  • 磁盘读取数据按block为单位读取的;
  • 读取一个block会消耗一次磁盘I/O(input/output 磁盘读写);
2.4.4 命令查看
展示block信息:
ls -lh /etc/hosts
-rw-r--r--. 2 root root 352 Jan 27 01:15 /etc/hosts

统计block数目:
df/df -h

2.5 访问文件原理—inode/block

Linux文件属性详述

2.6 文件用户和用户组

2.6.1 用户与用户组概念
  • 用户——相当于账号 UID:user id(用户id)
  • 用户组——某些具有相同属性的账号的集合 GID:group id(用户组id)
2.6.2 用户分类
  • 超级管理用户(皇帝) root——uid=0
  • 面见皇帝方法:
    1. 利用地址信息访问-IP
    2. 利用用户信息访问-root
    3. 利用密码信息访问
    4. 利用端口信息访问
  • 保护皇帝方法:
    1. 修改远程连接端口-52113
    2. 禁止root用户远程登录
  • 系统虚拟用户(傀儡) www——uid=1-999
  • Linux下面每个程序/进程都需要有一个对应的用户和用户组;
  • 一般用在启动应用程序上,是无法登录Linux系统的用户;
  • 著名的傀儡用户 id nobody id=99;
  • 系统普通用户(百姓) oldboy——uid=1000及以上
2.6.3 用户相关文件
  • 用户的特征信息
/etc/passwd (掌握文件各列信息)
  • 用户的密码信息
/etc/shadow
  • 用户组特征信息
/etc/group
  • 用户组密码信息
/etc/gshadow
  • 用户家目录默认隐藏文件
/etc/skel/
2.6.4 用户相关命令
  • 创建用户
useradd

参数:
    -g : 指定用户组(用户必须存在)
    -r : 创建系统用户
    -M :不创建家目录
    -u :指定创建用户的ID
  • 创建用户组
groupadd

参数:
    -g : 指定用户组的ID
  • 切换用户
su - [用户名]
su [用户名]
  • 查看用户或组的ID
id [用户名]
  • 查看用户详情文件
[root@localhost ~]# cat /etc/passwd
test01:x:1001:1001:"用户简介":/home/test01:/bin/bash
用户名       : test01
密码占位符     :x
1001          : userid
1001          : 组id
/home/test01      : 家目录
/bin/bash     :默认的解析器

Linux自带解析器:bash sh 其他解析器:zsh …

2.6.5 手动创建用户(不使用useradd)
  1. 添加用户
vim /etc/passwd
test08:x:2001:2001:自建用户:/home/test08:/bin/bash
  1. 添加组
vim /etc/group
test08:x:2001:
  1. 添加用户密码
vim /etc/shadow
test08:!!:18974:0:99999:7:::
  1. 添加用户组密码
vim /etc/gshadow
test08:!::
  1. 添加家目录及权限
mkdir test08
cp /etc/skel/.bash* /home/test08/
chown -R test08.test08  test08
chmod 700 test08/

2.7 文件相关权限

2.7.1 权限说明

某一个用户针对某一个文件的权限。

2.7.2 权限类型(每个权限拥有一个数字编号)
  • 读取权限(4):read(r)
  • 写入权限(2):write(w)
  • 执行权限(1):execute(x)
  • 没有权限(0):N/A(-)
2.7.3 权限位说明

权限位主要分为三个部分,分别是属主、属组以及其他用户。

    rw-r--r--

文件或目录属主用户权限:rw-(6)
文件或目录属组组员权限:r--(4)
文件或目录其它用户权限:r--(4)

Linux文件属性详述
2.7.4 权限编号写法

在添加权限的时候,可以将权限对应数字编号加起来。

案例:

index:
    属主 : 可读可写可执行
    属组 :可读可写
    其他人:没有任何权限

对应权限为:rwxrw----  等价于  760

eg:将index文件添加对应权限(属主 : 可读可写可执行、属组 :可读可写、其他人:没有任何权限)
        chmod 760 index
2.7.5 添加权限命令——chmod
格式:
    chmod [参数] [权限表达式] [操作对象]

参数:
    -R  : 递归增加权限

eg: 将index文件夹下的所有文件设置rwxr--r--
        chmod -R  744  baidu/

权限的归属(可以给指定的权限位添加或删除对应的权限)
    属主:u
    属组:g
    其他人:o

eg:将index这个文件的属组增加一个可执行权限
        chmod g+x index
2.7.6 测试权限对于用户的意义

结论:

  1. 普通用户是严格遵守权限的;
  2. root用户是高于权限的(可以无视权限);
  3. 权限修改后一般需要重登录才可生效(su和su – 都可);
2.7.7 测试权限对于目录的意义

结论:

  1. 文件可读,对应路径的最小权限是必须拥有可执行权限;
  2. 文件可写,对应路径的最小权限是必须拥有可执行权限;
  3. 文件可执行,对应路径的最小权限是必须拥有可读可执行权限;
2.7.8 创建文件或文件夹的默认权限

在Linux中,常用的文件的权限是666,目录的权限是777。

查看umask值的文件:

/etc/profile

默认权限的计算方法如下:

[En]

The default permissions are calculated as follows:

  1. 文件的权限是跟 umask 值相减,遇到奇数加一,遇到偶数则不变;
  2. 文件夹的权限只需跟 umask 值相减即可;

对于root用户:

umask值:022

默认文件权限:644
默认的文件夹权限:755

对于新建用户(不指定用户组):

umask值:002

默认文件权限:664
默认的文件夹权限:775

对于用户id与用户组id不同的用户:

umask值:022

默认文件权限:644
默认的文件夹权限:755

2.8 文件时间信息

2.8.1 文件时间信息分类

三种时间信息:

  • 文件访问时间(Access):atime
  • 文件修改时间(Modify):mtime
  • 属性修改时间(Change):ctime
2.8.2 文件时间详细说明
  • 验证时间命令:
stat [文件/文件夹]
  • 编辑文件内容:

    文件访问时间不变 文件修改时间变化 文件属性时间变化

  • 修改文件属性:

    文件访问时间不变 文件修改时间不变 文件属性时间变化

  • 访问文件信息:

    文件访问时间变化 文件修改时间不变 文件属性时间不变

Original: https://www.cnblogs.com/JZjuechen/p/15689796.html
Author: JZEason
Title: Linux文件属性详述

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524297/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MTSP问题的简单介绍

    1. TSP问题与MTSP问题 1.1 TSP与MTSP问题的介绍: TSP:是指旅行家(1名)要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的 路程最短…

    Linux 2023年6月14日
    0138
  • 甲骨文严查Java授权,换openJDK要避坑

    背景 外媒The Register报道,甲骨文稽查企业用户,近期开始将把过去看管较松散的Java授权加入。 甲骨文针对标准版Java(Java SE)有2种商业授权。2019年4月…

    Linux 2023年6月14日
    078
  • 复习刷题7.23-Java开发

    基本上是每天学一点点 在复习的同时,发现好多之前没学过的,底层基础是真的重要(主要是算法不行(x))。开始狂补了要。 书:图解http,Java编程思想,疯狂Java讲义,计算机网…

    Linux 2023年6月7日
    060
  • 2021年度总结 2022年度规划

    2021年 计划 1、学习更多的知识😁 2、学习408的知识,至少能熟悉计算机组成原理、操作系统、计算机网络、算法这几个的联系,区别等。😁 3、整理408的知识到博客上。 (一篇未…

    Linux 2023年6月13日
    080
  • usermod -aG命令

    原文链接:https://www.zhoubotong.site/post/73.html添加用户uos到组groupA里: usermod -a -G groupA uos 例如…

    Linux 2023年6月6日
    0701
  • Linux 最小安装与 Xshell 远程工具的使用

    写在前面:本篇文章介绍了CtenOS的最小安装方法,以及使虚拟机使用VMware的桥接模式的方法。桥接模式下的虚拟机,相当于和物理机处于同一物理网络(网线、WIFI等)下。在多台物…

    Linux 2023年6月8日
    095
  • 《拉钩课程 — 重学数据结构与算法》学习笔记

    一、代码效率优化方法论 1、数据结构,从名字上来看是数据的结构,也就是数据的组织方式。 2、复杂度是衡量代码运行效率的重要度量因素。 3、复杂度是一个关于输入数据量 n 的函数。假…

    Linux 2023年6月16日
    095
  • [云原生]Kubernetes-资源管理(第3章)

    一、资源管理介绍 二、YAML语言介绍 三、资源管理方式 3.1 命令式对象管理 3.2 命令式对象配置 3.3 声明式对象配置 参考: Kubernetes(K8S) 入门进阶实…

    Linux 2023年6月13日
    090
  • MIT6.828——Lab1 partB(麻省理工操作系统课程实验)

    Lab1 历时2天,完成了LAB1,完整代码仓库可点击:https://github.com/Elio-yang/MIT6.828 partA 练习 *exercise3 gdb指…

    Linux 2023年5月27日
    0102
  • Ubuntu 18.04 安装教程

    准备材料 Ubuntu安装U盘 足够的硬盘空间 未初始化的硬盘需要提前初始化 注意事项 Ubuntu安装盘的制作请参考我的另外一个博客,里面写清楚了怎么制作Ubuntu安装盘,步骤…

    Linux 2023年6月14日
    063
  • 【开源打印组件】vue-plugin-hiprint初体验

    vue-plugin-hiprint的学习与应用 😄 生命不息,写作不止🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🏆 一个有梦有戏的人 @怒放吧德德🌝分享学…

    Linux 2023年6月6日
    0143
  • 使用ipmitool配置ipmi(远程控制卡)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    080
  • Dockerfile

    基本结构 Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义镜像。 Dockerfile 由一行行命令语句组成,并且支持以 # 开头…

    Linux 2023年6月13日
    084
  • Java并发-建立线程

    一、建立新的线程 方法介绍 1、java.lang.Thread 1.0 Thread(Runnable target) 构造一个新线程,用于调用给定目标的run()方法。 voi…

    Linux 2023年6月7日
    074
  • Linux Ubuntu 添加新用户

    1. 了解配置文件 Linux下与用户信息相关的配置文件有 /etc/passwd、 /etc/group、 /etc/shadow等,其权限分别如下: /etc/passwd:保…

    Linux 2023年6月14日
    082
  • RPA跨系统自动生成采购订单

    bash;gutter:true;1、从开发器启动机器人2、RPA登录友采云3、RPA根据筛选条件,导出采购订单4、RPA请并登录NC5、RPA把读取到的数据,逐个录入到NC系统中…

    Linux 2023年6月7日
    0116
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球