Applications/Munge
Contents
Application Details
- Description: It is an authentication service for creating and validating credentials. It is designed to be highly scalable for use in an HPC cluster environment like Viper.
- Version: 0.5.11
- Module: munge/0.5.11
- Licence: GNU
Usage Examples
This module provides the binary for munge and its library component to allow for compilation with external programs.
It allows a process to authenticate the UID and GID of another local or remote process within a group of hosts having common users and groups. These hosts form a security realm that is defined by a shared cryptographic key. Clients within this security realm can create and validate credentials without the use of root privileges, reserved ports, or platform-specific methods.
Module
[username@login01 ~]$ module add munge/0.5.11
Compilation
A C code snippet requiring is shown below:
#define MUNGE_H #include <sys/types.h> /***************************************************************************** * Data Types *****************************************************************************/ /* MUNGE context opaque data type */ typedef struct munge_ctx * munge_ctx_t; /* MUNGE context options */ typedef enum munge_opt { MUNGE_OPT_CIPHER_TYPE = 0, /* symmetric cipher type (int) */ MUNGE_OPT_MAC_TYPE = 1, /* message auth code type (int) */ MUNGE_OPT_ZIP_TYPE = 2, /* compression type (int) */ MUNGE_OPT_REALM = 3, /* security realm (str) */ MUNGE_OPT_TTL = 4, /* time-to-live (int) */ MUNGE_OPT_ADDR4 = 5, /* src IPv4 addr (struct in_addr) */ MUNGE_OPT_ENCODE_TIME = 6, /* time when cred encoded (time_t) */ MUNGE_OPT_DECODE_TIME = 7, /* time when cred decoded (time_t) */ MUNGE_OPT_SOCKET = 8, /* socket for comm w/ daemon (str) */ MUNGE_OPT_UID_RESTRICTION = 9, /* UID able to decode cred (uid_t) */ MUNGE_OPT_GID_RESTRICTION = 10 /* GID able to decode cred (gid_t) */ } munge_opt_t; ...
Compilation is carried out below, in this example the gcc compiler is used. However, the applies similarly to the Intel compiler too.
Applications written in C/C++ can use the interface provided by <munge.h> and link against libmunge.
Scripts can invoke the munge and unmunge executables -- specify -h or --help for usage information, or Read The Fine Manpages.
gcc -o makeMUNGE makeMUNGE.c -llibmunge
Further Information