首页 > 编程语言 > 详细

Linux中Python自动输入sudo 密码

时间:2020-11-20 23:43:07      阅读:195      评论:0      收藏:0      [点我收藏+]

一、背景和需求

背景:

由于docker服务进程都是以root帐号的身份运行的,所以用docker跑abpred出来的文件所有者都是root,

而我作为一般用户,操作这个文件不够权限,运行代码时需要sudo 后输入密码。

 

需求:

python中调用shell 执行命令后,自动输入密码。

 

下面图片是对应说明,可以跳过直接进入下一部分。

代码:

技术分享图片

 运行记录(sudo需要输入密码):

技术分享图片

 生成的文件的属性及所有者:

技术分享图片

 

二、解决方案

管道+sudo -S:

os.system(‘echo %s | sudo -S %s‘ % (password, command))

 

三、原理  

sudo的-S参数 含义是:从标准输入读取密码 

管道前输出的密码作为sudo -S 的stdin,从而达到自动输入密码的作用。

 注意:-S 是大S  小写s作用不一样

附sudo的文档:

技术分享图片

 

 

四、成功截图

 

 技术分享图片

 

五、参考文档

https://www.cnblogs.com/chengmo/archive/2010/10/21/1856577.html   # 管道

https://www.cnblogs.com/badboy200800/p/11121880.html     # stdin和stdout

https://blog.csdn.net/u013948858/article/details/78429954

https://segmentfault.com/a/1190000004950264

https://miracle.blog.csdn.net/article/details/106996464

https://blog.csdn.net/ITzhangdaopin/article/details/79108975

https://blog.csdn.net/chengyq116/article/details/100709443

 

PS:

摸索了好一阵,希望对读者有帮助。

 

 

Linux中Python自动输入sudo 密码

原文:https://www.cnblogs.com/liangmingshen/p/14012083.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!