mirror of
https://github.com/troglobit/finit.git
synced 2026-10-02 05:52:48 +07:00
Dont hard-code nologin file
It's configurable in /etc/login.defs as NOLOGINS_FILE, avoid to hard coding it here, introduce a macro FINIT_NOLOGIN_PATH instead which is configurable from compiler flags, it's not defined, then back to _PATH_NOLOGIN from /usr/include/paths.h. Signed-off-by: Ming Liu <liu.ming50@gmail.com>
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "config.h" /* Generated by configure script */
|
||||
|
||||
#include <paths.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "finit.h"
|
||||
@@ -38,6 +39,10 @@
|
||||
|
||||
sm_t sm;
|
||||
|
||||
#ifndef FINIT_NOLOGIN_PATH
|
||||
#define FINIT_NOLOGIN_PATH _PATH_NOLOGIN /* Stop user logging in. */
|
||||
#endif
|
||||
|
||||
void sm_init(sm_t *sm)
|
||||
{
|
||||
sm->state = SM_BOOTSTRAP_STATE;
|
||||
@@ -76,16 +81,16 @@ static char *sm_status(sm_state_t state)
|
||||
* Disable login in single user mode and shutdown/reboot
|
||||
*
|
||||
* Re-enable only when going from these runlevels, this way a user can
|
||||
* manage /etc/nologin manually within the other runlevels without us
|
||||
* pulling the rug from under their feet.
|
||||
* manage FINIT_NOLOGIN_PATH manually within the other runlevels without
|
||||
* us pulling the rug from under their feet.
|
||||
*/
|
||||
static void nologin(void)
|
||||
{
|
||||
if (runlevel == 1 || runlevel == 0 || runlevel == 6)
|
||||
touch("/etc/nologin");
|
||||
touch(FINIT_NOLOGIN_PATH);
|
||||
|
||||
if (prevlevel == 1 || prevlevel == 0 || prevlevel == 6)
|
||||
erase("/etc/nologin");
|
||||
erase(FINIT_NOLOGIN_PATH);
|
||||
}
|
||||
|
||||
void sm_set_runlevel(sm_t *sm, int newlevel)
|
||||
|
||||
Reference in New Issue
Block a user