Python授予读取/写入文件的完全权限
在使用Python(3.8.0)时,我试图在/var/run目录中创建一个PID文件。在输入时,我需要创建文件,在退出时,我需要删除文件Python授予读取/写入文件的完全权限,python,linux,file,pid,Python,Linux,File,Pid,在使用Python(3.8.0)时,我试图在/var/run目录中创建一个PID文件。在输入时,我需要创建文件,在退出时,我需要删除文件 class PIDFile(object): def __init__(self, filename='pidfileCreated.pid'): self._file = os.path.join("/var/run", filename) def __enter__(self): with open(se
class PIDFile(object):
def __init__(self, filename='pidfileCreated.pid'):
self._file = os.path.join("/var/run", filename)
def __enter__(self):
with open(self._file, "w") as f:
f.write(str(os.getpid()))
f.close()
os.chmod(self._file, 0o777)
return self
def __exit__(self, *args):
if os.path.exists(self._file):
try:
os.remove(self._file)
except OSError:
pass
但我得到了一个错误-
with open(self._file, "w") as f:
PermissionError: [Errno 13] Permission denied: '/var/run/pidfileCreated.pid'
您是否使用命令行运行Python可执行文件?如果没有,请尝试使用root权限使用命令行运行。我认为不使用root权限就不可能创建
/var/run
,因为这样会产生安全问题。例如,可以使用与强制替换参数同名的文件夹/文件替换现有文件夹/文件。是否使用命令行运行Python可执行文件?如果没有,请尝试使用root权限使用命令行运行。我认为不使用root权限就不可能创建/var/run
,因为这样会产生安全问题。例如,可以使用与强制替换参数同名的文件夹/文件替换现有文件夹/文件。通常,只有root用户可以在/var/run中创建/删除文件。你是在寻求一种方法来避免这种情况吗?为什么?我需要为我的服务创建/访问/删除PID文件,该文件由这个Python脚本执行。存储PID文件的建议位置是“/var/run”文件夹。如果不是,请给出建议。你能接受/var/run子文件夹而不是直接在其中吗?我认为拥有子文件夹不会有问题。但是,当我在上面的代码中使用“/var/run/tmp”时,会出现错误“没有这样的文件或目录:”/var/run/tmp/pidfileCreated.pid”“,这是因为您需要首先将/var/run/tmp
设为root用户。通常,只有root用户才能在/var/run中创建/删除文件。你是在寻求一种方法来避免这种情况吗?为什么?我需要为我的服务创建/访问/删除PID文件,该文件由这个Python脚本执行。存储PID文件的建议位置是“/var/run”文件夹。如果不是,请给出建议。你能接受/var/run子文件夹而不是直接在其中吗?我认为拥有子文件夹不会有问题。但是,当我在上面的代码中使用“/var/run/tmp”时,会出现错误“没有这样的文件或目录:'/var/run/tmp/pidfileCreated.pid'”,这是因为需要首先将/var/run/tmp
设为根目录。