Python删除文件时的权限问题
我在我的服务器根目录下的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
设置),那么只有超级用户或者这个文件夹里某个文件的拥有者才能删除它,不管这个文件本身有什么权限。