在linux里,有一种思想叫一切皆文件,大致意思就是把什么都可以看做是文件。
文件的访问者分为三类:
1.u 文件和文件目录的拥有者
2.g 文件和文件目录的所有者所在的组的用户
3.o 其他用户
文件访问的基本权限有四种:
1.r 可读
2.w 可写
3.x 可执行
4.- 表示不具有该权限
那么,进入一个目录需要什么权限?
了解一点linux的人都知道,在linux下有两个用户:超级用户和普通用户。
1、在超级用户下:
首先创建一个目录(mkdir dir1)
它的默认权限是拥有者可读可写可执行,所在组可执行,其他只能执行。
然后将它的所有权限都取消了(chmod 0 dir1)
再进入时(cd dir1)
发现依然可以进入。
然后将目录dir1拥有者改为普通用户cl(chown -R cl dir1)
再进入时
依然可以进入。
综上:在超级用户下,不管目录的拥有者是超级用户还是普通用户,不管目录对拥有者是否可读可写可执行权限,都可进入目录
2、在普通用户下:
创建一个目录:
将目录的所有权限都取消
进入目录时:
进不去,显示权限不够。
将拥有者的权限改为可读
进入目录时进不去:
将拥有者权限改为可读可写
进入目录时依然进不去:
将拥有者权限改为可读可写可执行:
进入目录时就可以进入:
将拥有者权限改为可执行时:
进入目录可以进入:
综上:在普通用户下,需要对拥有者有可执行权限才能进入目录,若要读取目录中的文件列表,则要对拥有者开放读权限
问题又来了,进入目录后,显示或创建又需要什么权限?
1、在超级用户下:
进入目录后,创建文件(touch file1):
综上:在超级用户下,不管目录对拥有者是否开放权限,都可以在目录下创建文件
2、在普通用户下:
拥有者的权限为可执行时,不能创建文件
将拥有者的权限改为可读和可执行时,
创建文件时,不能创建:
将拥有者权限改为可写和可执行时,
创建文件成功,但不可显示:
将拥有者权限改为可写可读可执行时,
创建文件成功,也可以显示:
综上:在普通用户下,要在目录下创建文件,需要目录对拥有者开放写权限和可执行权限,若要读取目录下的文件列表,则要对拥有者开放读权限
第三个问题,Linux中,Access time / Modifg time / Change time分别代表什么?以及如何用touch修改时间?
Access time访问时间
Modifg time修改时间
Change time状态改动时间
touch的功能并不是用来创建新文件的,创建文件是touch命令的一个特殊情况,touch是用来修改指定的文件的访问和修改时间属性,如果指定的文件不存在,将建立一个新的空文件,并以当前的时间来设置文件的访问和修改时间。
以前有的文件file和file1,然后我touch file2
就创建出来了个新的文件夹。
再touch file1时
然后和最开始的时间不一样了,说明touch对时间进行了修改。