securetty.c 718 B

1234567891011121314151617181920212223242526
  1. /* vi: set sw=4 ts=4: */
  2. /*
  3. * /etc/securetty checking.
  4. *
  5. * Licensed under GPLv2, see file LICENSE in this source tree.
  6. */
  7. #include "libbb.h"
  8. #if ENABLE_FEATURE_SECURETTY && !ENABLE_PAM
  9. int FAST_FUNC is_tty_secure(const char *short_tty)
  10. {
  11. char *buf = (char*)"/etc/securetty"; /* any non-NULL is ok */
  12. parser_t *parser = config_open2("/etc/securetty", fopen_for_read);
  13. while (config_read(parser, &buf, 1, 1, "# \t", PARSE_NORMAL)) {
  14. if (strcmp(buf, short_tty) == 0)
  15. break;
  16. buf = NULL;
  17. }
  18. config_close(parser);
  19. /* buf != NULL here if config file was not found, empty
  20. * or line was found which equals short_tty.
  21. * In all these cases, we report "this tty is secure".
  22. */
  23. return buf != NULL;
  24. }
  25. #endif