本文引自:http://blog.sina.com.cn/s/blog_68e835ad0100nec6.html
最近阅读《鸟哥的linux私房菜》,确实是一本好书,使自己在文件属性和权限方面有了较深的理解,总结如下。
(注:本篇文章的图片来自于《鸟哥的linux私房菜》一书)
一、提纲
本篇文章主要包含以下几个部分:
1.
2.
3.
4.
二、用户和用户组
主要体现在两个方面:
1.
三种: 读、写、执行。
2.
三种: owner/group/other。
读、写、执行的操作权限比较容易理解,主要是文件的访问方式。它们的含义如下:
-
拥有者 owner
也就是文件的所有者,通常是建立文件的用户。在linux系统中,每个文件都有一个所有者。每一个用户都会被分配唯一的uid。
-
用户组
一个用户组包含若干用户。值得注意的是:一个用户也可以属于多个用户组,也可以不属于任何用户组。每一个用户组都会被分配唯一的gid。
-
其他人
另外:在linux系统中,
三、
在命令行里执行命令"ls -al ",我们会看到一个详细的列表,列表的每一行的形式为:
- -rwxr-xr-x
1 root root 7 04-21 12:47 test.txt -
① ② ③ ④ ⑤ ⑥ ⑦
其中各个部分的含义如下图:
1.
-
第一个属性,表示这个文件的类型,常见的有:文件、目录或连接文件等。
"
" - ":
"
-
后九个属性中,每三个位一组,"r"表示可读(read)、"w"表示可写(write)、"x"表示可执行(excute)。
第一组为“拥有者owner的权限”;
第二组为“同用户组的权限”;
第三组为“其他人的权限”;
综合这两点:上面图中的的10个属性含义为:是一个文件,这个文件的“拥有者”可读、可写、可执行,“同用户组的人”也是可读、可写、可执行,但是“其他人”没有任何权限。
2.
3.
4.
5.
6.
补充:linux系统“文件时间”主要包括三个内容:
修改时间(modification time,简称mtime):当前文件“内容数据”更改时,这个属性被更新。使用ls命令显示的时间就是“修改时间mtime ”。
状态时间(status time,简称ctime):当文件状态(status)改变时,这个属性被更新。例如:更新文件的权限和属性时。
访问时间(access time, 简称atime):当读取文件内容时,这个属性被更新。
注意:如果只是更改文件的内容,“状态时间ctime”会改变,但是“修改时间mtime”是不会改变,因为文件的内容数据并没有变化。
7.
四、
在linux中,目录也属于文件。针对目录文件,r/w/x 的含义与一般文件略有不同。
-
r
(read contentsin directory):拥有这个权限,就能够读取目录结构,也就是可以使用ls命令将目录内容列出来。 -
w
(modify contents ofdirectory):拥有这个权限,可以更改目录结构。常见的操作为:
--- 建立新的文件和目录;
--- 删除文件和目录;
--- 重命名文件和目录;
--- 移动文件和目录;
-
x
(accessdirectory):决定这能否进入目录。如果使用的账户对某个目录没有x权限,那么使用cd命令的时候,就无法进入目录。
在《鸟哥的linux私房菜》书中,提供了很好的例子,截图如下:
常用的参数有
-
命令格式: -
ls [-aAdfFhilnrRSt] 目录名称 - -a
:全部的档案,连同隐藏文件( 开头为 . 的档案) 一起列出来; - -A
:全部的档案,连同隐藏文件,但不包括 . 与 .. 这两个目录; - -d
:仅列出目录本身,而不是列出目录内的文件数据; - -f
:直接列出结果,而不进行排序 (ls 预设会以文件名排序!); - -F
:根据档案、目录等信息,给予附加数据结构,例如: -
*:代表可执行文件; /:代表目录; - -l
:长数据串行出,包含档案的属性与权限等等数据; - -n
:列出 UID 与 GID 而非使用者与群组的名称; - -R
:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来; - -S
:按照文件容量大小排序,而不是用文件名称排序; - -t
:按照时间排序,而不是用文件名。
另外:在很多linux版本中,由于"ls-l"非常常用,所以常常可以简写为"ll"(两个字幕L的小写形式)。
结束语:至此第一篇文章终于写成,如有错误,请一定指出。