Coder Social home page Coder Social logo

macathena's Introduction

MacAthena

Welcome to MacAthena

The MacAthena project is working to bring the functionality of the Athena system to your Mac OS X Tiger, Leopard, Snow Leopard, Lion, Mojave, or Catalina machine.

MacAthena is a project of SIPB. If you have questions or comments, please contact the MacAthena maintainers.

Installing MacAthena

The instructions to install MacAthena are on a separate page.

Goals

Eventually, the MacAthena project would like to offer:

  • Full command-line compatibility with Linux Athena
  • Cocoa applications to provide easy-to-use interfaces to common Athena tasks
  • A package based system allowing MacAthena users to setup anything from a few utilities to a system with Kerberos-based logins and AFS home directories
  • Support in common lockers, providing MacAthena users with access to the wealth of software available in AFS

What We Have

At this point, we have the following major features:

Available by installing macathena-basic

/mit automounter - Access AFS lockers simply accessing paths of the form /mit/locker, eliminating the need to actually attach lockers.
add
Moira clients, including blanche, stella, and moira 

Available by Installing macathena-standard

(Many of these commands are not frequently used, but some locker programs depend on their presence)

athinfo
delete
discuss
get-cluster
just
machtype 

FAQ

Q: Package xyz that I really care about isn't in MacAthena! Why not?

A: Well, it's possible we just haven't tried to port it yet, or maybe we haven't gotten it to work. We keep a list of packages we're having a hard time porting.

Starting Points

For a complete list of local wiki pages, see TitleIndex.

macathena's People

Contributors

ebroder avatar miriam-rittenberg avatar quentinmit avatar tthoma24 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

macathena's Issues

MIT krb5 (homebrew/dupes/krb5)

Via MIT Zephyr (-c leee -i mac.ssh):

leee: discussion: seeing as heimdal kerberos doesn't respect various things, should we enforce use of krb5?
tthoma24: Yes
tthoma24: You probably want that, since anyone with an extra or root instance using Duo 2FA needs to use MIT Kerberos for 2FA to work
leee: only if they ask isnt to enable 2fa on that principal, but yes good point.

@ericmlujan and @glasswyrm - thoughts?

moira (macathena/moira)

I originally built/packaged an old copy of github.mit.edu:ops/moira and submitted a pull request in caskroom-cask for inclusion, but that PR has since become stale due to lack of maintainer action.

Since then, the moira upstream, github.mit.edu:ops/moira, has been made readable and a snapshot of it imported into mit-athena/moira, both of which includes my strmove() fix.

Therefore, I believe it would make better sense now to punt the homebrew-cask PR and write a Formula for the moira clients for inclusion in homebrew-core.

Maintain pre-existing config files after installation of MacAthena packages

We really need a way to preserve pre-exisiting config files (e.g /etc/ssh/ssh_config, /Library/Preferences/edu.mit.kerberos) when installing the relevant Athena packages (e.g macathena-ssh-config, macathena-kerberos-config). This is functionality similar to the config-package-dev DebAthena package.

Obvious use cases for needing this are to prevent overwriting pre-customized configs, and to restore the machine to a sensible state when uninstalling these packages.

Get zephyr to compile on OS X

There are a few issues i've run into when trying to compile Zephyr on OS X.

  • The configure script provided can't complete because it can't find libresolv. This is a known issue with OS X and how it provides libresolv. There is a workaround that's been detailed to me by achernya, but doing it right will take some integration work.

  • Looks like the Makefile generated depends on some binaries from krb5-test, namely compile_et for error table generation and mk_cmds. compile_et is provided in the /usr/local/opt/krb5 directory when the krb5 formula is installed by brew, but the configure script needs to add that to the PATH, and mk_cmds doesn't appear to be anywhere in there.

moira(1) abort traps due to overlapping buffers

Originally reported by @tthoma24.

strcpy() does not allow for overlapping buffers (src and dest). In practice, this isn't a problem (and doesn't manifest itself in any form on RHEL and Debian), but macOS/OS X thinks otherwise.

I wrote strmove() in the following patch on top of mit-athena/moira and submitted it, which was accepted and checked in upstream at github.mit.edu:ops/moira with analogous modifications to the moira server and other places outside of the clients.

