在Ubuntu上进行Tripwire静默安装

4
我正在尝试以非交互方式安装 Tripwire,但仍然会出现插入本地密钥和站点密钥的窗口。以下是我在 bash 文件中编写的代码。 请问有人能提供解决方案吗? 谢谢。
TripWireLocalPassword=something
TripWireSitePassword=something

sudo echo "postfix postfix/main_mailer_type select Internet Site" | sudo debconf-set-selections
sudo echo "postfix postfix/mailname                     string `hostname`"                  | sudo debconf-set-selections
sudo echo "tripwire tripwire/local-passphrase           password ${TripWireLocalPassword}"  | sudo debconf-set-selections
sudo echo "tripwire tripwire/local-passphrase-again     password ${TripWireLocalPassword}"  | sudo debconf-set-selections
sudo echo "tripwire tripwire/site-passphrase            password ${TripWireSitePassword}"   | sudo debconf-set-selections
sudo echo "tripwire tripwire/site-passphrase-again      password ${TripWireSitePassword}"   | sudo debconf-set-selections
sudo echo "tripwire tripwire/rebuild-config             boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/use-localkey               boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/change-in-default-policy   note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/email-report               note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/broken-passphrase          note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/use-sitekey                boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/installed                  note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/site-passphrase-incorrect  boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/upgrade                    boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/rebuild-policy             boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/local-passphrase-incorrect boolean true"                       | sudo debconf-set-selections

sudo apt-get install tripwire

1
我正在尝试实现同样的事情,但成功率不高。我看到一些旧帖子使用expect:http://eigenjoy.com/2009/07/10/automate-installing-tripwire-using-expect/虽然我想象接口自那时以来已经有了很大的改进。我会继续挖掘。 - Huw
2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
1

通过一些小的修改,您应该能够进行静默安装:

TripWireLocalPassword=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1)
TripWireSitePassword=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1)


sudo echo "postfix postfix/main_mailer_type select Internet Site" | sudo debconf-set-selections
sudo echo "postfix postfix/mailname                     string `hostname`"                  | sudo debconf-set-selections
sudo echo "tripwire tripwire/local-passphrase           password ${TripWireLocalPassword}"  | sudo debconf-set-selections
sudo echo "tripwire tripwire/local-passphrase-again     password ${TripWireLocalPassword}"  | sudo debconf-set-selections
sudo echo "tripwire tripwire/site-passphrase            password ${TripWireSitePassword}"   | sudo debconf-set-selections
sudo echo "tripwire tripwire/site-passphrase-again      password ${TripWireSitePassword}"   | sudo debconf-set-selections
sudo echo "tripwire tripwire/rebuild-config             boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/use-localkey               boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/change-in-default-policy   note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/email-report               note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/broken-passphrase          note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/use-sitekey                boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/installed                  note"                               | sudo debconf-set-selections
sudo echo "tripwire tripwire/site-passphrase-incorrect  boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/upgrade                    boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/rebuild-policy             boolean true"                       | sudo debconf-set-selections
sudo echo "tripwire tripwire/local-passphrase-incorrect boolean true"                       | sudo debconf-set-selections

DEBIAN_FRONTEND=noninteractive apt-get install tripwire

echo $TripWireLocalPassword | tripwire --init

DEBIAN_FRONTEND=noninteractive apt-get install ... 是一个神奇的命令。

如果你之前删除了 Tripwire 的安装,请不要忘记使用 apt-get purge tripwire 命令来彻底清除,否则安装过程会因为本地密码短语不正确而报错。

(在 Ubuntu 16.04 上测试通过)


0
尝试一些类似的东西
export DEBIAN_FRONTEND=noninteractive 
sudo apt-get install -q -y -o Dpkg::Options::="--force-confdef" \ 
-o Dpkg::Options::="--force-confold" tripwire

从我所看到的情况来看,有一些软件包会忽略 "export DEBIAN_FRONTEND=noninteractive",而是直接打开 Whiptail 对话框。

如果是这种情况,您需要创建一个 expect 脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,