Linux权限问题以及Stat命令中的Access、Modify、Change

来源:互联网 发布:铝合金门窗设计软件 编辑:程序博客网 时间:2024/06/05 20:42

Linux下用户分成三类:文件的拥有者 、文件的所属组、 其他


创建一个HHH的目录

1、使用chmod 400 HHH命令将HHH的权限修改成为只读的



如果我们想要列出这个目录下的所有内容,首先得进入这个目录,再采用ls的指令,但是仅凭只读权限是进入不了的,因此再增加这个目录的权限,使用chmod  500 HHH 命令将HHH的权限修改成可读可执行的



此时再使用cd命令进入这个目录再使用ls命令即可以列出目录下的内容



如果此时我们向往这个目录里创建一个.c的文件(相当于往目录里面些内容)就会出现如下错误



2、使用chmod  200 HHH 将HHH目录的权限修改成只读的



同理我们需要往这个目录里面写东西,但首先我们得进入这个目录,同上我们需要加上可执行这个权限因此使用chmod 300 HHH命令


此时我们往目录里面写入了ss.c这个文件但此时这个目录是不可读的,因此无法使用ls命令


3、使用chmod 100 HHH将目录权限修改称为可执行的


此时我们只能进入这个目录,而不能对它进行读或者写的操作


总结:关于目录有三种权限:r - -可读权限,可以列出目录下的内容(但如果要列出目录下的内容必须要能进入这个目录所需要的权限为 r-x)


                          -w-可写权限,可以往目录里些内容(但是如果如果往目录里面些内容,那么这个目录的权限至少是-wx,首先得进入这个目录)


                          - -x可执行的权限,可以进入一个目录(但是不能读或者写)

因此如果用户要进入一个目录,那么权限至少--x

因此用户如果想在该目录下创建一个文件,并在该目录里显示这个文件至少需要 rwx的权限


但上述权限是针对普通用户的,如果我们将用户切换成超级用户,那么超级用户是凌驾于权限之上的,可以任意写、读、进入

如下:


关于文件的三种权限: r- - 可读权限列出文件的文本內容

                     - w-该文件是可写,修改的

                     - -x该文件是可以执行的

不仅可以使用chmod 修改权限,也可以使用umask修改权限。

普通文件创建的权限最多为666

在umask为0022下,创建一个文件的权限为6 4 4



在umask为0002下,创建一个文件的权限则为

umask是起着屏蔽权限的作用的,0022则屏蔽了所属组和其他的写权限,普通文件本身没有有可执行权限因此不需要屏蔽。

                             0002则屏蔽了其他的写权限

                                                          

chown 命令则可以修改文件的拥有者

chgrp 命令则可以修改文件袋的所属组    

       

关于查看时间的命令:

我们可以使用 date - -help去查看关于时间的命令

使用 date +%Y:%m:%d:%H:%M:%S可以控制输出时间的格式


时间戳:

时间->时间戳  data +%s

时间戳到时间:date +%Y:%m:%d -d@+1490063575


关于对stat命令中Access Modify Change 命令的认识

首先创建一个a.c的文件

stat命令主要用来显示文件或者文件系统的详细信息

使用stat a.c的命令可以详细的显示a.c这个文件的详细信息


File:表示文件名

Size :表示文件的大小

Blocks:这个文件占用的块设备的大小(块的单位为512个字节)

IO Black:表示文件系统块的默认大小是4096个字节

regular empty file:表示此时是个空文件

Device :表示存放文件的设备

Inode:Inode和文件一一对应,表示文件的编号

Links:1 只有这个文件名用了这个Inode.如果有两个文件名用了这个Inode,这里的数字将是2,例如一个硬链接。

接下来重点剖析与文件相关的三个时间

Access:代表最近一次访问这个文件的时间


通过上述图可以看出,如果我们访问了这个文件,那么对应的只有Acess的时间发生了改变

Modify:当更改了一个文件的内容的时候,此文件的modify的时间记录会被更新。用ls -l看到的文件时间是最近一次modify的时间。modify的行为是三个行为中最有影响力的行为,它发生以后,会使文件的access记录与change记录也同时得到更新。对于目录也是。


此时如果我们使用ls -l 查看会发现a.c的时间是最近一次modify的时间

Change:文件属性最后一次被修改的时间(当然如果使用了modify那么Change所代表的时间也会随之修改,但如果是修改了文件的属性例如chmod ,chown ,chgrp...那么只会修改Change的时间。


总结关于Stat命令中的Access Modify Change 所代表的文件时间:

Acess只要文件被访问了,那么Access 所代表的时间立刻会随之修改

Modify:只要文件的内容被修改了,不仅Modify所代表的时间会随之修改,Access也会随之修改(因为你修改内容必然会访问这个文件),Change所代表的时间也一定会修改(是不是因为内容被修改也算属性被修改的一种,这点我不确定,如果有知道的求教)

Change:修改文件的属性并不会去访问这个文件,也不会修改文件的文本内容,因此属性修改只会改变Change所代表的时间



                

1 0
原创粉丝点击