debconf 비밀번호 필드를 어떻게 미리 설정하나요?

debconf 비밀번호 필드를 어떻게 미리 설정하나요?

나는 이전에 Ubuntu에서 debconf를 프로비저닝하는 방법에 대해 질문하고 답변한 적이 있습니다.이전에 설치된 패키지에서 debconf를 어떻게 사전 설정합니까?

config.dat 파일에 추가하는 것만으로도 효과가 있다는 것을 알았습니다. 그러나 Passwords.dat 파일에 추가하면 공백(또는 기타 사용할 수 없는 비밀번호)이 생성되는 것처럼 보이기 때문에 작동하지 않습니다. Passwords.dat 사전 설정은 다음과 같습니다.

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에서 비밀번호 정보를 사전 구성하는 방법은 무엇입니까?

답변1

해결책을 찾았는지 확실하지 않지만 이를 수행하는 좋은 방법이나 직관적인 방법은 없는 것 같습니다. 그러나 몇 가지 해결책이 있습니다 ...

먼저 시도해 볼 수 있습니다 debconf-set-selections(매뉴얼 페이지(별로 유용하지 않음))debconf. 이는 한 시스템에서 다른 시스템으로 구성을 미러링하기 위한 것 같습니다. 한 줄씩 debconf-get-selections > my-conf.debconf명령을 사용하여 파일 STDIN(아마도 다른 시스템에서 파이프된)을 허용합니다. (종료를 위해) 명령을 전달하여 debconf-get-selections시작할 수도 있고 , 에코를 통해 명령을 파이프할 수도 있습니다.sudo debconf-set-selectionsctrl-d

입력 구문은 다음과 같습니다.

[package-name] [package-name]/[question-name] [type] [value]

예를 들어, 누구든지 debconf를 통해 sshd를 설치할 때 기본적으로 루트 비밀번호를 거부하도록 openssh 서버를 구성하려면 다음을 실행합니다.

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.

마지막으로, 불행하게도 패키지에 어떤 옵션을 사용할 수 있는지 알아내는 것이 더 어렵습니다. 귀하의 옵션은 다음과 같습니다:

  1. 패키지를 다운로드하고 sudo apt-get download [package-name] [dir]압축을 풀고 파일을 dpkg-deb -R [filename] [unpacked-dirname]검사합니다 .[unpacked-dirname]/DEBIAN/templates
  2. sudo debconf-show [package-name]설치된 패키지의 구성 문제를 보는 데 사용됩니다 . (패키지는 자체 이름으로 이슈를 등록할 필요가 없습니다.)

어쨌든 도움이 되길 바라요...

답변2

허용되는 답변에서 언급했듯이 debconf-set-selections진행 방법은 다음과 같습니다.

기본적으로 먼저 패키지를 수동으로 설치한 다음 debconf 데이터베이스에서 어떤 항목이 생성되었는지 확인해야 합니다(어떻게 했는지 기억이 나지 않습니다. 죄송합니다).

.sh그런 다음 이러한 항목을 미리 시드하는 스크립트를 만들 수 있습니다 . 다음 코드는 CouchDB 2.0 패키지 설치 프로그램을 미리 시드하는 방법을 보여줍니다.

HOST = aaa
USER = bbb
COUCH_PSWD = ccc

debconf-set-selections <<< 'couchdb couchdb/bindaddress string 0.0.0.0';
debconf-set-selections <<< 'couchdb couchdb/cookie string monster';
debconf-set-selections <<< 'couchdb couchdb/mode string clustered';
debconf-set-selections <<< 'couchdb couchdb/nodename string couchdb@#{HOST}';
debconf-set-selections <<< 'couchdb couchdb/adminpass password #{COUCH_PSWD}';
debconf-set-selections <<< 'couchdb couchdb/adminpass_again password #{COUCH_PSWD}';

관련 정보