我试图通过调用shell命令来更改用户foo和用户栏的密码。但是我有一些问题。你知道吗
我可以这样做发送一个密码给sudo
$ echo sudopw | sudo -S ls
要更改密码,请执行以下操作:
$ echo foo:newpw | sudo chpasswd
[sudo] password for bar: sudopw
这会将用户foo的密码更改为newpw,但会强制我手动输入sudo密码。你知道吗
问题是我看不出如何把这些东西结合起来。我试过了,但没用:
$ echo sudopw | sudo -S echo foo:newpw | chpasswd
chpasswd: Permission denied.
chpasswd: cannot lock /etc/passwd; try again later.
[sudo] password for bar: [bar@host]$
我确实做到了:
echo sudopw | echo -e "newpw\nnewpw" | sudo passwd dummy
但当我这样试的时候,它又要求输入密码。你知道吗
os.system('echo sudopw | echo -e "newpw\nnewpw" | sudo passwd dummy')
我找到了许多关于如何将密码发送到sudo <cmd>
的答案,其中cmd不需要任何额外的输入。但是我真的无法解决从python脚本向cmd发送输入和向sudo发送密码的情况。你知道吗
我终于解决了。我想强调的是,这个解决方案可能有安全缺陷,可能不是每个人都适合的选择。在我的例子中,它应该只运行一次,任何能够利用此代码中任何缺陷的人都已经走了很远。你知道吗
您可以使用sudo命令而不需要密码。你知道吗
如果您使用XXX用户运行python,那么请添加以下行。你知道吗
之后,可以使用
$ sudo chpasswd
命令而不需要密码。你知道吗如果visudo不是您的选择,那么请尝试以下操作
或者
相关问题 更多 >
编程相关推荐