一 权限
Linux中的用户按级别分为普通用户和超级用户。所谓权限是针对普通用户而言的。
文件的权限有: 读(r) 写(w) 可执行(x) 无(-)
用户分成三类:文件的拥有者 、文件的所属组、 其他。⽤用户符号: u:拥有者 g:拥有者同组⽤用户
o:其它⽤用户 a:
所有⽤用户在文件的属性中第一个字母是类型。其余九个为权限,三三一组,分别对u g o。
权限的改变:chmod
二 目录
1、使用chmod 400 code命令将目录的权限修改成为只读的
dr--------. 4 ljw ljw 4096 Mar 20 20:31 code
如果我们想要列出这个目录下的所有内容,首先得进入这个目录,再采用ls的指令,但是仅凭只读权限是进入不
了的,因此再增加这个目录的权限,使用chmod 500 code命令将HHH的权限修改成可读可执行的
dr-x------. 4 ljw ljw 4096 Mar 20 20:31 code
此时再使用cd命令进入这个目录再使用ll命令即可以列出目录下的内容
[ljw@localhost code]$ ll
total 0
如果此时我们向往这个目录里创建一个.c的文件(相当于往目录里面些内容)就会出现如下错误
[ljw@localhost code]$ touch 1.c
touch: cannot touch `1.c': Permission denied
2、返回上级目录,使用chmod 200 code将code目录的权限修改成只读的
d-w-------. 4 ljw ljw 4096 Mar 20 20:31 code
同理我们需要往这个目录里面写东西,但首先我们得进入这个目录,同上我们需要加上可执行这个权限因此使用
chmod 300 code命令
[ljw@localhost ~]$ cd code
[ljw@localhost code]$ touch 11.c
[ljw@localhost code]$ ls
ls: cannot open directory .: Permission denied
此时我们往目录里面写入了ss.c这个文件但此时这个目录是不可读的,因此无法使用ls命令
3、使用chmod 100 code将目录权限修改称为可执行的
此时我们只能进入这个目录,而不能对它进行读或者写的操作
总结:关于目录有三种权限: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@+149006315(获取之前时间)
关于对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
所代表的时间