Linux文件权限
1、Linux文件属性
| 2019022101.png2019022102.png |
第一个字符代表这个文件是:目录、文件或链接文件等。
- 若是【d】则是目录;
- 若是【-】则是文件;
- 若是【l】则表示为连接文件;
- 若是【b】则表示设备文件里的可供存储的接口设备;
- 若是【c】则表示设备文件里的串行端口设备,如鼠标、键盘等。
后面的9个字符以3个位一组,均为rwx的组合。其中r代表可读,w代表可写,x代表可执行。注意3个权限的位置不会改变,如果没有权限,就会出现减号(-)。
- 第一组 为 “文件所有者的权限”
- 第二组 为 “用户组的权限”
- 第三组 为 “其他非本用户组的权限”
第二列表示有多少文件名连接到此节点
每个文件都会将它的权限和属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node。这个属性记录了有多少不同的文件名连接到相同的一个i-node号码。
第三列表示这个文件的“所有者账号”
第四列表示这个文件的所属的用户组
第五列为这个文件的大小,默认单位是B
第六列为这个文件的创建文件日期或者是最近的修改日期。
第7列为该文件的文件名
如果文件名之前多了一个 “.” ,则说明这个文件为“隐藏文件”,隐藏文件的list列表时,加-a参数可以显示。ls -al。
2、如何改变文件的权限和属性
- chgrp : 改变文件所属用户组
- chown : 改变文件所有者
- chmod: 改变文件的权限
2.1、改变文件所属用户组
chgrp 【-R】 dirname/filename ...
-R : 进行递归的持续更改,也连同子目录下的所有文件、目录都更新成为这个用户组之意。常常用在更改某一目录内所有文件的情况。
范例:
chgrp hy install.log : 将install.log文件的用户组改为hy用户组。注意hy用户组必须要在/etc/group 文件内存在才可以。
2.2、改变文件的所有者
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
-R:也是递归子目录。
范例:
chown bin install.log
chown root:root install.log
改变文件所有者和用户组的这两个命令的应用场景:复制文件,由于复制行为会复制执行者的属性和权限,因此复制后需要改变文件所属用户、用户组等。
2.3、改变文件的权限
文件权限有两种设置方法:数字类型改变权限和符号改变权限。
首先说明各个权限对应的数字:
- r: 4
- w: 2
- x:1
- 每种身份各自的三个权限分数是需要累加的。
- 例如:权限为(-rwxrwx---)分数分表是:
- owner = rwx = 4+ 2 + 1 = 7
- group = rwx = 4+ 2+ 1 = 7
- others = --- = 0+0 +0 = 0
- 所以在设置权限时,该文件的权限数字就是770.
1)、数字类型改变文件权限方式
命令: chmod [-R] xyz 文件或目录
xyz : 代表权限数字。如770.
-R : 进行递归的持续更改。
范例:
chmod 777 .bashrc : 将文件.bashrc这个文件的所有权限设置都启用。
2)、符号类型改变文件权限方式
使用u、g、o三个字母代表user、group、others 3中身份。此外a代表all,即所有身份。
img范例:
chmod u=rwx,go=rx .bashrc
也可以增加或去除某种权限。
chmod a+w .bashrc
chmod a-x .bashrc