[PATCH] nologin: new applet.
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Fri Nov 4 13:02:52 UTC 2011
On 4 November 2011 12:41, Natanael Copa <natanael.copa at gmail.com> wrote:
> Displays a message that an account is not available and
> exits non-zero. It is intended as a replacement shell field
> for accounts that have been disabled.
>
> If the file /etc/nologin.txt exists, displays its contents
> to the user instead of the default message.
>
> login_main - 108 +108
> .rodata 101552 101625 +73
> packed_usage 23057 23072 +15
> applet_names 1882 1890 +8
> applet_main 1140 1144 +4
> bbconfig_config_bz2 5214 5217 +3
> applet_nameofs 570 572 +2
> ------------------------------------------------------------------------------
> (add/remove: 2/0 grow/shrink: 6/0 up/down: 213/0) Total: 213 bytes
> text data bss dec hex filename
> 888199 6311 4712 899222 db896 busybox_old
> 888436 6315 4712 899463 db987 busybox_unstripped
>
> Signed-off-by: Natanael Copa <ncopa at alpinelinux.org>
> ---
> loginutils/nologin.c | 41 +++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 41 insertions(+), 0 deletions(-)
> create mode 100644 loginutils/nologin.c
>
> diff --git a/loginutils/nologin.c b/loginutils/nologin.c
> new file mode 100644
> index 0000000..521538e
> --- /dev/null
> +++ b/loginutils/nologin.c
> @@ -0,0 +1,41 @@
> +/* vi: set sw=4 ts=4: */
> +/*
> + * nologin implementation for busybox
> + *
> + * Licensed under GPLv2 or later, see file LICENSE in this source tree.
> + */
> +
> +//config:config NOLOGIN
> +//config: bool "nologin"
> +//config: default n
> +//config: help
> +//config: displays a message that an account is not available and
> +//config: exits non-zero. It is intended as a replacement shell field
> +//config: for accounts that have been disabled.
> +//config:
> +//config: If the file /etc/nologin.txt exists, displays its contents
> +//config: to the user instead of the default message.
> +
> +//applet:IF_NOLOGIN(APPLET(nologin, BB_DIR_SBIN, BB_SUID_DROP))
> +//kbuild:lib-$(CONFIG_NOLOGIN) += nologin.o
> +
> +//usage:#define nologin_trivial_usage
> +//usage: ""
> +//usage:#define nologin_full_usage "\n\n"
> +//usage: "politely refuse a login\n"
> +
> +#include "libbb.h"
> +#include <syslog.h>
remove include?
> +
> +int nologin_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
> +int nologin_main(int argc UNUSED_PARAM, char **argv)
> +{
> + int fd;
> + fd = open("/etc/nologin.txt", O_RDONLY);
> + if (bb_copyfd_eof(fd, STDOUT_FILENO) == -1)
> + bb_error_msg_and_die("this account is not available");
Capital 'T'his
> + if (ENABLE_FEATURE_CLEAN_UP)
> + close(fd);
> + return 1;
> +}
> +
> --
> 1.7.7.2
More information about the busybox
mailing list