From b8b043400a4e790be64ffbd6a859b56794629388 Mon Sep 17 00:00:00 2001
From: Eugene Lee <[email protected]>
Date: Mon, 10 Oct 2016 01:27:09 -0400
Subject: [PATCH 1/3] Provide strmove(), the str-equivalent of memmove().

Signed-off-by: Eugene Lee <[email protected]>

---
 moira/include/moira.h | 1 +
 moira/lib/strs.c      | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/moira/include/moira.h b/moira/include/moira.h
index fbe00a1..483cad9 100644
--- a/moira/include/moira.h
+++ b/moira/include/moira.h
@@ -137,6 +137,7 @@ int sq_empty(struct save_queue *sq);
 void sq_destroy(struct save_queue *sq);

 /* prototypes from strs.c */
+char *strmove(char *s, char *s);
 char *strtrim(char *s);
 char *uppercase(char *s);
 char *lowercase(char *s);
diff --git a/moira/lib/strs.c b/moira/lib/strs.c
index bb85160..e193f5d 100644
--- a/moira/lib/strs.c
+++ b/moira/lib/strs.c
@@ -16,6 +16,13 @@
 RCSID("$HeadURL$ $Id$");

 /*
+ * memmove for strings.
+ */
+char *strmove(char *dest, char *src) {
+  return memmove(dest, src, strlen(src)+1);
+}
+
+/*
  * Trim whitespace off both ends of a string.
  */
 char *strtrim(char *save)
-- 
2.10.0


From 12381e999296ccf7886a924e754af7b22312af79 Mon Sep 17 00:00:00 2001
From: Eugene Lee <[email protected]>
Date: Mon, 10 Oct 2016 01:39:28 -0400
Subject: [PATCH 2/3] Replace only call of strcpy(strtrim) with strmove in
 moira/clients/moira/menu.c.

Signed-off-by: Eugene Lee <[email protected]>

---
 moira/clients/moira/menu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/moira/clients/moira/menu.c b/moira/clients/moira/menu.c
index bd553a7..7588b9e 100644
--- a/moira/clients/moira/menu.c
+++ b/moira/clients/moira/menu.c
@@ -569,7 +569,7 @@ int Prompt_input(char *prompt, char *buf, int buflen)
       refresh_ms(cur_ms);
       *p = '\0';
       Start_paging();
-      strcpy(buf, strtrim(buf));
+      strmove(buf, strtrim(buf));
       return 1;
     }
   else
-- 
2.10.0


From ca167c2251040c2557c69240e3995c3e301c808e Mon Sep 17 00:00:00 2001
From: Eugene Lee <[email protected]>
Date: Mon, 10 Oct 2016 01:43:47 -0400
Subject: [PATCH 3/3] Fix strmove() prototype.

Signed-off-by: Eugene Lee <[email protected]>

---
 moira/include/moira.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/moira/include/moira.h b/moira/include/moira.h
index 483cad9..d8fb2a3 100644
--- a/moira/include/moira.h
+++ b/moira/include/moira.h
@@ -137,7 +137,7 @@ int sq_empty(struct save_queue *sq);
 void sq_destroy(struct save_queue *sq);

 /* prototypes from strs.c */
-char *strmove(char *s, char *s);
+char *strmove(char *dest, char *src);
 char *strtrim(char *s);
 char *uppercase(char *s);
 char *lowercase(char *s);
-- 
2.10.0

"Unknown code krb5 $n" (homebrew/core/moira)

On homebrew-core'd moira:

leee@null ~> kdestroy
kdestroy: No credentials cache found while destroying cache
leee@null ~> klist
klist: No credentials cache found
leee@null ~> blanche ec-discuss -i
blanche: Unknown code krb5 195 while authenticating to Moira.
blanche: Authentication error while working on list ec-discuss
blanche: Try the -noauth flag if you don't need authentication.

Expected behavior (per a Debathena dialup):

contents-vnder-pressvre:~> kdestroy
kdestroy: No credentials cache found while destroying cache
contents-vnder-pressvre:~> klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_6767)
contents-vnder-pressvre:~> blanche ec-discuss -i
blanche: No credentials cache found while authenticating to Moira.
blanche: Authentication error while working on list ec-discuss
blanche: Try the -noauth flag if you don't need authentication.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.