第六章:linux的文件权限与目录配置
文件所有者;用户组;
ls是list的意思,重点在于显示文件的文件名和相关属性。参数-al表示列出所有的文件详细的权限与属性,包含隐藏文件(文件名第一个字符为‘.’)。
第一列表示这个文件的权限与类型,包含十个字符;
第一个字符代表这个文件是“目录、文件或链接文件等”;若是d则是目录;若是-则是文件;若是l则表示是链接文件;若是b则表示设备文件里面的可供存储的接口设备;若是c则表示设备文件里面的串行端口设备,如键盘鼠标等;
接下来的字符里以三个为组:均为“rwx”三个参数的组合。其中r表示可读,w代表可写,x表示可执行。这三个权限不会改变,若没有权限就会出现-;
第一组为文件所有者的权限;第二组为同用户组的权限;第三组为其它非本用户组的权限;
第二列表示有多少文件名连接到此节点;
第三列表示这个文件(或目录)的所有者账号;
第四列表示这个文件的所属用户组;
第五列为这个文件的容量大小,默认单位是B,字节。
第六列为这个文件的创建文件日期或者是最近的修改日期;若修改时间过长,只会显示年份,要显示完整时间格式可用ls -al --time-style=full-iso;
第七列为文件名;
改变文件属性与权限;chgrp:改变文件所述用户组;chown:改变文件所有者;chmod:改变文件的权限;
chown如果连目录下的所有子目录或文件都同时更改文件所有者的话,直接加上-R的参数即可。
chmod用数字类型改变文件权限,各权限的分数如下:r4w2x1;每种身份的分数为三种权限分数相加;例如-rwxr-xr的分数为664;执行chmod 664 filename更改权限;
第二种改权限方法,符号类型改变文件权限:有三种身份:user,group,others,通过u,g,o代表着三种身份的权限,另外a代表全部的身份;读写的权限就可以写成r,w,x;可通过下面方法更改:chmod u=rwx,go=rx filename/chmod a+w filename/chmod a-x filename;
文件的权限,文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件等。xwr的意义有:
r,可读取此文件的实际内容;
w,可以编辑、新增或者是修改该文件的内容;
x,该文件具有可以被系统执行的权限,在linux中文件是否可执行由是否有x的权限决定,而不是由后缀决定;
目录的权限,目录主要的内容是记录文件名列表,文件名与目录有强烈的关联;针对目录,xwr的意义为:
r,表示具有读取目录结构列表的权限,当具有权限时表示可以查询该目录下的文件名数据,可以用ls将其目录下的内容列表显示出来;
w,表示具有更改该目录结构列表的权限,也就是:新建新的文件或目录;删除已经存在的文件与目录(不论权限如何);将已存在的文件或目录进行重命名;转移该目录内的文件、目录位置;w权限不能随便给;
x代表用户能否进入该目录成为工作目录,工作目录就是当前所在的目录。只有x权限可以进入该目录,r只是可读而已,进不了;
linux文件种类与扩展名:文件种类包括普通文件、纯文本文件、二进制文件、数据格式文件;目录d、链接文件l、设备与设备文件通常集中在/dev(分为块设备文件和字符设备文件,前者为硬盘等,后者为就键盘鼠标等)、套接字、管道;
扩展名:基本上linux没有扩展名的概念,一个文件能否执行只与权限有关,与文件名没有一点关系;虽然如此,通常也用扩展名来了解文件是什么种类;
单一文件或目录最大容许文件名长度为255个字符;包含完整路径名称及目录的完整文件名为4096个字符;
FHS:linux目录配置标准,其目的主要是希望让用户可以了解到已安装软件通常放置于那个目录下;
重点回顾:
linux的每个文件中,依据权限分为用户、用户组与其他人三种身份;
用户组最有用的功能之一,就是当你在团队开发资源的时候,且每个账号都可以有多个用户组的支持;
利用ls –l显示的文件属性中,第一个字段是文件的权限,共有10位,第一位是文件类型,接下来三个为一组,为用户、用户组其他人的权限,权限有r,w,x三种;
如果文件名之前多一个.,则代表这个文件是隐藏文件;
更改文件的用户组支持可用chgrp,修改文件的所有者可用chown,修改文件的权限可用chmod;
chmod修改权限的方法有两种,分别是符号法与数字法,数字法中r,w,x的分数为4,2,1;
对文件来讲,权限的效能为:r:可读取此文件的实际内容;w:可以编辑、新增或者是修改该文件的内容,不含删除该文件;x:该文件具有可以被系统执行的权限;
对目录来说,权限的职能为:r:读取该目录的内容;w:编辑该目录的内容;x:进入该目录;
要开放目录给所有人浏览时,应该至少也要给与r及x的权限,但w权限不可随便给予;
有五个目录不可与根目录放在不同的分区,分别为/etc,/bin,/lib,/dev,/sbin;