我有 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/sudoers
sudo nano /etc/sudoers
user ALL=(ALL) NOPASSWD: ALL
然而,这将改变 sudo 的默认行为,并且在使用时不会要求所述用户输入密码sudo