加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

vim如何写一个只读文件?

发布时间:2020-12-15 21:55:18 所属栏目:安全 来源:网络整理
导读:对不起新手问题.我想知道,vim如何设法写一个只读文件.我对文本文件有555个权限.但是,当我打开写点什么,然后:w!,我对文件所做的更改已保存.我想知道vim是如何在后台做这个的!!是暂时将权限更改为755并写入并恢复权限?请指教. 解决方法 编辑:我最初回答了
对不起新手问题.我想知道,vim如何设法写一个只读文件.我对文本文件有555个权限.但是,当我打开&写点什么,然后:w!,我对文件所做的更改已保存.我想知道vim是如何在后台做这个的!!是暂时将权限更改为755并写入并恢复权限?请指教.

解决方法

编辑:我最初回答了有关UNIX权限如何工作的正确但最终无关的信息:这不是Vim正在做的事情.

确实,你是对的:当你发布:w!,并且你在UNIX上时,如果需要,Vim将添加写权限:

/* When using ":w!" and the file was read-only: make it writable */
if (forceit && perm >= 0 && !(perm & 0200) && st_old.st_uid == getuid()
                 && vim_strchr(p_cpo,CPO_FWRITE) == NULL)
{
    perm |= 0200;
    (void)mch_setperm(fname,perm);
    made_writable = TRUE;
}

然后重新将其重置:

if (made_writable)
    perm &= ~0200;      /* reset 'w' bit for security reasons */

它也反映在帮助中:

Note: This may change the permission and ownership of the file and break (symbolic) links. Add the ‘W’ flag to ‘cpoptions’ to avoid this.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读