After invoking "kill keyfs | rc ; auth/keyfs" I can see the users
directories under /mnt/keys. But I still can not cpu with the
login name of other users:

    cpu: can't authenticate: grunt: auth_proxy rpc write: (black
    square)bootes: connection timed out


the way an auth server works is by linking together several programs:
keyfs, authsrv and listen. keyfs decrypts the users passwords (keys)
and serves them as a plan9 file system, listen accepts connections on
the auth port (tcp 567) and starts authsrv to verify passwords against
keys in keyfs.

when you kill keyfs it disappears from the namespace in which listen
was started and consequently authsrv can't read the keys, hence the
requirement to reboot the machine (therefore rebuilding the right
namespace).

having written this just now, i think you may be starting keyfs after
you start aux/listen in cpurc. you may want to look for that.

now, to verify what keyfs thinks it has the same passwords as the ones
you've given to the users you will have to navigate the directories it
serves. you'll find the password in plaintext there. having the
password in plaintext is one of the reasons /mnt/keys should be empty
when you cpu to a machine.

to ensure that auth/changeuser sets the password correctly you need to
verify that /mnt/keys is populated before you run auth/changeuser. one
way to do it is the aforementioned killing/restarting of keyfs, which
is what i use to add new users to machines where i have no physical
access handy.

Reply via email to