一、Linux 文件属性
在Linux系统中,我们可以使用ls -al指令来列出所有的文件信息,如下图所示:
其中ls是list的意思。参数-al则表示列出所有的文件,包括隐藏文件,也就是文件前面第一个字符为.的文件。 通过观察,我们可以发现每一行都有七个字段。
第一栏:
第一字段也就是第一列,他代表着这个文件的类型与权限。其中,第一个字符代表着这个文件是目录、文件或链接文件等:
当第一个字符为 [d]时,这个文件是目录。
当第一个字符为 [-]时,这个文件是文件。
当第一个字符为 [l]时,这个文件是链接文件。
当第一个字符为 [b]时,这个文件是设备文件中可供存储的接口设备。
当第一个字符为 [c]时,这个文件是设备文件中的串行端口设备,例如键盘、鼠标。。
在接下来的字符中,以三个为一组,且为rwx的组合。其中r表示可读read,w表示可写write,x代表可执行execute。第一组是user文件拥有者可具备的权限,第二组是group同一个用户组的权限”,第三组是others其他非本用户组的权限。
**注意:**这三个字符的位置不能改变,若没有权限,就会出现-。
第二栏
第二栏表示有多少文件名链接到此节点。
第三栏
第三栏表示这个文件(或目录)的拥有者账号
第四栏
第四栏表示这个文件的所属用户组
第五栏
第五栏表示这个文件的容量大小。
第六栏
第六栏表示这个文件的创建时间或者是最近的修改时间。
第七栏
第七栏是这个文件的文件名。如果文件名之前多了一个.,则代表这个文件是隐藏文件。
二、修改文件属性与权限
1、修改文件所属用户组
我们可以直接通过chgrp命令来修改一个文件的用户组。其中,组名可以是用户组的 id,也可以是用户组的组名。文件名可以是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。
chgrp [参数] [组名] 文件名
举个例子:将text文件的所属用户组改为wl。
chgrp -R wl test
参数说明
-c 或 --changes 效果类似"-v"参数,但仅回显更改的部分。
-f或–quiet或–silent 不显示错误信息。
-h或–no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。、
-v或–verbose 显示指令执行过程。
–reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
–dereference 作用于符号链接的指向,而不是符号链接本身。
–version 显示版本信息。
注意:组名称必须在/etc/group存在。
2、修改文件拥有者
我们可以直接通过chown命令来修改一个文件的拥有者。
chown [参数] [组名] 文件名
3、修改权限
我们可以通过chmod命令来修改一个文件的文件权限。权限的修改方法有两种,第一种是使用数字来进行权限的修改,第二种是使用符号来进行权限的修改。
3.1 使用数字进行修改
用数字进行修改前,我们需要了解一下各个数字的含义:
0 表示没有权限
1 表示可执行权限
2 表示可写权限
4 表示可读权限
文件权限一共有九个,每三个分为一组,每组的权限就是三个权限之和。
举个例子【-rwxrwx—】的权限就是 770
chmod 权限 文件名
3.2 使用符号进行修改
通过之前的介绍,我们了解到,九个权限分为user,group,others,三组,我们可以用 u,g,o 来代表三种身份的权限。
chmod 权限 文件名 chmod 参数 权限 文件名