2012-05-31 102 views
1

chmod -R -w filename將刪除寫入權限,但是如果程序在拒絕權限之前打開文件,則即使我們刪除了寫入權限,該程序也可以不斷寫入文件。在寫入文件時拒絕寫入權限

解決這個問題有什麼想法嗎?

回答

0

您可以使用fuserlsof看到什麼進程具有文件打開並殺死他們

+0

我不想殺死進程 我想阻止它寫入文件 – Ali

0

嘗試複製它,使用重複使用新的名稱,而不是舊版本。這可以防止程序改變大概不再需要改變的數據。但顯而易見的解決方案是簡單地殺死程序。

+1

更改文件名不會改變任何內容。將文件「mv」到單獨的文件系統可能會導致非常奇怪的事情(因爲原始文件實際上仍然存在並寫入到原始文件系統中,但不再可見)。 – Mat

+0

你說得對,更改文件名儘管如此,它不會幫助,複製它,讓程序繼續愉快地編輯我們不再關心的舊版本。 – TEOUltimus

2

您可以使用mandatory locking,但寫入操作不會失敗並出現錯誤,但會被無限期阻止。

但不要忽略第一段:「爲什麼你應該避免強制鎖定」。

+0

那麼程序如何找出文件被鎖定? – Ali

+0

@Ali - AFAIK,你的程序不會知道它,它會阻止寫入。也許不是你需要的,但是你沒有給出太多細節...... – rodrigo

+0

這意味着程序認爲他可以在文件中寫入,但實際上什麼都不會寫入文件? – Ali

相關問題