文件属性和权限

本文介绍了Linux系统中文件的属性和权限管理,包括索引节点、文件权限、链接数、用户与组、文件大小、修改日期以及如何使用chown、chgrp和chmod命令更改文件属性。通过ls命令的选项,如-l、-i、-a,可以查看文件详细信息。文件权限由rwx组成,分别代表读、写和执行,分为用户、组和其他三组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

ls -l 或者ls -al可以显示文件的属性,而ls -i可以显示文件的索引节点,i表示inode索引节点。

下面分别说明文件属性的每一部分的含义,举例如下:ls -ali

818104070407 -rwxr-xr-x 1 root root 12 May 1 05:05 oldboy

1.索引节点

inode的概念。每个存储设备或存储设备的某一个分区被格式化为文件系统之后,出现了inode和Block。Block是用来存储数据的,而inode是记录存储的数据的相关信息的,包括文件的大小,读写权限等。ls -i的显示的第一项是文件的inode编号,也就是记录其信息的inode文件的编号,索引节点。

上面的818104070407就是inode号。

2.属性区域

上面的-rwxr-xr-x就是文件的属性和权限的说明。

第一个字符代表文件是目录、文件或链接等等。

为d时是目录,为-则是文件,为l表示链接文档(link file),若是b表示装置里面可供存储的接口设备(随机存储装置),若为c表示串行端口设备(比如键盘,鼠标)。

第一个字母后面的字符可以分为三组,每三个为一组,均为rwx,也就是读read,写write,执行execute,这三个权限的相对位置不会改变,如果有权限,会有相应的字符标注,如果没有权限,则会出现减号-。三个组分别依次为用户,组,其它,的权限,也就是user,group,others的权限。上面的符号表式文件对本用户可读可写可执行,对同组的用户可读可执行不可写,对其他人是可读可执行不可写。

3.有多少个文件名链接到该节点

每个文件都将它的权限和属性记录到文件系统的inode中,我们使用的目录树是以文件名来记录的,因此每个文件名都会链接到一个特定的inode。而不同的文件名可能会链接到同一个inode号码(也就是所谓的硬链接),文件权限后面的数字代表的就是链接到同一个inode号的文件的个数。

4.所属的用户和组部分

对于文件来说,都有一个特定的所有者,也有一个特定的组。前面的权限便是根据这个用户和组来区分的。ls -l选项显示的文件属性中,索引节点文件数目之后的第一个名称便是文件所属的用户,第二个名称是文件所属的组,例如实例中的文件属于的用户是root,属于的组也是root。

这里有一个特殊情况,若用户和组的名称部分都是数字(不是用-n选项),则是因为删除了用户,该用户创建的文件的属性相应的用户和组就会变成数字的形式。

5.文件大小

接下来的项目是文件的大小,默认的单位是B(Byte,字节),可以使用ls -h选项来以KB, MB等形式来显示大小。

6.创建或最近修改的日期

用简单格式来显示文档最近修改的日期,如果使用--full-time,可以显示完整的时间。

7.文件的名称

文件名中,以 . 开头的表示隐藏的文件,使用ls -a选项才可以显示,若使用ls -A也可以显示除了. 和 .. 以外的其它所有的文件。

8.更改文件属性

更改文件属组的命令:chgrp

chgrp [-R] 属组名 文件名; 需要注意的是,必须是文件的所有者或者root才有权限更改文件的属组。-R选项是将文件目录下的所有的文件都更改为新的组。

更改文件的属主命令:chown(也可以同时更改文件的属组)

chown [-R] 属主名 文件名

chown [-R] 属主名:属组名 文件名

比如我们将install.log这个文件拥有者改为bin,则可以使用命令chown bin install.log; 若想将其修改回root,则可以使用命令chown root:root intall.log。

更改文件9个属性的命令:chmod

可以使用数字方式更改权限属性,也可以使用符号类型方式更改文件权限。

数字形式。由于三组权限都是rwx,以二进制的方式为3位,r代表4,w代表2,x代表1,有就是加上相应数字,没有就是0,最终得到数字就可以表示所有的8中组合(0-7),比如3就表示二进制的011,也就是可写可执行但不可读。然后使用下面的命令来更改权限:chmod 777 a.cpp;表示所有的三组权限都是可读可写可执行。

符号形式。这种改变权限的方法有时候更为有效,用u, g, o分别表示user,group,others三种身份,a是所有身份,+是加入,-是除去,=是设定。然后使用命令chmod u=rwx, g=rx, o=r test.cpp;就可以修改test.cpp文件相应的权限了;使用命令chmod a-x test.cpp可以拿到test.cpp的所有身份的可执行权限。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值