Linux文件的默认权限、软硬链接和属性

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

✅作者简介热爱国学的Java后端开发者修心和技术同步精进。
🍎个人主页Java Fans的博客
🍊个人信条不迁怒不贰过。小知识大智慧。
💞当前专栏Java案例分享专栏
✨特色专栏国学周更-心性养成之路
🥭本文内容Linux文件的默认权限、软硬链接和属性

文章目录

在这里插入图片描述

Linux文件的默认权限

在这里插入图片描述

创建默认权限

每次新建一个文件或者目录后用ls –l去查看的时候新建的文件或者目录本身就有些权限存在。

通过实例总结规律如下

在这里插入图片描述

在这里插入图片描述

说明通过实例发现在 seashorewang 账户下创建的所有目录的权限是一样的将新建目录的权限值转换为八进制数字是 775新建的所有文件的权限也都是一样的将新建文件的权限值转换为八进制数字是 664

新建的目录和文件是有一定规律的会有一个默认的权限。这个默认的权限就是umask。

umask设置了用户创建文件的默认权限它与chmod的效果刚好相反umask设置的是权限“补码”而chmod设置的是文件权限码。一般在/etc/bashrc、/etc/profile、$ [HOME]/.bash_profile或$ [HOME]/.profile中设置umask值。但是强烈建议不要通过文件修改umask的值。

名称umask
使用权限root
使用方式umask [-S] [权限掩码]

参数
-S以文字的方式来表示权限掩码。
说明umask可以用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成将现有的存取权限减掉权限掩码后即可产生建立文件时预设的权限。

查看本系统中root账户与seashorewang账户下的umask。

在这里插入图片描述

说明不同账户的默认umask可能是不同的。

umask的值为4为八进制数其中第一位是特殊权限的设置在此不作介绍。后面所说的umask都使用三位数字指的是后三位。

创建文件默认最大权限为666-rw-rw-rw-默认创建的文件没有可执行权限x位。对于文件来说umask的设置是在假定文件拥有八进制666的权限上进行的文件的权限就是666减去umask的掩码数值如果umask的部分位或全部位为奇数那么在对应为奇数的文件权限位计算结果分别再加1就是最终文件权限值。

创建目录默认最大权限777-rwxrwxrwx默认创建的目录属主是有x权限允许用户进入。对于目录来说umask的设置是在假定文件拥有777权限上进行目录八进制权限777减去umask的掩码数值。

文件权限的一般计算方法

1 默认文件权限计算方法

  • 假设umask值为022所有位为偶数。
    6 6 6 = = >文件的起始权限值
    0 2 2 = = >umask的值
    6 4 4

  • 假设umask值为045其他用户组为奇数。
    6 6 6 = = >文件的起始权限值
    0 4 5 = = >umask的值
    6 2 1 = = >计算出来的权限由于umask的最后一位数字是5所以在其他用户组位再加1
    0 0 1 +
    6 2 2 = = >真实文件权限

2 默认目录权限计算方法

  • 7 7 7 = = >目录的起始权限值
    0 2 2 = = >umask的值
    7 5 5

    在wei目录下使用seashorewang账户与root账户分别创建一个文件与一个目录然后用ls查看其详细信息。

在这里插入图片描述

说明1seashorewang账户下的umask为0002按照上面说的减法所以seashorewang账户创建的文件的权限为666-002=664也就是rw-rw-r–创建的目录的权限为777-002=775也就是rwxrwxr-x。而root账户创建的文件的权限为666-022=644也就是rw-r—r–创建目录的权限为777-022=755也就是rwxr-xr-x。
说明2通过比较我们发现使用root账户创建的文件与目录权限反而比seashorewang账户创建的文件与目录权限少主要体现在对于group上这是因为root的权限实在太大了为了防止使用root时出现问题所以通过umask对root创建的文件和目录加了限制。

将seashorewang账户的umask更改为022

在这里插入图片描述

说明umask后面接数字用于修改umask的值。

将当前账户的umask改为044建立目录与文件进行测试。

在这里插入图片描述

将当前账户的umask改为023建立目录与文件进行测试。

在这里插入图片描述

注意umask为偶数的位不要加1.

将当前账户的umask改为551建立目录与文件进行测试。

在这里插入图片描述

