[LEDE-DEV] Procd and askconsole
John Crispin
john at phrozen.org
Tue Sep 20 00:42:53 PDT 2016
Hi Pierre,
the bahaviour you are observing is actually by design. would it be an
option to ship a default unknown password on your device. that way login
simply wont work until you have set you custom per-device password. you
could then do so as the last step of your customs scripts.
would that be an option ?
John
On 20/09/2016 09:40, Lebleu Pierre wrote:
> Hi John,
>
> Thank you for your answer.
>
> I tried your solution but it seems not to work or it does not do what I want.
> Indeed, the password is one thing but there is also the fact that the system is not ready (the scripts are still running).
> As we can see, the hostname is not even set. I would like to allow the user login only when everything is ready, because
> the filesystem is about to be modified.
>
> Cheers,
>
>
> Pierre
>
> -----Original Message-----
> From: John Crispin [mailto:john at phrozen.org]
> Sent: vrijdag 16 september 2016 11:18
> To: Lebleu Pierre <Pierre.Lebleu at technicolor.com>; lede-dev at lists.infradead.org
> Subject: Re: [LEDE-DEV] Procd and askconsole
>
>
>
> On 16/09/2016 10:48, Lebleu Pierre wrote:
>> Hi all,
>>
>> I am new to this mailing list and I would like to present me as Pierre.
>>
>> I recently play a bit with procd and I found an "issue". Indeed, if I
>> do a factory reset, I am able to login as root without login. I have
>> some scripts in /etc/uci-defaults and one of them set the password for
>> the root account. So, this behaviour looks like to me a bug.
>>
>> For my understanding, when procd reaches STATE_INIT, it runs the
>> inittab and one of them is "askconsole". The problem is the system is
>> not completely ready to receive the user : the hostname is not even
>> set.
>>
>> In the old sysvinit, the inittab contains an entry called "bootwait"
>> wich is executed after the termination of init (eg : "/etc/rc.d").
>> I purpose to move the "askconsole" entry to STATE_RUNNING or to create
>> a new entry called "askconsolewait" in order to keep backward
>> compatibility.
>>
>> diff --git a/inittab.c b/inittab.c
>> index ae2c431..2d590e4 100644
>> --- a/inittab.c
>> +++ b/inittab.c
>> @@ -228,6 +228,10 @@ static struct init_handler handlers[] = {
>> .name = "respawn",
>> .cb = rcrespawn,
>> .multi = 1,
>> + }, {
>> + .name = "askconsolewait",
>> + .cb = askconsole,
>> + .multi = 1,
>> }
>> };
>>
>> @@ -251,11 +255,9 @@ void procd_inittab_run(const char *handler)
>>
>> list_for_each_entry(a, &actions, list)
>> if (!strcmp(a->handler->name, handler)) {
>> - if (a->handler->multi) {
>> - a->handler->cb(a);
>> - continue;
>> - }
>> a->handler->cb(a);
>> + if (a->handler->multi)
>> + continue;
>> break;
>> }
>> }
>> diff --git a/state.c b/state.c
>> index 4ad9e2d..fe37419 100644
>> --- a/state.c
>> +++ b/state.c
>> @@ -128,6 +128,7 @@ static void state_enter(void)
>>
>> case STATE_RUNNING:
>> LOG("- init complete -\n");
>> + procd_inittab_run("askconsolewait");
>> break;
>>
>> case STATE_SHUTDOWN:
>>
>> What is your view ? Thank you.
>>
>> Cheers,
>>
>> Pierre
>>
>> _______________________________________________
>> Lede-dev mailing list
>> Lede-dev at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/lede-dev
>>
>
> Hi Pierre,
>
> just to be clear, you mean that there is a short timeslot between inittab/askconsole and uci-defaults during which a passwordless login is possible and you would liek to prevent this ?
>
> if i understood the problem corretly please simply set
>
> ttylogin=1 here ->
>
> https://git.lede-project.org/?p=source.git;a=blob;f=package/base-files/files/bin/config_generate;h=80ed61b9e2dabf6f2f99102345be3da60097af3e;hb=HEAD#l231
>
> that should make the image boot with password login required even if no password is set.
>
> the normal use case is that one flashes, enables the flag and then upon second bootup the unit will require a login. in your use case you already want the password protection on the very first boot i think
>
> John
>
More information about the Lede-dev
mailing list