如何預置 debconf 密碼欄位?
我之前問過(並回答了)一個關於如何在 Ubuntu 上預置 debconf 的問題:你如何從以前安裝的包中預置 debconf?
我發現只是附加到 config.dat 文件有效。但是附加到 passwords.dat 文件不起作用,因為它似乎創建了一個空白(或其他不可用的密碼)。passwords.dat preseed 看起來像這樣:
Name: couchdb/adminpass Template: couchdb/adminpass Value: Owners: couchdb Flags: seen Name: couchdb/adminpass_again Template: couchdb/adminpass_again Value: Owners: couchdb Flags: seen
我是否在值欄位中添加任何內容都沒有關係 - 嘗試輸入管理員密碼時 Couch 無論如何都會崩潰。
如何在 debconf 中預配置密碼資訊?
不確定您是否找到了解決方案,但似乎沒有很好或直覺的方法來做到這一點。有一些解決方案,雖然……
首先,您可以從包中嘗試
debconf-set-selections
(手冊頁(不是所有有用的))。這似乎旨在將配置從一台機器鏡像到另一台機器。它接受帶有逐行命令的文件(可能是用. 您也可以通過啟動它並傳遞命令(用於退出),或者您可以通過 echo 管道輸入命令。debconf
debconf-get-selections > my-conf.debconf``STDIN``debconf-get-selections``sudo debconf-set-selections``ctrl-d
輸入語法似乎類似於
[package-name] [package-name]/[question-name] [type] [value]
例如,要將 openssh 伺服器配置為在任何人通過 debconf 安裝 sshd 時預設拒絕 root 密碼,您可以執行
echo "openssh-server openssh-server/permit-root-login boolean false" | sudo debconf-set-selections
或者,您可以使用
debconf-communicate
類似於 的程序,debconf-set-selections
但它允許使用此處找到的命令進行更具互動性的會話。你可以這樣使用它:$ sudo debconf-communicate $ GET openssh-server/permit-root-login $ 0 false $ SET openssh-server/permit-root-login true $ 0 value set $ GET openssh-server/permit-root-login $ 0 true $ FSET openssh-server/permit-root-login seen true $ 0 true $ FGET openssh-server/permit-root-login seen $ 0 true $ SET openssh-server/permit-root-login false $ 0 value set
對於有人突然闖入並編寫更好的 debconf 前端來說,這感覺像是成熟的領域……
顯然,如果您正在編寫腳本,那麼最好的選擇就是
debconf-set-selections
路線。作為最後一點,不幸的是,找出軟體包可用的選項更加困難。您的選擇包括:
- 通過 下載包
sudo apt-get download [package-name] [dir]
,通過 解包dpkg-deb -R [filename] [unpacked-dirname]
,檢查[unpacked-dirname]/DEBIAN/templates
文件;或者- 用於
sudo debconf-show [package-name]
查看已安裝軟體包的配置問題。(請注意,軟體包不必以自己的名義註冊問題。)無論如何,希望對您有所幫助…