我们在 Linux 中,存在文件的目录中执行 ls -al 命令,就会获得该目录下文件及其文件属性的信息。
例如:
$ ls -al
-rw-r--r-- 1 root root 120 Jan 6 2019 .bashrc
(省略其他文件)
这些字符串代表了文件及文件属性。
那么,这些文件属性具体的含义是什么?如何修改文件属性呢?
一、Linux 文件属性
-rw-r--r-- 1 root root 120 Jan 6 2019 .bashrc
[1] [2] [3] [4] [5] [6] [7]
[1] 文件类型与权限
[2] 表示链接到此节点的文件名数量
[3] 文件所有者
[4] 文件所属用户组
[5] 文件容量大小
[6] 文件创建日期或最近修改日期
[7] 文件名
以下对第[1]个属性——文件类型与权限做详细解释。
(1)文件类型
表明该文件具体的文件类型,如题含义有:
- “d” 表示目录
- “-” 表示文件
- “l” 表示链接文件
- “b” 表示可供存储的接口设备
- “c” 表示串行端口设备
(2)权限
文件类型与权限属性中,后三项分别代表文件所有者、文件所属用户组、其他人三类用户对该文件的操作权限。
- “r” 表示读权限,对于文件可以读取文件内容,对于目录可以通过 ls 查看目录下的文件
- “w” 表示写权限,用户可以修改文件内容或目录下文件
- “x” 表示执行权限,对于文件可以执行文件,对于目录可以通过 cd 切换到目录下操作
二、如何改变文件属性与权限
常用的对文件属性和权限的修改主要有三个:chgrp、chown、chmod
(1)chgrp:改变文件所属用户组
chgrp [group_name] [file_name]
(2)chown:改变文件所有者
chown [user_name] [file_name]
(3)chmod:改变文件的权限
chmod [mode] [file_name]
其中,mode 代表需要修改的权限形式,分别可以使用数字或者字符来表示。
前面提到,用户对于文件的权限有三个——读、写、执行,每一类用户都有这三个权限的说明。
1)数字形式
若使用数字形式表示权限,则每一个权限对应一个固定数字,即:
- r = 4
- w = 2
- x = 1
一个文件中,每钟身份会对这个文件的权限数字作累加,同时三种身份的权限累加数字拼接,就是设置文件权限的对应的数字形式了,例如:
-rwxr--r--
第一个字符表示文件类型,后面9个字符,每三个字符依次表示三种用户的权限,其中
- rwx:4+2+1=7
- r–:4+0+0=4
- r–:4+0+0=4
所以代表上述权限的数字是744,即如果要把文件修改为上述权限形式,则使用如下命令即可:
chmod 744 [file_name]
2)字符形式
Linux 提供了另一种方法——以字符的形式表达权限的形式。
文件所有者、文件所属用户组、其他人三种身份分别以 u、g、o 三个字母代表;
权限的修改形式有增加、除去、设置三种,分别以 +、-、= 三个字符代表;
权限有三类,分别是 r、w、x。
将上述三类字符拼接即可表达权限,以下为具体例子:
chmod u=rwx [file_name] # 修改文件所有者的权限为rwx
chmod go-r [file_name] # 去除文件所属用户组及其他人对该文件的写权限
(完)
本文为原创文章,转载请告知作者,未经授权请勿转载。
欢迎关注我的微信公众号、知乎:多面手程序员
如果您觉得这篇文章还不错,随手点赞,手有余香~ : )