如何在 Sudo 中运行脚本并自动填写我的密码

如何在 Sudo 中运行脚本并自动填写我的密码

我有 Windows 版 Bash(Linux 子系统),并且正在为在 Linux 上运行的应用程序创建一些 powershell 脚本(只是为了好玩),这样我就可以从桌面启动它们。

它都是虚拟化和离线的,所以我真的不是在寻找安全方面的讲座,因为我已经知道其中的来龙去脉,只是希望将其作为一种有趣的学习体验;)

这是我想出来的,但有两个问题:

1:我的脚本在第一行之后不会继续(因此 powershell 将进入 bash 但不执行后续命令)。

2:我需要填写我的 root 密码,我只是希望它跳过该密码,或者只是为我填写它,因为某些应用程序需要 root 访问权限。

bash (powershell command to drop into the bash shell)
export DISPLAY=:0 (necessary for gui apps)
sudo (app name)
(app asks for password)
Password

因此,如果我一一运行这些命令,那么它就可以正常工作(请参阅突触包管理器和 powershell 所附的屏幕截图),但现在我只是希望将其自动化,因为我是一只懒惰的树懒:D 在此输入图像描述

答案1

该解决方案分为两部分。

第一部分 - 运行脚本

过程很简单。您必须将整个脚本作为参数传递给 bash。

bash -c 'export DISPLAY=:0 ; sudo <app_name>'

我不使用powershell。因此根据上面一行中的powershell语法转义相关部分。

第二部分 - 跳过密码

为此,您需要在sudoers位于 的文件中允许无密码登录/etc/sudoers。在using末尾键入以下代码片段(替换user为您的) 。username/etc/sudoerssudo nano /etc/sudoers

user ALL=(ALL) NOPASSWD: ALL 

然而,这将改变 sudo 的默认行为,并且在使用时不会要求所述用户输入密码sudo

相关内容