summaryrefslogtreecommitdiffstats
path: root/doc/nis-compatibility.txt
blob: 75c33b7cd6e12963ea4cb7781de302808fcace50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
NIS itself consists of approximately a dozen RPC functions.  In RPC
parlance, the yppasswd protocol, which provides a means of remotely
changing passwords and GECOS information, is a wholly different
protocol, and no attempt has been made to implement any part of it in
this plugin.  The rationale for this is that browser-based self-service
solutions for this problem are assumed to be plentiful, and as the
yppasswd protocol doesn't encrypt passwords when they're sent over the
network, it's best avoided if possible.

Getting back to NIS, the protocol consists of several remote procedure
call interfaces which a server is expected to provide, and compatibility
can most simply be described by noting differences between this
implementation and typical NIS server implementations.

YPPROC_NULL
  This function doesn't actually do anything.  Fully implemented.

YPPROC_DOMAIN
YPPROC_DOMAIN_NONACK
  These functions are used by a client's ypbind daemon to verify that a
  particular server contains maps for a given domain.  Fully implemented.

YPPROC_MATCH
  This function searches for one entry in a map, and is typically what
  the "ypmatch" command-line utility uses.  Fully implemented.

YPPROC_FIRST
  This function retrieves the first entry in a map.  Fully implemented.

YPPROC_NEXT
  This function retrieves the entry in a map which immediately follows
  another, specified, entry in the map.  The combination of YPPROC_FIRST
  and YPPROC_NEXT provides one mechanism for clients to walk the entire
  set of entries in a map.
 
  While typical NIS servers have a defined order for entries in maps
  (that order usually being the same as the ordering used in the files
  which were used to generate the maps), a directory server does not
  define such an order, so while this function can still be used to
  retrieve all of the entries in a map, no guarantee can be made with
  respect to the order in which those entries will be found.

YPPROC_ALL
  This function retrieves all of the entries in a map, and is typically
  what the "ypcat" command-line utility uses.  Fully implemented.

YPPROC_MASTER
  This function retrieves the name of the NIS server which is the master
  (in replication scenarios) for a specified map.  Because replication
  of data is handled at the directory server level, this function is a
  no-op.

YPPROC_CLEAR
  This function typically instructs a NIS server to close and reopen the
  file from which it is reading the contents of a map.  Because the
  plugin updates its maps at the same time the data on which those maps
  depend is modified, this function is a no-op.

YPPROC_XFR
  This function typically instructs a NIS server to re-fetch a map from
  the server which is the master for the map.  Because replication of
  data is handled at the directory server level, this function is a
  no-op.

YPPROC_ORDER
  This function retrieves the time that a specified map was last
  modified, typically used by a replica NIS server to determine when it
  needs to fetch an updated set of map entries.  Fully implemented.

YPPROC_MAPLIST
  This function retrieves the list of maps defined for the specified
  domain.  While there is no typical command-line utility which fetches
  this information, the source tree includes a python script which calls
  this function and prints its results.  Fully implemented.