2011-09-10 103 views
1

我在根服務器的tmp目錄下生成一個文件。刪除python文件的權限問題

touch "sync.txt" 
chmod 777 "sync.txt" 

,我試着用Python來刪除它像這樣

os.remove('/tmp/sync.txt') 

,但我總是得到這個錯誤

exceptions.OSError: [Errno 1] Operation not permitted: '/tmp/sync.txt' 

我認爲這將通過設置來解決文件權限爲777但我仍然有這個問題。

當我做

chmod 777 /tmp 

,而不是我得到另一個錯誤:

exceptions.OSError: [Errno 2] No such file or directory: '/tmp/sync.txt' 

但是該文件將被刪除。

任何想法最新怎麼了?我如何解決這個異常?

+0

你嘗試過'sudo myscript.py'嗎? –

+1

/tmp中的文件自動被chown'ed給創建它們的用戶。如果運行python應用程序的用戶與創建該文件的用戶不同,那麼您將無法刪除它。 – nagisa

回答

5

如果/tmp標記爲stickychmod a+t),則只有超級用戶或其中的目錄或文件的所有者才能刪除它,而不管文件具有什麼權限。

0

默認情況下,每個人都可以在/tmp中輸入。您需要chown [python_running_user]:[its_group] /tmp/sync.txtchmod 777 /tmp/sync.txt不是強制性的。 644就足夠了。