subprocess.Popen返回“ shell初始化:检索当前目录时出错”

问题描述 投票:0回答:1

我使用subprocess.Popen(cmd, shell=True)在python中创建了一个简单的反向外壳,以使客户端运行命令。但是,当我在用户目录中使用命令时,会出现shell-init错误。这是我尝试使用ls

时得到的
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
ls: .: Operation not permitted

以sudo运行ls命令不起作用。

值得一提的是,命令确实可以在用户目录之外的目录中正常工作。

这里是调用命令的代码:

output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
python python-3.x shell subprocess reverse-shell
1个回答
0
投票

From a Chinese blog

[root@smart hello]# cat /root/Desktop/hello.sh 
#!/bin/bash
echo "hello"
[root@smart hello]# /root/Desktop/hello.sh
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
hello
[root@smart hello]# cd /
[root@smart /]# /root/Desktop/hello.sh
hello
[root@smart /]# 

它说如果您删除脚本的第一行,它也可以正常工作。

[root@smart hello]# cat /root/Desktop/hello.sh 
echo "hello"
[root@smart hello]# /root/Desktop/hello.sh
hello

如果您也同样如此。这样子流程就不成问题了。

© www.soinside.com 2019 - 2024. All rights reserved.