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个为一组,且均为rwx
3个参数的组合。其中[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私房菜