对subprocess.run调用的权限被拒绝

2024-07-04 08:20:00 发布

您现在位置:Python中文网/ 问答频道 /正文

背景: 我正在做一个小项目来解决邮件安全问题。为此,我使用Ubuntu18.04在AWS虚拟机上设置了邮箱。我还安装了RspamD,并根据https://github.com/HeinleinSupport/olefy上的指南添加了olefy服务。因此,我必须添加一个名为olefy的用户和组。我还安装了John the Ripper Jumbp软件包,因为我需要它来破解密码加密的档案

无论如何,现在的问题是: 我根据自己的需要更改了olefy.py文件(位于/usr/local/bin/)中的代码,包括能够从裂土器John调用函数。我将John归档文件解压到/home/ubuntu/john-1.9.0-jumbo-1中,编译它并在/run子文件夹中生成可运行文件。 现在,当我尝试调用一个可运行的john函数时,如下所示:

subprocess.run(['/./home/ubuntu/john-1.9.0-jumbo-1/run/zip2john', /path/of/target/file, '>', /path/of/hash/file])

我得到一个错误:[Errno 13] Permission denied '/./home/ubuntu/john-1.9.0-jumbo-1/run/zip2john'

我已经尝试使用sudo chmod -R +x /path/to/john更改所需函数的权限,但这没有改变任何内容。我还尝试使用sudo作为subprocess.run(['sudo', '/./home/...])运行上面的run命令,这会导致以下错误消息:sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?。尝试使用shell=True选项执行run命令时发生相同错误。现在我没有办法尝试

可能有帮助:python代码由olefy用户根据os.getenv('USER')执行

/home/ubuntu文件夹不是在root用户和其他用户之间共享的吗?我是否应该尝试将john函数重新定位到其他地方?由于这对我来说似乎是一个与操作系统相关的问题,而且我对Linux不太熟悉,所以我非常感谢每一个回复


Tags: 文件thepath函数run用户homeubuntu

热门问题