The worlds smallest login/passwd/getty/etc

TinyLogin is a suite of tiny Unix utilities for handling logging into, being authenticated by, changing one's password for, and otherwise maintaining users and groups on an embedded system. It also provides shadow password support to enhance system security. TinyLogin is, as the name implies, very small, and makes an excellent complement to BusyBox on an embedded system (though it can of course be used without).

TinyLogin is maintained by Erik Andersen, and licensed under the GNU GENERAL PUBLIC LICENSE.

Download

- Source for the latest release can always be downloaded from http://tinylogin.busybox.net/downloads/.
- A new snapshot of the source is made daily and is available as a GNU gzipped tarball right here.
- TinyLogin now has its own publically browsable CVS tree, anonymous CVS access, and for those that are actively contributing there is even CVS write access.
- You might also want to check out BusyBox, which nicely complements TinyLogin.

Latest News

- 3 January 2003 -- TinyLogin 1.4 released
  This release fixes several small bugs, most notably, a missing /etc/securetty file is no longer considered an error by login (and there was much rejoicing). As usual, source can be grabbed here.

- 18 September 2002 -- TinyLogin 1.2 released
  This release fixes several bugs, including some buffer overflows in the internal password and group handling code, (only affects people setting USE_SYSTEM_PWD_GRP=false). As usual, source can be grabbed here.

- 26 April 2002 -- TinyLogin 1.02 released
  This release changes the login applet so it will invoke a login shell (not just a normal shell), fixes 'make clean' so it doesn't leave things behind, and actually includes the updwtmp() change this time. Other that that, there are no significant changes. As usual, source can be grabbed here.

- 9 April 2002 -- TinyLogin 1.01 released
  This release syncs with current versions of uClibc, avoiding a compile problem. Other that that, there are no significant changes. As usual, source can be grabbed here.

- 5 February 2002 -- TinyLogin 1.00 released
  This release provides a number of usability fixes and code cleanup. There have been no major recent changes -- this is simply a collection of all the little fixes that have collected since the last release. Anyone using TinyLogin 0.80 should probably upgrade if possible. The Changelog is here and the source can be grabbed here.

- 26 December 2000 -- TinyLogin 0.80 released
  This release contains some important security fixes, drops permissions as soon as possible, by default bypasses GNU libc NSS (so resultant systems don't even need /lib/libnss* anymore), adds vlock, adds a 'tinylogin --install' command, uses relative symlinks on 'make install', compiles with glibc, libc5 and uClibc, and is generally cleaner and tighter code. The changelog can be found here and source can be grabbed here.

- 21 June 2000 -- TinyLogin 0.78 released
  This release contains some important security fixes, so anyone currently using tinylogin is strongly encouraged to upgrade.

- 10 January 2000 -- TinyLogin 0.76 released
  This is the first public release of tinylogin. It provides tinylogin, adduser, addgroup, deluser, delgroup, login, sulogin, passwd, and getty. Binary size with everything compiled in is 37k. The changelog can be found here.

- 10 January 2000 -- TinyLogin Website
  TinyLogin now has a web site. Eventually I'll be adding documentation, howto information, and information of the latest release.

Documentation

Current documentation for TinyLogin includes:

- TinyLogin.html
  This is a list of the all the available commands in TinyLogin with some basic usage information. In upcoming releases, I will include complete usage information and examples of how to use each app. If you find any errors (factual, grammatical, whatever) please let me know.
- TinyLogin bugs
- TinyLogin mailing list
- More documentation will follow.

Important Links

- Freshmeat AppIndex record for TinyLogin
- BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find on a standard Linux system.

- uClibc is a C library for embedded systems. You can actually statically link a "Hello World" application under x86 that only takes 4k (as opposed to 200k under GNU libc). It can do dynamic linking too and works nicely with BusyBox to create very small embedded systems.

Mail all comments, insults, suggestions and bribes to Erik Andersen |  |  |  |  |