我们可以通过 shell 脚本安装包吗?

我们可以通过 shell 脚本安装包吗?

我正在尝试编写一个 shell 脚本,以便当我再次重新安装 Ubuntu 时。我可以只运行脚本并保留所有包。我计划以参数的形式传递密码。

我的问题是如何sudo在不手动输入密码的情况下进入域。因为我还计划设计一个无法访问终端的用户界面。

前任:

./recover.sh password

答案1

您可以使用...

echo password | sudo -S recover.sh

密码是你的 sudo 密码。

来自 sudo 手册页..

-S, --stdin 将提示写入标准错误并从标准输入读取密码,而不是使用终端设备。

第二种方法是

sudo -S <<< password apt-get install pkg_name

答案2

如果您不想手动输入密码,可以使用-A以下选项sudo

 -A, --askpass
             Normally, if sudo requires a password, it will read it from the user's
             terminal.  If the -A (askpass) option is specified, a (possibly graphi‐
             cal) helper program is executed to read the user's password and output
             the password to the standard output.  If the SUDO_ASKPASS environment
             variable is set, it specifies the path to the helper program. 

如何使用它?

  1. 创建一个包含您的密码的文件(未加密):

    cat .pass
    #!/bin/bash
    echo password
    
  2. 现在将其权限设置为仅可由您执行:

    chmod u=x,go= .pass
    
  3. 现在实际使用情况

    SUDO_ASKPASS="~/.pass" sudo -A <command>
    

这样你就可以运行任何命令无需输入密码

我不建议您将未加密的密码存储在计算机上,这是非常不安全的。

相关内容