说明umask为0551根据掩码方法计算目录权限为777-551=226也就是-w—w-rw-文件的权限为666-551=115115+111=226因为umask的三个权限位都是奇数所以每个位分别加1就是正确的权限也就是-w–w-rw-。

Linux文件的软硬链接

在这里插入图片描述

  Linux文件系统中的每一个对象都有唯一的inode索引每一个inode号和文件系统的一个对象一一对应要查看文件或目录的inode号可在ls命令中使用-i选项每个目录下的.当前目录和…上级目录都是硬链接。

  在Linux系统中内核为每一个新建立的文件分配一个inodei节点每个文件都有一个唯一的inode号。文件属性保存在索引节点里在访问文件时索引节点被复制到内存中从而实现文件的快速访问。链接是在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。

  Linux具有为一个文件起多个名字的功能称为 链接。被链接的文件可以存放在相同的目录下但必须有不同的文件名而不用在硬盘上为同样的的数据重复备份。被链接的文件可以有相同的文件名但是要存放在不同的目录下只要对一个目录下的该文件进行修改就可以完成对所有目录下同名链接文件的修改。对某个文件的各链接文件可以给它们指定不同的权限以控制对信息的共享和增强安全性。

硬链接

  建立硬链接时在别的目录或本目录中增加目标文件的一个目录项这样一个文件就登记在多个目录中。创建硬链接后已经存在的文件的i节点号会被多个目录文件项使用。

  文件的硬链接数可以在用ls –l查看信息的第2列中看到无额外链接的文件的链接数为1.默认情况下ln 命令创建硬链接。ln命令会增加链接数rm命令会减少链接数。
1普通用户不能对目录文件创建硬链接不能在不同的文件系统至之间做硬链接。即链接文件和被链接文件必须处于同一个文件系统中。
2硬链接是文件的一个拷贝其i节点号是一样的。 类似于复制但复制只是一个简单的拷贝是静态的而硬链接不但是拷贝是动态的而且是可以共享资源。

  硬链接是一个指针指向文件inode号系统并不为硬链接重新分配inode。硬链接可以节省空间也是Linux系统整合文件系统的传统方式但是不可以在不同文件系统的文件之间建立链接只有root用户可以为目录创建硬链接。

软链接符号链接

  软链接也称符号链接是一个新文件。符号链接类似于Windows的快捷方式符号链接实际上是特殊文件的一种。在符号链接中文件实际上是一个文本文件其中包含有另一个文件的位置信息。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于符号链接时将沿着链接方向前进来访问实际的文件。

  使用 ln –s 命令建立符号链接。

硬链接和软链接的区别
1 符号链接是一个新文件具有自己的i节点号硬链接没有建立新文件其只是一个指针。
2 符号链接没有硬链接的限制可以对目录文件建立符号链接也可以在不同文件系统之间建立符号链接。
3 当源文件被删除后硬链接文件同样可以被使用而符号链接文件将无法使用。
4 符号链接会显示为“链接文件名->指向的实际文件”而硬链接通过文件名无法判断。

在这里插入图片描述

名称ln
全称link
使用权限ln [options] source源路径 dest目标路径
说明创建软硬链接。
参数
-s创建软链接如果不加参数默认创建的是硬链接。
-f删除目标文件然后创建连接。

在这里插入图片描述

Linux文件属性

在这里插入图片描述

通过ls –l或者ls –al命令来解读Linux文件属性

在这里插入图片描述

利用ls –al查看的信息一共有7列每个文件信息由7个部分组成分别为①文件权限②链接数或子目录数③文件所有者④文件所属用户组⑤文件大小⑥文件最后被修改时间mtime⑦文件名

第1列——文件权限

第一部分由10个字符组成每个字符都有其自身的含义其中10个字符的具体含义分别是

在这里插入图片描述

第1个字符代表文件的类型
[-]该文件是一个普通文件。
[d]该文件是一个目录字母[d]是directory的缩写。
[l]该文件是一个符号链接字母[l]是link链接的缩写。
[b]该文件是一个块设备文件字母[b]是block的缩写。
[p]代表管道。

注意

