Linux文件属性

使用ls -al后,查看目录文件:

drwx------   28 root root    4096 Mar 14 10:25 ./
drwxr-xr-x   23 root root    4096 Mar 10 13:13 ../
-rw-------    1 root root   27188 Mar 14 09:55 .bash_history

上述各列的意义如下:

1:权限
2:连接
3:所有者
4:用户组
5:文件容量
6:修改日期
7:文件名

权限

第一列代表这个文件的类型与权限,其中共有10个字符:

第一个字符代表这个文件是“目录、文件或链接文件等”:

  • 若是[d]则是目录

  • 若是[-]则是文件

  • 若是[l]则表示链接文件

  • 若是[b]则表示设备文件里面的可供存储的接口设备

  • 若是[c]则表示设备文件里面的串行端口设备,如理键盘、鼠标

接下来的字符,以3个为一组,且均为rwx3个参数的组合。其中[r]代表可读,[w]代表可写,[x]代表可执行。这3个权限的位置不会改变,如果没有权限,就会出现[-]。

  • 第一组为文件所有者的权限

  • 第二组为通用户组的权限

  • 第三组为其他非用户组的权限

连接

第二列表示有多少个文件名连接到此节点

所有者

第三列表示这个文件(或目录)的所有者账号

用户组

第四列表示这个文件的所属用户组

文件容量

第五列为这个文件的容量大小,默认单位为B

修改日期

第六列为这个文件的创建日期或者是最近的修改日期

文件名

第七列为文件名。如果文件名之前多了一个.,则表示这个文件为“隐藏文件”

如何改变文件属性和权限

改变所属用户组:chgrp

chgrp [-R] dirname/filename
选项与参数:
-R:进行递归的持续更改,也即连同子目录下的所有文件、目录

注意要/etc/group中存在此用户组

范例:
chgrp users install.log

改变文件所有者:chown

chown -R 账号名称 文件或目录
选项与参数:
-R:递归的持续更改

注意要/etc/passwd中存在此用户

范例:
chown bin install.log
//还可以顺便修改用户组
chwon root:root install.log

改变权限:chmod

权限的设置方法有两种,分别可以使用数字或者是符号来进行权限更改

数字类型:

Linux文件的基本权限就要9个,分别是owner、group、others三种身份各有自己的read、write、execute权限。其中,我们可以用数字来代表各个权限:r:4 w:2 x:1。所以单个用户的权限就可将这三个数字加一起表示。

chmode [-R] xyz 文件或目录
参数:
xyz: 就是rwx属性的相加
-R:递归的持续更改

范例:
chmod 777 .bashrc

符号类型:

我们可以通过u,g,o来代表3中身份的权限,a表示全部,读写的权限可以写成r,w,x。通过+,-,=来代表权限的加、减和设置。

//设置权限为-rwxr-xr-x
chmod u=rwx,go=rx .bashrc

//给每个人都加入些权限
chmod a+x .bashrc

目录与文件的权限意义

权限对文件的意义

对于文件的r、w、x来说,主要都是文件的内容的权限,但并不具备删除该文件本身的权限。

权限对目录的意义

r表示具有读取目录结构列表的权限,即可以用ls命令将目录的内容显示出来
w表示具有更改该目录结构列表的权限,包括新建新的文件与目录、删除已经存在的文件与目录(不论该文件的权限为何)、将已存在的文件或目录进行重命名、转移该目录内的文件和目录位置
x代表的是用户能否进入该目录成为工作目录的用途,所谓的工作目录就是你目前所在的目录。


参考书籍:

  • 鸟哥的Linux私房菜


Linux

登陆发表评论