我在新虚拟机上运行以下命令:
$ sudo adduser banana
Adding user `banana' ...
Adding new group `banana' (1034) ...
Adding new user `banana' (1033) with group `banana' ...
...
$ sudo touch /tmp/test.txt
$ sudo chmod 666 /tmp/test.txt
$ python3 -c "open('/tmp/test.txt', 'w')"
$ sudo chown banana:banana /tmp/test.txt
$ python3 -c "open('/tmp/test.txt', 'w')"
Traceback (most recent call last):
File "<string>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '/tmp/test.txt'
在 Ubuntu 20.04 和 Debian 11 上,当我尝试打开其他人拥有的文件时,权限被拒绝。在 CentOS 8.2 和 Debian 10 上,最后一行成功。奇怪的是,如果该文件由 root 用户拥有,我可以打开它进行写入,但如果它由其他用户拥有,则不能。无论哪种方式,阅读都可以。
$ lsattr /tmp/test.txt
--------------e------- /tmp/test.txt
到底是怎么回事?