操作系统:Linux。 (CentOS 6)
步骤1:以普通用户身份登录并将目录更改为主目录
第2步:su as root root
第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
这没有意义,因为我可以将该文件作为普通用户复制到另一个临时文件。该临时文件的所有者是普通用户。然后我可以删除原始文件,并复制与root用户创建的原始文件同名的临时文件。这实际上是'chown'想要做的事情。
[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权限的文件的所有权?是否存在某些原因?
答案 0 :(得分:0)
普通用户无法chown
个文件。
请参阅:https://unix.stackexchange.com/questions/27350/why-cant-a-normal-user-chown-a-file
基本上,它允许用户规避配额,还有其他边缘情况可能会危及安全性。 (例如假设root拥有的文件是安全的应用程序,因为只有root可以编写它们。)