8 stable releases
3.1.0 | Jul 27, 2024 |
---|---|
3.0.3 | Jul 27, 2024 |
2.0.0 | Oct 24, 2022 |
1.0.1 | Feb 24, 2022 |
1.0.0 | Feb 2, 2022 |
#593 in Command line utilities
166 downloads per month
24KB
461 lines
omst
Reveals whomst thou art with a single character.
License
Available via the Anti-Capitalist Software License for individuals, non-profit organisations, and worker-owned businesses.
Installation
Just build omst
and omst-be
for your system and install them in /usr/bin
.
Usage
omst
prints one of five characters based upon your effective user permissions:
#
for absolute permissions (i.e.root
, administrator)@
for system users$
for ordinary users%
for restricted users (e.g.nobody
, guest)?
if any error occurs
In all cases, the character is followed by a newline. If an error occurs, the exit status will be
nonzero; to see full errors, run omst-be
instead.
System support
Currently, unix-family systems (via libc & shadow) and Windows (via WinAPI) are supported. Android support is currently unavailable.
Mac OS and iOS are supported on a "coincidental" basis, meaning that if it happens to work under the existing code, nice! Otherwise, no substantial code will be added for these targets, since Apple does not make it easy to test software on their platforms without dedicated hardware.
Implementation specifics
Under unix-family systems, the permissions are mapped based upon the effective user ID
(libc::getuid
) and the UID_MIN
and UID_MAX
fields of /etc/login.defs
:
Absolute
: UID 0 (usually, but not always theroot
user)System
: BelowUID_MIN
User
: BetweenUID_MIN
andUID_MAX
(inclusive)Guest
: AboveUID_MAX
Under Windows, the permissions are mapped based upon the priv
field of the USER_INFO
struct:
Absolute
:USER_PRIV_ADMIN
System
: Unused (Windows doesn't have system users)User
:USER_PRIV_USER
Guest
:USER_PRIV_GUEST
Dependencies
~215KB