首页 > 系统相关 >python执行linux sudo命令(以及sudo重定向提示Permission denied)

python执行linux sudo命令(以及sudo重定向提示Permission denied)

时间:2023-02-17 15:55:51浏览次数:41  
标签:sudo 命令 python cmd echo etc hosts denied

Hi,大家好我是Tarzan。
在编写Python自动化的时候尝尝会与操作系统打交道,比如查看文件目录、读写文件等等。今天我们聊的就是Python执行sudo 命令

解决大部分sudo问题的方法

import subprocess
cmd = 'echo %s |sudo -S cat /etc/hosts' % pc_password
res = subprocess.getoutput(cmd)
print(res)

解决sudo 重定向写入文件

如果想执行echo 123 > /etc/hosts如果我们继续用上面的方法,我们看看结果:

cmd = 'echo  %s  | sudo -S echo 123 > /etc/hosts' % pc_password
res = subprocess.getoutput(cmd)

输出结果是:

'/bin/sh: 1: cannot create /etc/hosts: Permission denied'

导致这个原因是echo 123sudo执行的,后面的>重定向没有用sudo

解决办法

修改上面cmd命令

cmd = "echo %s |sudo -S bash -c 'echo 123 > /etc/hosts'" % pc_password

bash命令来自于英文词组“Bourne shell”的缩写,其功能是命令终端解释器。 bash是绝大多数Linux系统默认的命令终端解释器,能够处理用户所输入的命令,以及执行指定的Shell脚本文件。常用参数:

-n 检测脚本是否正确本
-x 输出执行过程
-c 从字符串中读入命令

标签:sudo,命令,python,cmd,echo,etc,hosts,denied
From: https://www.cnblogs.com/tarzen213/p/17130451.html

相关文章

  • [ubuntu] sudo: yum: command not found
    环境Ubuntu18问题表述解决方法切换到root用户sudosu安装build-essentialapt-getinstallbuild-essential3.安装yumapt-getinstallyum4.查看安装......
  • python运算符的优先级规则
    1、先执行优先级高的运算,优先级低的操作后执行,同一优先级的操作按照从左到右的顺序进行。2、也可以像四则运算一样使用小括号,括号中的运算首先执行。实例#优先级使用规律#1......
  • python中lambdas匿名函数的用法
    匿名函数相信大家都听说过,本篇将会从表达式的使用入手,帮助大家快速掌握lambdas匿名函数的用法。1、lambdasx是指lambdas关键字和使用的变量,冒号后为函数的表达式。2、逗号......
  • python单元测试中的函数整理
    1、setUp准备环境。执行每个测试用例的前提条件。2、tearDown恢复环境。执行每个测试用例的后置条件。3、setUpClass所有case执行的前置条件,只运行一次。必须使用@classmeth......
  • python中condition条件变量的作用
    1、Python提供的Condition对象支持复杂的线程同步。2、Condition被称为条件变量,除了提供类似Lock的acquire和release方法外,还提供wait和notify方法。线程先acquire条件变量,......
  • python列表推导式的结构探究
    1、列表推导式结构包含在一对方括号中,一个表达式,后面是for子句,然后是零个或多个for或if子句。2、其结果将是一个新列表,根据for和if子句的内容计算表达式。实例fromcollecti......
  • python(13)--字典(Dict)
     一、字典的基本操作1.定义字典 字典也是一个列表型的数据结构,字典的数据是用“{}”装的(列表:[],元组:()),字典的元素是一一对应的关系“key-value”。格式:Dictname={key1:......
  • Python OpenCV给证件照换底色
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 【编程基础之Python】4、安装Python开发工具
    (【编程基础之Python】4、安装Python开发工具)安装Python开发工具为什么需要开发工具通常情况下,为了提高开发效率,需要使用相应的开发工具,进行Python开发也需要安装开发工......
  • [oeasy]python0085_ASCII之父_Bemer_COBOL_数据交换网络
    编码进化回忆上次内容上次回顾了字符编码的进化过程IBM在数字化过程中作用非常大IBM的BCDIC有黑历史......