我遇到了一个令人困惑的问题,Linux 计算机上的用户权限不受尊重。其他用户可以移动和删除不属于他们的文件。有没有办法限制这种情况?为什么会发生这种情况?以下是一个例子。
# Become user jen
[root@localhost test]# su jen
# Display files in the current directory
[jen@localhost test]$ ls -al
total 24
drwxrwxrwx. 3 root root 4096 Apr 10 09:49 .
dr-xr-xr-x. 19 root root 4096 Apr 9 18:19 ..
drwx------. 2 root root 16384 Apr 9 16:15 lost+found
[jen@localhost test]$ touch jen_file
[jen@localhost test]$ ls -l
total 16
-rw-rw-r--. 1 jen jen 0 Apr 10 09:50 jen_file
drwx------. 2 root root 16384 Apr 9 16:15 lost+found
# Exit user jen and become user mike
[jen@localhost test]$ exit
[root@localhost test]# su mike
# Try to modify jen's file as mike. Permission denied, like normal.
[mike@localhost test]$ echo "test" > jen_file
bash: jen_file: Permission denied
# User mike can move jen's file! This should not happen.
[mike@localhost test]$ mv jen_file mike_file
[mike@localhost test]$ ls -l
total 16
-rw-rw-r--. 1 jen jen 0 Apr 10 09:50 mike_file
drwx------. 2 root root 16384 Apr 9 16:15 lost+found
# User mike can delete jen's file. This definately should not happen!
[mike@localhost test]$ rm -f mike_file
[mike@localhost test]$ ls -l
total 16
drwx------. 2 root root 16384 Apr 9 16:15 lost+found
不确定是否相关,但这是已安装分区(正在运行此测试的位置)的 fstab 行:
# Device name Mount point Type Attributes Dump Check
/dev/mapper/vg00-test /test ext4 defaults,acl,user_xattr,nodev 0 3
答案1
实际上,这正如预期的那样工作。'mv' 包含一个读取操作(mike 可以通过 o+r 执行该操作)、一个写入操作(mike 可以通过 o+rwx 对目录执行该操作)和一个删除操作(mike 可以通过 o+rwx 对目录执行该操作)。要获得所需的行为,请将目录的 chmod 设置为模式 1777。
答案2
您误解了权限概念。
移动和删除是对目录的操作,而不是对文件的操作。并且 mike 对目录有读/写的权限。