sized types and more krb lib lossage...
John Hawkinson
jhawk at MIT.EDU
Mon Mar 2 21:51:43 CET 1998
| For the athena.mit.edu-case it would be `afs at ATHENA.MIT.EDU' which is
| correct, but for the sipb.mit.edu-case it would try with
| `afs at SIPB.MIT.EDU' which is wrong?
Err, sort-of. afs.athena.mit.edu at ATHENA.MIT.EDU and
afs.sipb.mit.edu at ATHENA.MIT.EDU are correct...
Actually, some more information. I wasn't quite as careful
as I should have been -- for the non- athena cell case, there's
a soft failure, but things keep going:
error getting ticket for SIPB.MIT.EDU
Getting root...
arla loop started
arla> cred-stat
1(100) credentials
cred = 0, type = 0, securityindex = 0
cell = 0, refcount = 1, killme = 0
arla>
and things worked w/o authentication. Interestingly:
Breakpoint 1, main (argc=2, argv=0xeffff644)
at /afs/sipb/project/arla/src/arla/arlad/arla.c:450
450 char *realm = strdup(cell_getthiscell ());
(gdb) next
452 strupr(realm);
(gdb) next
454 if (get_cred("afs","",realm, &krbdata.c)p) {
(gdb) print realm
$1 = 0x1dfea8 "SIPB.MIT.EDU"
(gdb) call strcpy(realm,"ATHENA.MIT.EDU")
$2 = 1965736
(gdb) c
Continuing.
Getting root...
arla loop started
arla> cred-stat
2(100) credentials
cred = 0, type = 0, securityindex = 0
cell = 0, refcount = 1, killme = 0
cred = 10786, type = 1, securityindex = 2
cell = 90, refcount = 0, killme = 0
| And why is it getting wrong key version against athena.mit.edu?
Is that a key *version* issue? I'm a bit puzzled where the
volcache: VL_GetEntryByName(root.afs) failed: 19270408
is coming from, though, since RXKADUNKNOWNKEY only seems to be
returned by decode_krb4_ticket(), which gets called via a function
pointer that gets initialized in rxkad_NewServerSecurityObject, which
doesn't seem to get called anywhere and doesn't seem to be in the
final binary.
Ergo, RXKADUNKNOWNKEY is getting set somewhere else,
but I don't know where.
So, this seems to fix things, but obviously isn't right:
Index: arla.c
===================================================================
RCS file: /afs/sipb/project/arla/repository/arla/arlad/arla.c,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 arla.c
***************
*** 447,457 ****
if (strcmp (argv[1], "-t") == 0) {
#ifdef KERBEROS
{
char *realm = strdup(cell_getthiscell ());
strupr(realm);
! if (get_cred("afs","",realm, &krbdata.c)) {
ARLADEB(ADEBINIT, ("error getting ticket for %s\n",
realm));
} else if (cred_add_krb4(getuid(), &krbdata.c) == NULL) {
--- 447,458 ----
if (strcmp (argv[1], "-t") == 0) {
#ifdef KERBEROS
{
+ char *instance = strdup(cell_getthiscell ());
char *realm = strdup(cell_getthiscell ());
strupr(realm);
! if (get_cred("afs", instance, realm, &krbdata.c)) {
ARLADEB(ADEBINIT, ("error getting ticket for %s\n",
realm));
} else if (cred_add_krb4(getuid(), &krbdata.c) == NULL) {
Later I'll poke around in aklog and try and see what the
real fix should be.
Getting root...
arla loop started
arla> cred-stat
1(100) credentials
cred = 10786, type = 1, securityindex = 2
cell = 0, refcount = 1, killme = 0
Also, following symlinks doesn't seem to work:
arla> cd athena
read_data
read_data
arla> ls
adir_readdir failed: 20
[portnoy!jhawk] /afs> ls -ld athena
lrwxr-xr-x 1 80176 root 14 Feb 17 1993 athena -> athena.mit.edu
--jhawk
More information about the Arla-drinkers
mailing list