关于centos7的目录r w x 三属性的实验记录
这是我实验了比较久的,我总结的一些困惑都会记录在这里,这不是正规的,是作为一个Linux初学者的一个笔记总结
实验的思路:
首先一个进入root,一个是mkml账户
root创建的文档,将会保留自己的属性也就是root:root
mkml作为一个其他的用户对这个文档以及文档内的目录haha进行一个修改
这个修改将会在后面进行说明
实验分为
r w x 全部以及部分有时对(目录)操作的行为
首先,我们这里要明确,r w x三个对目录的整体概述(这里是我对资料的总结)
r 就是(read contents in directory)
拥有这个权限,说明着你可以 查看 这个目录拥有着读取的权限,不信的话,你可以ls一下它但这里要说明一下,这些是在命令行上做的,如果你用图形界面的话,你是进不去的哦,因为你要看到里面的东西首先你得双击进去,但是那是x权限的效果了,我们不讨论图形的情况,不过我以后闲着了,就去做一个来
w 就是(modify contents in directory)
这个就厉害了,这是一个很重要的权限,拥有了它,你就可以在下面加入新的目录或者文件,删除文件,当然,这里要留下些问题,这就是俺们文件夹不可能空着,肯定要往下面放东西这就是一个很复杂的了,那么我可以删掉下面不属于我的文件吗?这个权限可以决定下面存放的东西吗?我们再谈
x 就是(access directory)
这是一个比较简单的,你如果没有这个权限,那么你将进入不了这个目录,说白了,就是cd,也没有对这个文件夹进行操作的可能,比如删除
1. 目录有r w x时:
这是一个很明显的答案,单纯只是目录的话,而且没有其他限制的话那么这个的话,mkml是可以查看且下面的目录,可以进入这个目录在下面创建文件,对这个目录做任何你想做的事情
欸,这时候疑问就要出来了,那么,我在这个目录下面用root创建了一个txt那么我可以删掉这个目录吗?
[root@localhost mkml]# chmod 777 haha
这时候我为了防止因为拥有文件权限而删掉目录
[root@localhost mkml]# chmod 770 haha/hihi.txt
[mkml@localhost haha]$ ll
总用量 4
-rwxrwx---. 1 root root 8 5月 14 00:28 hihi.txt
把其他人的权限全部关掉,进行删除
[mkml@localhost ~]$ rm -rf haha/
[mkml@localhost ~]$ ll
总用量 0
drwxr-xr-x. 2 mkml mkml 6 5月 4 16:08 kiki
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 公共
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 模板
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 视频
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 图片
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 文档
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 下载
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 音乐
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 桌面
这是一个神奇的问题,我们下面再看看
2. 无r w x时:
这个更加明显一些,你不会拥有任何的权限,你除了可以看到有这个haha的目录之外,你不能对它做任何事
3. 有r 无w x:
上面说过,只有r时,你只能使用ls来查看它里面有什么,除此之外,你不能对它做任何事,但也要记住一件事,这个权限给你的东西少到可怜不信你可以运行试试
[mkml@localhost ~]$ ls -all haha
ls: 无法访问haha/.: 权限不够
ls: 无法访问haha/..: 权限不够
ls: 无法访问haha/hihi.txt: 权限不够
总用量 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
-????????? ? ? ? ? ? hihi.txt
真的只给你看名字的那种,寒碜,很寒碜
4. 有r w 无x:
这也是一个很寒碜的权限组,你不可以cd进去,也不可以删掉它
[mkml@localhost ~]$ ll
总用量 0
drwxrwxrw-. 2 root root 22 5月 14 01:06 haha
[mkml@localhost ~]$ cd haha
bash: cd: haha: 权限不够
[mkml@localhost ~]$ rm -rf haha
rm: 无法删除"haha/hihi.txt": 权限不够
[mkml@localhost ~]$ mkdir haha/kiki
mkdir: 无法创建目录"haha/kiki": 权限不够
[mkml@localhost ~]$ vim haha/kaka.txt(创建文件:一样是权限不够)
[mkml@localhost ~]$ rm -rf haha/hihi.txt
rm: 无法删除"haha/hihi.txt": 权限不够
这时候就有人要说了,你个糟老头子在上面骗俺们,这不是有w了吗?欸,这个就要说明一下了,w确实很有用,但w是在x的基础上的,怎么说呢你要对一个文件的外部内部做事情干什么都好,你首先你得对这个文件有权限吧!你可以理解为,想干活,你得cd进去,然后再rm或者mkdir,没有x就没有cd那么后续就别想了
直白一点,你现在有权利改一个大师的画,你想怎么样都行,但是大师在那幅画周围安排了一堆的保镖,苍蝇都飞不进去,你只有改画的权力,但你没有进去的权力,这样就很直白了吧。
这也变相的说明,x是作为一个把该文件作为工作区域的基础,否则,这一个权限组和上面有r无w x基本上没有什么区别
5. 有w 无r x:
emmmmmmmmmmmmmmmmmm,刚刚讲完的,没有x的话,也没有办法了
[mkml@localhost ~]$ ll
总用量 0
drwxrwx-w-. 2 root root 22 5月 14 01:06 haha
[mkml@localhost ~]$ cd haha
bash: cd: haha: 权限不够
[mkml@localhost ~]$ rm -rf haha
rm: 无法删除"haha/hihi.txt": 权限不够
[mkml@localhost ~]$ mkdir haha/kiki
mkdir: 无法创建目录"haha/kiki": 权限不够
[mkml@localhost ~]$ vim haha/kaka.txt(创建文件:权限不够)
[mkml@localhost ~]$ rm -rf haha/hihi.txt
rm: 无法删除"haha/hihi.txt": 权限不够
不过这里可以说个,这个权限组甚至没有r,你可以补全一下,甚至补全不了下面的hihi.txt
这也说明r的效用哦
6. 有w x无 r:
有人说了,这个能拿来做什么?我们现在试试
[mkml@localhost ~]$ ll
总用量 0
drwxrwx-wx. 2 root root 22 5月 14 01:06 haha
[mkml@localhost ~]$ ls -all haha/
ls: 无法打开目录haha/: 权限不够
[mkml@localhost ~]$ cd haha/ (但是我们能cd进去)
[mkml@localhost haha]$ vim kiki.txt (可以创建文件)
....
欸这个就很那个,你单纯的,进去文件能干你自己想干的事就是偶尔会不知到自己干了什么?因为我看不到我自己的文件啊啊啊当然,这个权限不是为了整人的,你想,你看不到这个文件下面有啥子哦
[root@localhost haha]# ll
总用量 4
-rw-r--r--. 1 root root 5 5月 14 01:06 hihi.txt
drwxr-xr-x. 2 root root 6 5月 14 02:01 你个憨批
[mkml@localhost ~]$ ll haha
ls: 无法打开目录haha: 权限不够
也就是说明,你可能被耍-----
当然不是,如果你想整一个文件夹,大家共放在一个文件夹下,但是又不想让互相看到其他人的文件夹你就可以试试,欸,有人要发问了我,自己都看不到自己的创建的文件,我如果忘了呢?这是个好问题如果这是共享文件夹的话,这个就是另一种问题了,当然,我们今天只讨论最基础的。
我在被告知的情况下,我创立了一个属于我的,叫pp的文件夹,然后cd进去,然后创建一个叫kiki的txt文件,然后查看
[mkml@localhost ~]$ mkdir haha/pp
[mkml@localhost haha]$ cd pp
[mkml@localhost pp]$ ll
总用量 0
[mkml@localhost pp]$ nano kiki.txt
[mkml@localhost pp]$ ll
总用量 4
-rw-rw-r--. 1 mkml mkml 7 5月 14 02:12 kiki.txt
没错,就是你看到的这个效果,我可以进入我的文件夹,而且,可以查看我自己的文件夹里面的内容
[mkml@localhost haha]$ chmod 777 pp
因为我拥有w的权限,因此我也可以修改我文件的属性啥的
[root@localhost haha]# ll
总用量 4
-rw-r--r--. 1 root root 5 5月 14 01:06 hihi.txt
drwxrwxrwx. 2 mkml mkml 22 5月 14 02:12 pp
但是这样真的安全吗?
7. 有x 无r w:
[mkml@localhost ~]$ ll
总用量 0
drwxrwx--x. 2 root root 6 5月 14 02:32 haha
[mkml@localhost ~]$ cd haha
[mkml@localhost haha]$ ll
ls: 无法打开目录.: 权限不够
[mkml@localhost haha]$ mkdir kiki
mkdir: 无法创建目录"kiki": 权限不够
[mkml@localhost haha]$ nano kiki.txt(权限不够)
欸,你有没有想到什么,没错,上面不是说了吗?有w x无 r虽然可以让人在下面创建目录,但是也可以修改自己目录的权限,只要获得了另一个文件夹主人的权限同意,外加名字,那么即使看不到,也可以跳到别人的文件夹拿走资料,那这样的话,我只给它一个x权限,那它是不是只能进入,也就改不了权限了,不是吗?我刚开始实验时也兴奋了,但是事实是,只要属主是你的,你就拥有这个文件的权限,比如下面的情况
[root@localhost haha]# ll
总用量 0
drwxrwx---. 2 mkml mkml 6 5月 14 02:42 mkml
[mkml@localhost haha]$ chmod 777 mkml
[root@localhost haha]# ll
总用量 0
drwxrwxrwx. 2 mkml mkml 6 5月 14 02:42 mkml
事实证明,w的效用是目录,就是你对下面的文件或者目录可以干什么,比如现在,虽然你可以改权限,但你并不具备删掉这个文件夹的权限
[mkml@localhost haha]$ rm -rf mkml
rm: 无法删除"mkml": 权限不够
恶人自有恶人磨,Linux的恶人就是root用户了,刚刚说过了吧,属主只要是你,你就可以改权限,那么我们就把属主改成root用户,看看情况:
[root@localhost haha]# ll
总用量 0
drwxrwxrwx. 2 root root 6 5月 14 02:42 mkml
[mkml@localhost haha]$ chmod 777 mkml
chmod: 更改"mkml" 的权限: 不允许的操作
跳,你接着跳。
这其实是从x权限引出来的一个思考,也就是跑题,但也要记住,文件除了权限,还有一个属主和属组的概念这也是决定一个文件的关键,以后我们会谈到而且要记住,是root用户作为属主,因为,如果是其他用户作为属主的话,还是会被拥有w权限的用户删掉的
8. 有x r 无w:
写到这里,基本上能绕明白的兄弟已经绕明白了,可以进,可以读,但是不能写,其实这个是一个我觉得挺标准的共享文件夹的,这一个的话,和上面的没有区别了,但是多了一个可以ls
好啦,写到这里基本上废了我这个不太聪明的脑袋半个脑水了,再说一说之前的一个问题。一个目录下面,如果有不属于自己的东西,我要拥有怎么样的权限才能删掉这个目录呢按照思路来说,我只要能进去,然后删掉下面的东西就行了那就是拥有wx权限就行了吧的确是这样,下去一层删完后再回到最高层删就行了,但是,不可以一口气删,也就是下面的情况
[root@localhost mkml]# ll
总用量 0
drwxrwx-wx. 3 root root 18 5月 14 03:32 haha
[root@localhost mkml]# ls -all haha/
总用量 4
drwxrwx-wx. 3 root root 18 5月 14 03:32 .
drwx------. 18 mkml mkml 4096 5月 14 03:32 ..
drwxr-xr-x. 2 root root 6 5月 14 03:32 hihi
[mkml@localhost ~]$ rm -rf haha
rm: 无法删除"haha": 权限不够
成功:
[mkml@localhost ~]$ cd haha
[mkml@localhost haha]$ rm -rf hihi
[mkml@localhost haha]$ cd
[mkml@localhost ~]$ rm -rf haha
[mkml@localhost ~]$ ll
总用量 0
drwxr-xr-x. 2 mkml mkml 6 5月 4 16:08 kiki
drwxr-xr-x. 2 root root 6 5月 14 03:16 mkml
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 公共
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 模板
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 视频
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 图片
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 文档
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 下载
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 音乐
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 桌面
这是啥情况不知道,但是在拥有这两个权限之后可以一层层删或者:
[root@localhost mkml]# chmod 777 haha
在拥有全权限情况下,可以直接删掉
[mkml@localhost ~]$ rm -rf haha
[mkml@localhost ~]$ ll
总用量 0
drwxr-xr-x. 2 mkml mkml 6 5月 4 16:08 kiki
drwxr-xr-x. 2 root root 6 5月 14 03:16 mkml
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 公共
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 模板
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 视频
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 图片
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 文档
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 下载
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 音乐
drwxr-xr-x. 2 mkml mkml 6 4月 28 17:08 桌面
好了,已经结束了,这个笔记我拖了好久,也在今天这个生日,把生日前留下来的东西全部干完,好好犒劳下自己,通个宵做个笔记。
这篇笔记肯定是错漏百出,望dalao们包容,这是个初学者自己整理和思考的笔记,发上来,与各位学Linux的伙伴们共勉