Re: Unable to set root password with clear text using preseed/early_command
Thanks to Cyril Brulebois’s tip that I could use DEBCONF_DEBUG to debug debconf, I found out the seen flag should be set in order for db_input to pick up the value.
Case solved, thanks to everyone helped!
> On Feb 16, 2022, at 9:52 AM, Glen Huang <heyhgl@gmail.com> wrote:
>
> Thanks for the tip.
>
> I’m not sure if escaping is the issue. I tried directly specifying the password:
>
> debconf-set passwd/root-password passwd1234
> debconf-set passwd/root-password-again passwd1234
>
> Still got prompted.
>
> I tried to debug it with
>
> d-i preseed/early_command string \
> set -x; \
> . /usr/share/debconf/confmodule; \
> db_set passwd/root-password passwd1234; \
> db_set passwd/root-password-again passwd1234; \
> db_input critical passwd/root-password
>
> And the syslog shows RET='value set’ for db_set passwd/root-password, and RET='question will be asked’ for db_input critical passwd/root-password.
>
> It seems the password type is somehow specially handled and could’t be set this way? But very strange that it works when specifying "d-i passwd/root-password password …” in preseed to set it. I’m still unable to locate the code that does the special handling for password type.
>
>> On Feb 16, 2022, at 6:01 AM, Geert Stappers <stappers@stappers.nl> wrote:
>>
>> On Tue, Feb 15, 2022 at 08:08:08PM +0800, Glen Huang wrote:
>>> Hi,
>>>
>>> I want to set the root password to a random string. this is the preseed I use:
>>>
>>> d-i preseed/early_command string \
>>> pw="$(tr -dc A-Za-z0-9 </dev/urandom | head -c 24)"; \
>>> debconf-set passwd/root-password "$pw"; \
>>> debconf-set passwd/root-password-again "$pw"
>>>
>>> However, the installer still prompts me for the root password.
>>>
>>> Setting the crypted password works though:
>>>
>>> d-i preseed/early_command string \
>>> debconf-set passwd/root-password-crypted '<crypted-string>'
>>>
>>> Directly setting the password also works:
>>>
>>> d-i passwd/root-password password r00tme
>>> d-i passwd/root-password-again password r00tme
>>>
>>> From https://sources.debian.org/src/user-setup/1.88/user-setup-ask/#L36,
>>> it seems the installer will ask for the root password if
>>> root-password-crypted is empty or !. My guess is that in the direct
>>> version, somehow root-password-crypted gets a corresponding value when
>>> only root-password and root-password-again are set, but I couldn't
>>> find the code responsible for that.
>>>
>>> I'd be grateful if anyone could shed some light.
>>>
>>
>> Completely UNtested, a.k.a. sharing a thought:
>>
>> d-i preseed/early_command string \
>> tr -dc A-Za-z0-9 </dev/urandom | head -c 24 > /tmp/pw ; \
>> cat /tmp/pw | debconf-set passwd/root-password - ; \
>> cat /tmp/pw | debconf-set passwd/root-password-again -
>>
>>
>> Groeten
>> Geert Stappers
>> Not knowing how much of the early_command_string gets into log file.
>> --
>> Silence is hard to parse
>>
>
Reply to: