vim没有权限却可以强制保存时所引起的思考 ------ 文件夹权限对所属文件的权限影响
最近在拿着Linux 鸟叔私房菜对着Linux 系统学习一下基本操作,虽然已经使用Linux系统已经好多年不过却一直没有系统的学习一下。在用vim 编辑一个文件的时候出现了一个很神奇的事情,明明该文件是root创建的,而普通用户是没有写权限的,而我无意中用普通用户写了以后竟然可以保存,虽然是强制保存但是毕竟是保存了,这并不符合权限的操作要我感到疑惑,为此在晚上搜索了好久也没有找到什么靠谱的解答,最后还是在私房菜这本书中找到了答案,那就是文件所在目录的权限是可以影响目录内的文件的。
用户对某文件目录可读, r, 那么用户对目录下的所有文件都是可见的。
用户对某文件目录可写, w, 那么:
你可以在该目录之下新建文件和目录
你可以删除该目录下的任何文件及目录(不论该文件的权限如何)
将已经存在的该目录下的文件或目录进行重命名
转移该目录下的文件和目录的位置
基本上如果用户对某目录具有 w 权限 就可以对该目录下面的所有文件及目录进行 关于文件名的修改。

root 新建立了一个 txt 文件 , 123.txt

123.txt 所在目录的权限如上, 是普通用户的rwx

123.txt 文件内容如上。

修改文件内容:

强制保存成功, wq!
再次查看权限:

发现 vim 强制保存成功后,文件所属的用户及组都已经变化了。
个人观点:
vim 的强制保存 其实是新建了一个文件, 也就是说它把该原文件(可读)的内容,已经修改好的内容保存,并且删除掉原文件,并重新建立文件,再把内容写回去。
vim没有权限却可以强制保存时所引起的思考 ------ 文件夹权限对所属文件的权限影响的更多相关文章
- Linux常用命令,查看树形结构、删除目录(文件夹)、创建文件、删除文件或目录、复制文件或目录(文件夹)、移动、查看文件内容、权限操作
5.查看树结构(tree) 通常情况下系统未安装该命令,需要yum install -y tree安装 直接使⽤tree显示深度太多,⼀般会使⽤ -L选项⼿⼯设定⽬录深度 格式:tree -L n [ ...
- linux学习之(四)-用户、组的操作,给文件文件夹设置组,更改目录权限、文件权限
命令帮助查看: man 命令(查看一个命令的详细帮助信息) 例:man useradd 或者用 -h 格式 命令 -h(查看一个命令的简要帮助) 例:useradd -h 用户: 在user ...
- 文件夹添加 IIS 应用程序池用户权限
http://serverfault.com/questions/81165/how-to-assign-permissions-to-applicationpoolidentity-account ...
- [Ubuntu]修改文件夹及所有子文件夹权限
sudo chmod -R 777 FILE_NAME 使FILE_NAME文件或文件夹具有读写和执行的权限.
- 安装wampserver后,在www文件夹下面写php文件,而在网页里输入localhost而无法打开php文件时解决办法汇总
wampserver安装后,在www文件夹下面写入xx.PHP文件,然后在网页里输入localhost:xx.PHP. 你可能会遇到如下三种情况: 情形一:网页上显示空白,按F12,出现404的错误. ...
- 为web文件夹添加IIS应用程序池用户权限
在文件夹或文件右键属性—>安全——>编辑——>添加——>输入IIS APPPOOL\应用程序池名,确定即可将IIS 7或7.5.8的应用程序池虚拟用户添加到权限控制里面,然后再 ...
- linux下移动或者复制文件覆盖相同文件夹时,文件夹里面的每个文件都提示是否覆盖
链接地址:http://blog.chinaunix.net/uid-23683795-id-2391087.html # vi ~/.bashrc 如果你看到如下内容,以下命令都会用别名执行了, ...
- Inno如何在安装完成时删除指定的文件夹(下的所有文件及子目录)??
删除安装目录下的任意文件夹及下的所有文件及子目录,或者删除指定目录的文件夹,要如何做到呢?谢谢!! //删除文件 用 DeleteFile 只能删除一个文件,不能使用通配符来删除多个文件Dele ...
- 安装bootcamp时提示“找不到$winpedriver$文件夹,请验证该文件夹是否和bootcamp处于同一文件夹内?”
问题:我苹果系统是10.8.3的 装的win7 64位的! 这个bootcamp是我在别人那里拷贝的,我装的时候就这样了,但是别人装是好好的,还有我在MAC系统下载bootcamp的时候我的U盘格式是 ...
随机推荐
- redhat 5的中文包安装
中文包文件名.在iso文件的/server/文件夹下fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0-17.1.noarch ...
- vim多行注释和取消注释 Ubuntu
多行注释: 1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按d 是选择到最后一行,也可以直接光标上下左右,把需要注释的行标记起来 2. 按大写字母I,再插入注释符,例 ...
- zw黑天鹅足彩实盘测试5月数据包
[文件说明] $mx1,是单日数据:$mx9,是日数据和 入选率:2%, 准确度:40% 盈利率:120%左右 目前在测试稳定性 5月1日-6月14日,实盘数据 $mx9,15061409x15061 ...
- Core Java 5
p273~p276: 1.获取异常的更多信息:e.getMessage(). 2.得到异常的实际类型:e.getClass().getName(). 3.当异常之间不存在子类关系,并且异常的处理机制( ...
- python中 @property
考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name self.score = ...
- 常用php操作redis命令整理(二)哈希类型
HSET将哈希表key中的域field的值设为value;如果field是哈希表中的一个新建域,并且值设置成功,返回1;如果哈希表中域field已经存在且旧值已被新值覆盖,返回0. <?php ...
- Xcode7.2与iOS9之坑 (持续更新)
GitHub地址 前几天升级OS X EI Capitan 10.11.1, 以及Xcode7.1,正好赶上公司新产品上线,要做iOS9的适配,遇到各种坑,各种查资料,随之记录总结一下遇到的坑. 先说 ...
- linux使用vi浏览python源码
一.背景 2018/8/15,这一天要分析一个python项目,因此需要浏览代码,而我使用的是ubuntu 16.04,于是作此文 二.步骤 2.1 获取生成tags文件的脚本 http://svn. ...
- AngularJs 控制台
在控制台查看$scope对象 html: 通过控制器里面的一个元素来获取这个控制器的$scope var node=document.getElementById("NewsVote&quo ...
- [QA翻译]如何在Storm里拆分stream流?
原文:http://stackoverflow.com/questions/19807395/how-would-i-split-a-stream-in-apache-storm 问题:我现在不清楚如 ...