Python删除文件时的权限问题

1 投票
2 回答
4389 浏览
提问于 2025-04-17 01:58

我在我的服务器根目录下的tmp文件夹里生成了一个文件。

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'

不过文件确实被删除了。

你知道哪里出错了吗?我该怎么解决这个异常呢?

2 个回答

0

默认情况下,所有人都可以在 /tmp 这个文件夹里写东西。你需要把 /tmp/sync.txt 这个文件的拥有者改成正在运行 Python 的用户和它所属的组,命令是 chown [python_running_user]:[its_group] /tmp/sync.txt。另外,给这个文件设置权限 chmod 777 /tmp/sync.txt 其实不是必须的,设置成 644 就够用了。

5

如果 /tmp 这个文件夹被设置为 粘滞位(用命令 chmod a+t 设置),那么只有超级用户或者这个文件夹里某个文件的拥有者才能删除它,不管这个文件本身有什么权限。

撰写回答