码迷,mamicode.com
首页 > 系统相关 > 详细

Linux普通用户修改owner非本人文件为什么成功

时间:2015-08-09 12:10:12      阅读:716      评论:0      收藏:0      [点我收藏+]

标签:

关键字:错误提示:E45 已设定选项’readonly’(请加!强制执行)

Linux对文件和目录有很好的权限管理,但今天遇到一个比较诡异的事情,普通用户对文件权限不可写,但可以强制保存该文件,这样就有问题了,其他用户可以修改别人文件,这不符合常识和安全要求,一时不明白原因。后来结合目录权限,终于搞清楚了这个问题。记录如下:

1 文件和目录的初始权限如下

所有者是root,其他用户无写权限

[root@localhost 桌面]# touch test.txt
[root@localhost 桌面]# ll
total 0
-rw-r--r--. 1 root root 0 Aug  9 10:21 test.txt

目录权限如下:

drwxr-xr-x . 2 user user  6 Aug  5 15:30 桌面

2 使用user编辑并保存文件test.txt

编辑前先看下文件的修改时间

user@localhost 桌面]$ ls -al --full-time
总用量 4
drwxr-xr-x.  2 user user   21 2015-08-09 10:23:22.936290484 +0800 .
drwx------. 19 user user 4096 2015-08-09 10:23:22.936290484 +0800 ..
-rw-r--r--.  1 root       root          0 2015-08-09 10:21:20.418438557 +0800 test.txt

 

编辑保存时提示如下:

技术分享

使用命令:wq!,竟然也能成功保存!!,如下:

[user@localhost 桌面]$ vi test.txt 
[user@localhost 桌面]$ cat test.txt 
readonly to save

再看下文件的修改时间

文件修改前的时间
drwxr-xr-x.  2 user user   21 2015-08-09 10:23:22.936290484 +0800 .
drwx------. 19 user user 4096 2015-08-09 10:23:22.936290484 +0800 ..
-rw-r--r--.  1 root       root          0 2015-08-09 10:21:20.418438557 +0800 test.txt
[user@localhost 桌面]$ vi test.txt 
[user@localhost 桌面]$ cat test.txt 
readonly to save
文件修改后的时间
[user@localhost 桌面]$ ls -al --full-time
总用量 8
drwxr-xr-x.  2 user user   21 2015-08-09 10:42:29.529216286 +0800 .
drwx------. 19 user user 4096 2015-08-09 10:42:29.529216286 +0800 ..
-rw-r--r--.  1 user user   17 2015-08-09 10:42:29.497216306 +0800 test.txt
[user@localhost 桌面]$

 

 

3 原因分析

用户user对文件test.txt没有write权限,但可以修改,再看下该文件的目录的权限,用户user有write权限。

再结合修改后test.txt文件的修改时间,得出:

用户user并不是修改了test.txt,而是首先强行删除了旧的test.txt文件(因为user有目录的write权限),

然后又重新创建了test.txt文件。那分析的对不对呢?看一下修改前后文件的属性吧:

修改前,文件owner和group分别是root,root
[user@localhost 桌面]$ ls -l --full-time
-rw-r--r--.  1 root       root          0 2015-08-09 10:21:20.418438557 +0800 test.txt
修改后,文件owner和group已经全变成user,而文件更改owner和group必须由root或rootgroup成员操作,所以很显然
是新的文件替换了旧的文件,该命令类似mv 修改了权限。
[user@localhost 桌面]$ ls -l --full-time
-rw-r--r--.  1 user user   17 2015-08-09 10:42:29.497216306 +0800 test.txt

 

note:错误提示:E45 已设定选项’readonly’(请加!强制执行)

Linux普通用户修改owner非本人文件为什么成功

标签:

原文地址:http://www.cnblogs.com/lizhaoxian/p/4714737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!