2011-09-10 168 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就足够了。