我有一个已设置的文本文件chmod 444 file
,并且我可以有效地-r--r--r-- 1 blah blah 310 Aug 27 20:00 file
使用ls -ls
.如果我尝试在这个文件上写入,例如nano
I cant,这很好。但是,如果我通过网络打开文件杰尼1 然后就可以毫无问题地写入了。我应该期待这个吗?如何使文件只读?我想避免自己不小心改变它。
1 不确定这是如何工作的或详细信息,我只是使用我的文件资源管理器在地址栏中写入,通过网络连接到该计算机,然后双击该文件,用 Geany 打开它。sftp://[email protected]/home/user/path_to_somewhere
答案1
Geany 正在做许多文件编辑器所做的事情:当您进行更改并保存文件时,它将新版本的内容写入新文件,然后删除原始文件并更改新文件的名称和权限以匹配旧文件。这就是为什么当 Geany 更改原始文件时,它似乎更改了 inode - 它被新文件替换了。
目录上的权限允许这些操作,即使原始文件上的权限似乎禁止这些操作。
您已经成功尝试使原始文件不可变。另一个潜在的解决方案(如果chattr +i
不可用或有其他不良副作用)是查看 Geany 是否有一个配置选项,告诉它不要更新不可写的文件,即使目录权限允许也是如此。尝试调整目录权限以防止删除和重命名其文件很难避免产生不良副作用。
答案2
chattr +i filename
如果您的文件位于支持不可变标志的文件系统上,则应该完成这项工作。