权限:r w x 超详细分析(一)
导读:由于最近作者和朋友讨论rwx权限时,存在一些分歧,故做出本次测试,供大家参考。
零、测试前的准备:
首先新建测试用户 tester,新建测试目录 powertest,并设 other 权限为 r
/powertest/目录结构如下
一、首先我们来测试 r 权限:
1.r权限对于目录的意义:
拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意:仅仅指的是名字。
我们可以看到tester对/powertest/dir_r/目录只有r权限,
我们发现,当tester对/powertest/dir_r/目录只有r权限时,tester只能ls(不能执行tree)读取/powertest/dir_r/下目录和文件的名字,并不能查看内容和执行增删改操作(包括:cd、touch、mkdir、rm、mv、cp、tar等)。
通过测试我们发现:当用户对目录只有r权限时,用户只能查看该目录下文件和子目录的名字,对应的操作为:ls。
2.r权限对于文件的意义:
用于此权限表示可以读取此文件的实际内容
可以看到tester对/powertest/file_r文件只有r权限
可以cat,more
使用vi/vim查看编辑 并wq保存退出
但是发现只拥有r权限的tester虽然不能编辑/powertest/file_r文件,但是却可以删除它
这是因为,tester对/powertest/file_r的上层目录,即/powertest有rwx权限,所以它可以对/powertest/下的file_r进行删除。同样tester可以对/powertest/下的任何文件目录进行touch,rm,mv(改名字,移动即删除,)等操作,这个我们稍后再说。
但是我发现mv不能向/powertest中拷贝东西,原因还不清楚;
即:当用户对文件只有r权限时,用户只能查看该文件内容。相应的操作为:cat,more,vi/vim(只能查看,编辑后保存不了)。
问题一:
此处不得不提的还有一点:如果使用vi/vim时用 x!/wq! 保存竟然可以实现编辑!
具体情况如下:
首先,tester对/powertest/file_r文件是other且权限是r,时间是09:47.
当我们使用vi/vim编辑内容后,wq保存退出,此时弹出警告,提示为只读文件,我们q!退出。
再次vim进入查看,发现/powertest/file_r文件的内容并没有改变,且左下角依然提示为只读文件
ll查看发现并没有变化
接下来,我们vi/vim 编辑后使用 x! 保存退出
编辑时,一直提示为只读文件,
使用 x! 保存退出后,我们在vi/vim看一下
此时,文件已被修改; 并且,当我们再次查看/powertest/file_r文件权限时,发现:
/powertest/file_r文件的属主和属组已经被修改了,以前是root而现在是tester。
对于这个现象,我只想说surprise mother fucker????!!!!
查阅vi/vim官方文档后,我有点明白了!
http://vimdoc.sourceforge.net/htmldoc/editing.html#:w!
:w[rite]! [++opt] Like “:write”, but forcefully write when ‘readonly’ is
set or there is another reason why writing was
refused.
Note: This may change the permission and ownership of
the file and break (symbolic) links. Add the ‘W’ flag
to ‘cpoptions’ to avoid this.
:写]! [++ opt]喜欢“:write”,但在’readonly’时强行写入
设置或写作的另一个原因是
拒绝了。
注意:这可能会更改权限和所有权
文件和中断(符号)链接。
添加’W’标志
'cpoptions’以避免这种情况。
所以在接下来的测试中,我们在vi/vim编辑时不使用wq!/x!强制保存退出!
二、接着我们来测试 w 权限
1.w权限对于目录的意义:
拥有此权限表示具有更改该目录结构列表的权限,总之,目录的w权限与该目录下的文件名或子目录名的变动有关,注意:指的是名字。具体如下:
我们可以看到tester对/powertest/dir_w/目录只有w权限。
我们看一下/powertest/dir_w/目录下有什么
测试
通过操作我们发现:如果用户对目录只有w权限,那么,该用户不能执行任何操作。
此时,对目录而言我们对w权限的测试进行不下去了,所以我们先暂时放弃,而去测试w对文件的权限。
2.w权限对于文件的意义:
拥有此权限表示可以编辑、添加或者是修改该文件的内容。但是不包含删除该文件,因为由上面权限对于目录的意义得知删除文件或目录的条件是什么。
首先,我们看到tester对/powertest/file_w文件只有w权限
通过操作发现,当tester对/powertest/file_w文件只有w权限时,cat,more,vi/vim都不可以。
但是我们发现,可以通过echo及重定向对文件进行编辑;我们来用root来查看一下
即:当用户对文件只有w权限时,用户只能通过 echo+重定向 对文件进行编辑;
但不能查看文件内容,如:cat,more,vi/vim(查看),通过上面r权限的测试,我们知道对文件内容进行读取是r权限所对应的操作。
此时还要提到的是:vi/vim编辑后,用x!或wq!保存后,属主,属组仍会改变
三、现在测试一下 rw 权限
1.rw权限对于目录的意义:
通过操作我们发现:当用户对目录只有r权限时,用户只能查看该目录下文件和子目录的名字。
通过操作我们发现:如果tester对/powertest/dir_w/目录只有w权限,那么,tester不能执行任何操作。
首先tester对/powertest/dir_rw/目录只具有rw权限
我们发现可以ls查看dir_rw目录结构
但是其它的操作都不行
即:当用户对目录只拥有rw权限时,用户只能ls查看目录结构。
2.rw权限对于文件的意义:
即:当用户对文件只有r权限时,用户只能查看该文件,即:cat,more,vi/vim(只能查看,编辑后保存不了)。
即:当用户对文件只有w权限时,用户只能通过 echo+重定向 对文件进行编辑;
tester对/powertest/file_rw文件只有rw权限
tester可以查看文件内容
vi/vim/编辑后,使用wq保存退出
Cat查看后发现/powertest/file_rw文件内容发生变化
即:用户拥有rw权限可以对文件内容进行查看,修改,对应的操作为:cat,more,vi/vim。
四、现在我们来测试 x 权限
1.x权限权限对于目录的意义:
拥有目录的x权限表示用户可以进入该目录成为工作目录,能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。
测试:
通过测试我们发现:当用户对一个目录只有x权限时,该用户只能可以进入该目录,对应的操作为cd。
且如果用户对于某目录不具有x权限,则该用户不能查询该目录下的文件的内容,注意:指的是内容,如果有r 权限是可以查看该目录下的文件名列表或子目录列表的。所以要开放目录给任何人浏览时,应该至少要给与r及x权限。
2.x权限对于文件的意义:
表示该文件具有可以被系统执行的权限。文件是否能被执行就是由该权限来决定的,跟文件名没有绝对的关系。
首先,我们看到,tester对/powertest/file_x文件只具有x权限
即:当用户对文件只具有x权限时,不能进行任何操作
至此我们测试了用户分别拥有:r、w、rw、x权限的情况:
R:
通过测试我们发现:当用户对目录只有r权限时,该用户只能查看该目录下文件和子目录的名 字,对应的操作为:ls。
即:当用户对文件只有r权限时,用户只能查看该文件内容。相应的操作为:cat,more,vi/vim(只能查看,编辑后保存不了)。
W:
通过操作我们发现:如果用户对目录只有w权限,该用户不能执行任何操作。
即:当用户对文件只有w权限时,用户只能通过 echo+重定向 对文件进行编辑;
RW:
通过操作我们发现:当用户对目录只拥有rw权限时,用户只能ls查看目录结构。
即:用户拥有rw权限可以对文件内容进行查看,修改,对应的操作为:cat,more,vi/vim。
X:
通过测试我们发现:当用户对一个目录只有x权限时,该用户只能可以进入该目录,对应的操作为cd。
即:当用户对文件只具有x权限时,不能对该文件进行任何操作。
五、现在我们来分别测试:rx、wx
1.rx
rx权限对目录的意义:
首先,tester对/powertest/dir_rx/目录仅有rx权限
通过测试我们发现:当用户对目录仅具有rx权限时,该用户可以进入该目录并查看目录结构(cd,ls,tree),但是并不能改变目录结构(不能touch,mkdir,rm等)
rx权限对文件的意义:
首先,tester对/powertest/file_rx文件仅具有rx权限
可以查看文件内容
vi/vim只能查看,不能编辑后wq不能保存退出
echo+重定向不能编辑
可以执行文件
即:当用户对文件仅具有rx权限时,该用户只能查看(cat,more)该文件内容,若该文件为可执行文件也可以执行。并不能编辑修改文件内容
2.wx
WX权限对目录的意义:
首先,tester对/powertest/dir_wx/目录仅有wx权限
通过测试我们发现:当用户对目录仅具有wx权限时,该用户可以进入(cd)该目录并改变目录结构,包括1.在该目录下新建(touch、mkdir)文件或子目录;2.删除(rm)该目录下已经存在的文件或子目录;3.将该目录下已经存在的文件或子目录进行重命名(mv);4.转移(cp、mv)该目录内的文件或子目录的位置。但不能查看(tree、ls)该目录结构。
WX权限对文件的意义:
首先,tester对/powertest/file_wx文件仅有wx权限
vi/vim显示权限不够
Sh不能执行
即:当用户对文件仅具有wx权限时,该用户只能通过echo+重定向编辑该文件内容,若该文件为可执行文件也可以执行。
六、最后我们来测试:rwx
1.rwx权限对于目录的意义:
首先tester对/powertester/dir_rwx/目录有rwx权限
发现在使用mv命令移动目录时操作不被允许,这里的问题是对操作目录没有w权限
2.rwx权限对于文件的意义:
如果用户拥有了文件的rwx权限,那么当然可以查看,编辑,修改,保存文件内容,也可以执行文件。
这里要补充的一点是:对一个文件或目录能否用mv命令重命名或移动,取决于用户对该文件或目录的上层是否有w权限!
即:当用户拥有rwx权限时,所有操作都可以
七、总结
R:
通过测试我们发现:当用户对目录只有r权限时,该用户只能查看该目录下文件和子目录的名字,对应的操作为:ls。
即:当用户对文件只有r权限时,用户只能查看该文件内容。相应的操作为:cat,more,vi/vim(只能查看,编辑后保存不了)。
W:
通过操作我们发现:如果用户对目录只有w权限,该用户不能执行任何操作。
即:当用户对文件只有w权限时,用户只能通过 echo+重定向 对文件进行编辑;
RW:
通过操作我们发现:当用户对目录只拥有rw权限时,用户只能ls查看目录结构。
即:用户拥有rw权限可以对文件内容进行查看,修改,对应的操作为:cat,more,vi/vim。
X:
通过测试我们发现:当用户对一个目录只有x权限时,该用户只能可以进入该目录,对应的操作为cd。
即:当用户对文件只具有x权限时,不能对该文件进行任何操作。
RX:
通过测试我们发现:当用户对目录仅具有rx权限时,该用户可以进入该目录并查看目录结构(cd,ls,tree),但是并不能改变目录结构(不能touch,mkdir,rm等)
即:当用户对文件仅具有rx权限时,该用户只能查看(cat,more)该文件内容,若该文件为可执行文件也可以执行。并不能编辑修改文件内容
WX:
通过测试我们发现:当用户对目录仅具有wx权限时,该用户可以进入(cd)该目录并改变目录结构,包括:
1.在该目录下新建(touch、mkdir)文件或子目录;
2.删除(rm)该目录下已经存在的文件或子目录;
3.将该目录下已经存在的文件或子目录进行重命名(mv);
4.转移(cp、mv)该目录内的文件或子目录的位置。但不能查看(tree、ls)该目录结构。
即:当用户对文件仅具有wx权限时,该用户只能通过echo+重定向编辑该文件内容,
若该文件为可执行文件也可以执行。
RWX:几乎所有操作都可以
Linux中权限(r、w、x)对于目录与文件的意义
一、权限对于目录的意义
1、首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方。
2、r权限:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意:仅仅指的是名字。
3、w权限:拥有此权限表示具有更改该目录结构列表的权限,总之,目录的w权限与该目录下的文件名或子目录名的变动有关,注意:指的是名字。具体如下:
1)在该目录下新建新的文件或子目录。
2)删除该目录下已经存在的文件或子目录(不论该文件或子目录的权限如何),注意:这点很重要,用户能否删除一个文件或目录,看的是该用户是否具有该文件或目录所在的目录的w权限。
3)将该目录下已经存在的文件或子目录进行重命名。
4)转移该目录内的文件或子目录的位置。
4、x权限:拥有目录的x权限表示用户可以进入该目录成为工作目录,能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。且如果用户对于某目录不具有x权限,则该用户不能查询该目录下的文件的内容,注意:指的是内容,如果有r 权限是可以查看该目录下的文件名列表或子目录列表的。所以要开放目录给任何人浏览时,应该至少要给与r及x权限。
二、权限对于文件的意义
1、也应该明白的是文件是实际含有数据的地方,所以r、w、x权限对文件来说是与其内容有关的。
2、r权限:用于此权限表示可以读取此文件的实际内容。
3、w权限:拥有此权限表示可以编辑、添加或者是修改该文件的内容。但是不包含删除该文件,因为由上面权限对于目录的意义得知删除文件或目录的条件是什么。
4、x权限:表示该文件具有可以被系统执行的权限。文件是否能被执行就是由该权限来决定的,跟文件名没有绝对的关系。
Operation not permitted 操作不许可
Permission denied 没有权限
后记:由于作者水平有限,本次测试中可能存在一些问题,希望大家批评指正感激不尽!