一个目录或者一个文件夹是一个特殊文件里面存放的是其他文件和文件夹的相关信息。
符号链接的概念类似于windows里的快捷方式。
在UNIX类系统中一个文件可以有多个文件名一个文件的多个文件名之间互称为硬链接Hard Link这些文件名可以指向同一个文件删除其中一个文件名并不能删除该文件只有把指向该文件的所有硬链接都删除这个文件所占用的空间才真正被释放该文件才真正被删除。
设备文件是普通文件和程序访问硬件设备的入口是很特殊的文件它没有文件大小只有一个主设备号和一个辅设备号。

操作系统对文件的权限管理可以总结为“两个三”第一个三就是文件的所属分为 自己、同组与其他第二个三是对文件的 读、写与执行

文件属性第一列除了第一个字符外的其它9个字符可以3个一组分为三组分别代表自己、同组与其他。每组有且只有三个字符分别是[r]代表可读read[w]代表可写write[x]代表可以执行execute。这三个字符的顺序是不能改变的每组中的第一个字符都代表可读第二个字符都代表可写第三个字符都代表可执行。如果不具有读写执行的某个权限则用[-]填补也就是即使没有这个权限也不能为空用[-]代替。如下所示

在这里插入图片描述

将/etc/passwd文件复制到/tmp/sanguo目录下查看其详细信息并说明其文件权限情况。

在这里插入图片描述

说明从passwd文件的权限部分的第一个字符可以看出这是一个普通文件从其24个字符可以看到创建文件的用户对该文件具有读写权限但不可以执行也间接说明了这个文件是个不可执行文件从57个字符可以看出该文件对同组成员仅开放了读的权限从8~10个字符可以看出该文件对其他用户也是仅开放了读的权限。

第2列——链接数或子目录数

如果所查看的文件为目录则该字段表示的是该目录下面有多少个子目录如果查看的是文件则表示该文件的硬链接数。其实在Linux操作系统中文件的权限与属性都会记录到文件系统的inode之中每个文件名都是指向这个inode的。即这个字段表示的是该文件有多少个文件名

查看passwd文件的链接数为其创建2个硬链接后再查看其链接数为其创建1个软链接后继续查看。

在这里插入图片描述

说明在没有创建任何硬链接前passwd 文件的链接数为1每次为其创建一个硬链接该文件的链接数就增肌1创建软链接不改变其链接数。从而说明这项值指的是硬链接数其中passwd_1与passwd_2互为硬链接。

在这里插入图片描述

说明从查看的结果看建立硬链接后的文件和原来的passwd文件的inode号是一样的而创建软链接的inode号是不一样的。再次说明硬链接其实指向的是同一个文件只是不同的文件名而已。

第3列——文件所有者

该字段表示这个文件是属于哪个用户的 。UNIX类系统都是多用户系统每个文件都有它的拥有者。只有文件的拥有者才具有改动文件属性的权利当然root用户具有改动任何文件属性的权利。对于一个目录来说只有拥有该目录的用户或者具有写权限的用户才有在目录下创建文件的权利。该列指的是该文件的所属也就是拥有者是谁。

第4列——文件所属组

组的概念可以想象成一个共同完成一个项目的团队通过组的概念可以控制文件让特定的用户查看、修改或运行而不是一棍子打死要么全不让看要么全让看。一个用户可以加入很多个组但其中有一个是主组就是显示在第4列的名称。该列指的是该文件所属的组。

第5列——文件大小

第5字段表示文件大小如果是一个文件夹则表示该文件夹的大小注意是文件夹本身的大小不是文件夹以及它下面文件的总大小。文件大小在Linux操作系统中默认的大小单位是B即你的文件大小是多少B。

在这里插入图片描述

第6列——最后一次修改时间

该列指的是文件的创建时间或者最后一次被修改的时间。

在这里插入图片描述

说明这两个文件的最后一次修改时间是不一样的因为/tmp/sanguo下的passwd文件是刚复制过来的它的最后一次被修改时间肯定改变了。

第7列——文件名

即文件的名字如果是一个符号链接就会有一个“->”箭头符号后面跟一个它指向的文件。符号链接类的文件的大小是所指向的文件的名称的字符数。文件名的第1个字符是“.”的文件为 隐藏文件

查看/tmp/sanguo目录下的文件名称尤其是软链接的文件名。

在这里插入图片描述

说明软链接的文件名颜色有所区别并且用“->”软链接的大小为其指向的文件名的名称字符数。


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

在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux

“Linux文件的默认权限、软硬链接和属性” 的相关文章