Linux文件属性
在以root身份登录Linux之后,执行“ls -al”,会看到以下内容:
- 第一列代表这个文件的类型与权限
其中第一个字符代表这个文件是“目录、文件或链接文件等等”。
若是【d】则是目录
若是【-】则是文件
...
接下来的字符中,以3个为一组,且均为“rwx”的三个参数组合。其中【r】代表可读,【w】代表可写,【x】代表可执行,如果没有权限,就会出现减号【-】。
第一组,也就是2到4位字符表示“文件所有者的权限”,以上图为例,2到4位为【rwx】,该文件所有者可以读、写、执行。
第二组,也就是5到7位字符表示“同用户组的权限”。
第三组,也就是8到10位字符表示“其他非本用户组的权限”
第二列表示有多少文件名连接到此节点
第三列表示这个文件(或目录)的“所有者账号”
第四列表示这个文件的所属用户组
第五列为这个文件的容量大小,默认单位为B
第六列为这个文件的创建文件日期或者是最近的修改日期
第七列为该文件名
如何改变文件属性与权限
chgrp:改变文件所属用户组
chown:改变文件所有者
chmod:改变文件的权限
- 改变所属用户组:chgrp
chgrp [用户组] [文件名]
- 改变文件所有者:chown
chown可以顺便修改用户组的名称,如果要连目录下的所有子目录和文件都同时更改文件所有者的话,直接加上【-R】参数即可。
chown [-R] [账号名称]:[用户组] [文件名]
- 改变文件的权限:chmod
权限的设置方法有两种,分别可以使用数字或者是符号来进行权限的更改。
数字类型改变文件权限
前面提到,文件的权限字符为“-rwxrwxrwx”,这九个权限是三个三个一组的,我们可以使用数字来代表各个权限。
r:4
w:2
x:1
每种身份各自的三个权限(r、w、x)数值是需要累加的,例如当权限为“-rwxrw----”,分数则是:
- owner = rwx = 4 + 2 + 1 = 7
- group = rw- = 4 + 2 + 0 = 6
- others = --- = 0 + 0 + 0 = 0
所以当我们需要设置权限更改时,该文件的权限数字为760。
chmod [-R] [权限数字] [文件或目录]
符号类型改变文件权限
我们通过u,g,o来代表user,group,others三种身份的权限。此外a代表all,即全部身份。
读写执行的权限可以写成r,w,x。
操作有+(添加),-(删除),=(设置)。
例如:
设置权限为“-rwxrw----” : chmod u=rwx,g=rw [文件名]
增加group的写和执行权限 : chmod g+wx [文件名]
删除所有人的执行权限 : chmod a-x [文件名]
目录与文件权限的意义
权限对文件的重要性
r:可读取文件的实际内容,如读取文本文件的文字内容等。
w:可以编辑、新增或者是修改文件的内容(但不含删除文件)。
x:该文件具有可以被系统执行的权限。
权限对目录的重要性
目录主要的内容是记录文件名列表,文件名与目录有强烈的关联。
r:表示具有读取目录结构列表的权限,所以当你具有读取一个目录的权限时,表示你可以查询该目录下的文件名数据,所以你就可以利用ls命令将该目录的内容列表显示出来。
w:表示你具有该目录结构列表的权限,包括:
新建文件和目录;
删除已经存在的文件和目录;
重命名已存在的文件或目录;
转移该目录内的文件、目录位置;
x:代表用户能否进入该目录成为工作目录。例如,当你登录Linux时,你所在的主文件夹就是你当下的工作目录,而变换目录的命令是cd。
要开放目录给任何人浏览时,应该至少要给予r及x的权限,但w权限不可随便给。