Linux普通用户修改owner非本人文件为什么成功
关键字:错误提示:E45 已设定选项’readonly’(请加!强制执行)
Linux对文件和目录有很好的权限管理,但今天遇到一个比较诡异的事情,普通用户对文件权限不可写,但可以强制保存该文件,这样就有问题了,其他用户可以修改别人文件,这不符合常识和安全要求,一时不明白原因。后来结合目录权限,终于搞清楚了这个问题。记录如下:
1 文件和目录的初始权限如下
所有者是root,其他用户无写权限
[root@localhost 桌面]# touch test.txt [root@localhost 桌面]# ll total -rw-r--r--. root root Aug : test.txt
目录权限如下:
drwxr-xr-x . user user Aug : 桌面
2 使用user编辑并保存文件test.txt
编辑前先看下文件的修改时间
user@localhost 桌面]$ ls -al --full-time 总用量 drwxr-xr-x. user user -- :: . drwx------. user user -- :: .. -rw-r--r--. root root -- :: test.txt
编辑保存时提示如下:

使用命令:wq!,竟然也能成功保存!!,如下:
[user@localhost 桌面]$ vi test.txt [user@localhost 桌面]$ cat test.txt readonly to save
再看下文件的修改时间
文件修改前的时间
drwxr-xr-x. user user -- :: . drwx------. user user -- :: .. -rw-r--r--. root root -- :: test.txt [user@localhost 桌面]$ vi test.txt [user@localhost 桌面]$ cat test.txt readonly to save
文件修改后的时间
[user@localhost 桌面]$ ls -al --full-time 总用量 drwxr-xr-x. user user -- :: . drwx------. user user -- :: .. -rw-r--r--. user user -- :: 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--. root root -- :: test.txt 修改后,文件owner和group已经全变成user,而文件更改owner和group必须由root或rootgroup成员操作,所以很显然 是新的文件替换了旧的文件,该命令类似mv 修改了权限。 [user@localhost 桌面]$ ls -l --full-time -rw-r--r--. user user -- :: test.txt
note:错误提示:E45 已设定选项’readonly’(请加!强制执行)
Linux普通用户修改owner非本人文件为什么成功的更多相关文章
- Linux(CentOS)用户修改密码有效期(chage命令)
Linux设置用户密码的有效期限 解决: 先查看密码过期时间,现在是90天 1 2 3 4 5 6 7 8 [root@01 ~]# chage -l testuser Last password c ...
- Mac普通用户修改了/etc/sudoers文件的解决办法
1.开启 Root 账户 打开“系统偏好设置”,进入“用户与群组”面板,记得把面板左下角的小锁打开,然后选择面板里的“登录选项”.在面板右边你会看到“网络账户服务 器”,点击它旁边的“加入…”按钮,再 ...
- linux 给用户修改权限
#添加一个用户 useradd xiaoming #设置密码 passwd xiaoming 回程 //设置密码就行了 #把用户修改成root权限 vi /etc/passwd #找到xiaoming ...
- linux下用户和组相关的文件及相关管理命令
1.用户信息文件 /etc/passwd 示例root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2: ...
- Linux篇:因为修改了/etc/sudoers 文件的权限导致的问题
因为想要把sudo变成免密码所以就查了网上的教程.说是要修改/etc/sudoers文件,但是修改的时候发现这个文件是只读, 所以就 /etc/sudoers 结果就导致了接下来用sudo的时候提示如 ...
- [Linux/Unix]用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统的用户,都必须拥有自己的账号. 实现用户的管理,主要做: 用户账号的添加.删除.修改: 用户口令的管理: 用户组的管理. (一)用户的 ...
- linux中如何修改文件夹的用户权限 chown命令
linux中,可以使用chown命令来修改文件夹的用户权限. 1. 以普通用户 A 登录linux,利用su -切换到root用户 2. 在root用户下,可以看到文件夹内容 3. 但通过文件系统, ...
- Linux跨用户copy文件
foo用户home目录下有一文件file.txt,要将其copy至bar用户的home目录.Linux对用户home目录有严格的权限限制,非owner用户或者同group用户无权限读写,除非是root ...
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
随机推荐
- HTTP2的新特性
多路复用 二进制分帧 首部压缩(Header Compression) 服务端推送(Server Push) 请求优先级
- F# 之旅(下)
写在前面的话 学习 F# 一定要去体会函数式编程的特点,推荐一下阮一峰的日志<函数式编程入门教程>. 在这篇文章中 递归函数 记录和可区分联合类型 模式匹配 可选类型 度量单位 类和接口 ...
- 数据对象转json与md5加密注意事项
项目中遇到将OC数据对象类型转化字符类型,然后进行MD5加密的技术流程,在转化字符数组到字符加密过程中遇到一些问题. 问题 转化后的字符进行md5加密,出现与服务器加密结果不匹配的情况 分析 在对代码 ...
- Python Tornado篇
Tornado既是一个web server,也是web framework.而它作为web server 采用的是asynchronous IO的网络模型,这是一种很高效的模型. Tornado 和现 ...
- linux之 NFS服务器与客户端的安装与配置
今天实验室需要搭建NAS,我负责的是NFS的安装与配置,现将整理的文档分享一下: 参考一:Linux下rpm 安装包方式安装 http://linux.chinaunix.net/techdoc/be ...
- python语言学习笔记整理
什么是程序? 程序等于数据结构加算法,那么数据结构是一个静态的东西,算法是一个动态的东西,我们用一个新的语言编写这个程序,我们要考虑到语言也主要由数据结构和算法相关的东西,或静态或动态的东西来构成,所 ...
- ResourceBundleViewResolver
1 springmvc中ResourceBundleViewResolver解析器的使用1.1 springmvc.xml的配置因为我配置了多个解析器,所以额外的加了order属性,value值越低, ...
- 超市买苹果.py
# 定义苹果数量 price = 5 # 挑选苹果 weight = 4 # 计算金额 money = price * weight money -= 5 # 三个变量 print(type(1.5) ...
- Java反射-高级知识掌握
PS:本文就Java反射的高级知识做下汇总,理清在什么情况下,我们应该去使用反射,提供框架的健壮性,ps:xieyang@163.com/xieyang@163.com
- vijos 1213:80人环游世界
描述 想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么一个80人的团伙,也想来一次环游世界. 他们打算兵分多路,游遍每一个国家. ...