Greenpass keeps a text file for every user in the system. The files are store as sexp dumps in the gpradsrc/gpInfo directory. These files allow persistance of permissions accross server restarts. All the files in the directory are automatically loaded on startup.
Greenpass keeps an internal map of users in memory. The map in memory is user to confirm or deny a users permissions.
Greenpass has three commands related to keeping the file and dynamic maps in sync:
Greenpass by default generates a log file in $GREENPASS_HOME/gpradsrc/jdaemons/AuthServer.log. This location and the amount of information logged can be changed by updating flags in the startauthserver.sh script.
A simple script to make working with the JDSIAuthServer easier. $GREENPASS_HOME/gpradsrc/scripts/adminAuthServer.sh sends commands to a running instance (via the listening port) and reports outcomes. The arguments needed for use change depending on the command.
User information is stored under the public key, since that is the certain link to the user. Since cryptographic keys are hard to use, Greenpass allows (and encourages) delegators to enter label text to usefully identify guests. When viewing the list of users, the public key and label text info (if any) is displayed. Only the public key information should be considered at all reliable or verified; Greenpass makes no assertions about the validity of certificates or text info associated with any keypair.
Each delegated user in Greenpass has one or more Ancestors or Children, tracing all the way back to the SOA, who have delegated access. For example, Alice the Admin is a bootstrapped user. Alice delegates access to Bob the department head. Bob delegates access to Charlie the guest professor. Charlies ancestors are Bob and Alice. Example output:
# ./adminAuthServer.sh display e4daf9fb8fb2221291a933a2f3e61754
Setting command to display
------------------------------------
User=e4daf9fb8fb2221291a933a2f3e61754
Label info:Charlie
Expiration:2006/5/7
Propogation:P:Y
Status=UNAUTHORIZED: EXPIRED
Users parents:
+Alice 2006/3/30 406a1c222aae4fbcedb5ac2025790d7b
+Bob 2006/3/30 45954bd5ff83fe219094d1dc1d94fa8b
Certs authorized by user:
-Doug 2006/3/9 cc67ac5c65950ae720156d323bc19b24 P:N
-Dave 2006/3/9 66c6b4d6fb449dfcbb211c0b0c9eff94 P:N
------------------------------------
Shows the information for Charlie, who was delegated to by Bob, and has delegated to Doug and Dave.
Alice is the root level certificate.
#./adminAuthServer.sh display 406a1c222aae4fbcedb5ac2025790d7b
Setting command to display
------------------------------------
User=406a1c222aae4fbcedb5ac2025790d7b
Label info:Alice
Expiration:2006/4/6
Propogation:P:Y
Status=UNAUTHORIZED: EXPIRED
Root level certificate; authorized by the source of authority.
Certs authorized by user:
-Bob 2006/4/6 45954bd5ff83fe219094d1dc1d94fa8b P:Y
-Bill 2006/4/6 4830741acbc2e6c3052a45262bb2b365 P:Y
-Beth 2006/4/6 aeb28312d125a85e2e97e244d239dde8 P:Y
------------------------------------
Alice was bootstrapped, with permission directly from the SOA keypair.