Networking

只讀文件可通過網路寫入

  • August 28, 2022

我有一個已設置的文本文件,並且可以chmod 444 file有效地-r--r--r-- 1 blah blah 310 Aug 27 20:00 file使用ls -ls. 如果我嘗試在這個文件上寫,例如nano我不能,這很好。但是,如果我通過網路使用Geany ¹打開文件,那麼它可以毫無問題地寫入它。我應該期待這個嗎?如何使文件只讀?我想避免自己不小心改變它。

¹不確定這是如何工作的或詳細資訊,我只是使用在地址欄中寫入的文件資源管理器通過網路連接到該電腦sftp://user@computer.institution.blah/home/user/path_to_somewhere,然後點兩下該文件,以使用 Geany 打開它。

chattr +i filename

如果您的文件位於支持不可變標誌的文件系統上,則應該完成這項工作。

發生的事情是 Geany 正在做許多文件編輯器所做的事情:當您進行更改並保存文件時,它將新版本的內容寫入新文件,然後刪除原始文件並更改新文件的名稱和權限以匹配舊文件。這就是為什麼 Geany 更改原始文件時似乎更改了 inode 的原因 - 它已被新文件替換。

目錄的權限允許這些操作,即使原始文件的權限似乎禁止它。

您已經成功嘗試使原始文件不可變。另一個潛在的解決方案(如果chattr +i不可用或有其他不良副作用)是查看 Geany 是否有一個配置選項,告訴它不要更新不可寫的文件,即使目錄權限允許它也是如此。試圖調整目錄權限以防止刪除和重命名其文件是很難做到沒有不良副作用的。

引用自:https://unix.stackexchange.com/questions/715142