![vim 创建的文件上的可执行位](https://linux22.com/image/74892/vim%20%E5%88%9B%E5%BB%BA%E7%9A%84%E6%96%87%E4%BB%B6%E4%B8%8A%E7%9A%84%E5%8F%AF%E6%89%A7%E8%A1%8C%E4%BD%8D.png)
vim创建新文件有没有完全权限的设置?这恰好受到 umask 限制,并且仅适用于 vim 创建的文件。它不应该修改已经存在的文件的位。我已经看到了为 /bin/ 中的文件设置 x 位或以 #! 开头的解决方案,但我希望我的 vim 服从 umask,并且仅服从 umask。
答案1
以前在不同的地方都曾问过这个问题。简而言之,vimumask
仅使用(像其他应用程序一样)关闭权限,但您可以使用脚本来修改文件权限。
大多数应用程序(例如文本编辑器)将其输出视为数据, 什么时候开幕(创建)文件,使用数据样式权限,例如 0666、0644、0600 等。同样,大多数程序本身不会设置 umask,而仅依赖现有设置来减少他们可能向某些用户提供的特权。
开设一个现存的文件是另一回事。许多编辑者使用相同的方法编写更新的文件,而不重新创建或重命名它索引节点。这恰好保留了文件的权限(和所有权)。一些(例如,vim 和 vile)具有一些临时更改文件权限以写入“只读”文件的规定。为此,他们必须知道原始权限是什么,但这又umask
与生成的文件权限无关。
供进一步阅读
- Vim 创建文件在超级用户显示了检查“#!”的脚本示例在文件的开头,以及文件是否写入带有“/bin/”的目录。
- vim:使用+x位创建文件重复这一点,并添加一些其他示例。
- addexecmod.vim : 保存文件时自动添加执行权限是一个简单检查“#!”的插件。