繁体   English   中英

在Linux中更改权限为0666的文件的所有权失败

[英]Failed to change ownership of a file with permission 0666 in Linux

操作系统:Linux。 (CentOS 6)
步骤1:以普通用户身份登录并将目录更改为主目录
步骤2:以root身份运行su
步骤3:创建文件并将权限更改为0666
步骤4:以普通用户身份更改文件所有权但失败

[belcon@no1ca4sh ~]$ pwd   
/home/belcon  
[belcon@no1ca4sh ~]$ su  
Password:   
[root@no1ca4sh belcon]# touch test.txt  
[root@no1ca4sh belcon]# echo "test">test.txt  
[root@no1ca4sh belcon]# cat test.txt  
test  
[root@no1ca4sh belcon]# chmod 666 test.txt  
[root@no1ca4sh belcon]# ls -l test.txt  
-rw-rw-rw- 1 root root 5 Jun 26 17:50 test.txt  
[root@no1ca4sh belcon]# exit  
exit  
[belcon@no1ca4sh ~]$ ls -l test.txt  
-rw-rw-rw- 1 root root 5 Jun 26 17:50 test.txt  
[belcon@no1ca4sh ~]$ chown belcon test.txt  
chown: changing ownership of `test.txt': Operation not permitted  

这没有任何意义,因为我可以将该文件作为普通用户复制到另一个临时文件中。 该临时文件的所有者是普通用户。 然后,我可以删除原始文件,并复制一个与根用户创建的原始文件同名的临时文件。 这实际上是“小丑”想要做的。

[belcon@no1ca4sh ~]$ cp test.txt test1.txt   
[belcon@no1ca4sh ~]$ ls -l test.txt test1.txt  
-rw-r--r-- 1 belcon wheel 5 Jun 26 17:56 test1.txt  
-rw-rw-rw- 1 root   root  5 Jun 26 17:50 test.txt 
[belcon@no1ca4sh ~]$ diff -Naur test1.txt test.txt   
[belcon@no1ca4sh ~]$ rm test.txt
[belcon@no1ca4sh ~]$ ls -l test.txt test1.txt   
ls: cannot access test.txt: No such file or directory  
-rw-r--r-- 1 belcon wheel 5 Jun 26 17:56 test1.txt   
[belcon@no1ca4sh ~]$ cp test1.txt test.txt   
[belcon@no1ca4sh ~]$ ls -l test.txt test1.txt  
-rw-r--r-- 1 belcon wheel 5 Jun 26 17:56 test1.txt  
-rw-r--r-- 1 belcon wheel 5 Jun 26 17:57 test.txt   
[belcon@no1ca4sh ~]$ diff -Naur test1.txt test.txt   
[belcon@no1ca4sh ~]$ 

谁能解释为什么我不能更改权限为0666的文件的所有权? 是否存在某些原因?

普通用户无法chown文件。

参见: https : //unix.stackexchange.com/questions/27350/why-cant-a-normal-user-chown-a-file

基本上,这将允许用户逃避配额,并且在其他极端情况下,安全性可能会受到损害。 (例如,假设root拥有的文件是安全的应用程序,因为只有root可以编写它们)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM