[ You'll probably want a wide window to view the output lines here. I could probably have the program break them up a bit, but some of the data fields are pretty long and might wrap anyway, and it's not clear that multiline entries would be more readable. ]

Michael Kearney wrote:
I note that the show option already has a lowercase -v option.
The -v option shows how the mapping was generated and also
whether the mapping was just generated or was retrieved from the cache.

How are -v and -V different?

-v reports the _one_ mechanism chosen and some data about it. It does not report the other mechanisms attempted, or the possibly convoluted path that led from the input to the output. While it's helpful, it has proven inadequate.

For instance, given a Windows user [email protected] and a mapping rule
   $ idmap list
   add     winname:[email protected]   unixuser:badunix

idmap show -cv says:
   $ idmap show -cv [email protected]
   winuser:[email protected] -> uid:60001
   Error:  Mapping not found or inhibited
   Failed Method:  Name Rule
   Rule:   add     winname:[email protected]   unixuser:badunix

That's actually not too bad; although it doesn't point straight at the problem, it at least reports the name that couldn't be found.

-V, on the other hand, documents each step in the mapping process. idmap show -cV says the following. (Note that since it's an error case you get the "-v" output for free.)

   $ idmap show -cV [email protected]
   winuser:[email protected] -> uid:60001
   Error:  Mapping not found or inhibited
   Failed Method:  Name Rule
   Rule:   add     winname:[email protected]   unixuser:badunix
       winname [email protected] -> unknown - Start mapping
       winname [email protected] -> unixname - Not a well-known account
       winname [email protected] -> unixname - Not a local SID
       winname [email protected] -> unixname - Not found in mapping cache
       winname [email protected] -> unixname - Not found in name cache
winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - AD lookup winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - Matching rule: [email protected] -> badunix winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - badunix not found, error winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - Rule-based mapping error=-9981 winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser 60001 Error -9981 - Done


Here's a more subtle case.  Given this rule:

   $ idmap list
   add     winname:*[email protected]        unixuser:*

   $ idmap show -cv [email protected]
   winuser:[email protected] -> uid:2147516418
   Source: New
   Method: Ephemeral

Note that -v doesn't tell us why we ended up with an Ephemeral mapping instead of using the rule.

   $ idmap show -cV [email protected]
   winuser:[email protected] -> uid:2147516419
[[ BTW: it's a different ephemeral ID because I wiped the cache between the two examples ]]
   Trace:
           winname [email protected] -> unknown - Start mapping
winname [email protected] -> unixname - Not a well-known account
           winname [email protected] -> unixname - Not a local SID
winname [email protected] -> unixname - Not found in mapping cache
           winname [email protected] -> unixname - Not found in name cache
winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - AD lookup winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - Matching rule: *[email protected] -> * winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - jordan not found, continuing winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser - No matching rule winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser 2147516419 - Ephemeral mapping winuser [email protected] S-1-5-21-3591674789-480817656-4239000414-1106 -> unixuser 2147516419 - Done

While my hypothetical Windows username is "jordan", my UNIX username is "jb25718", and so the wild-card rule couldn't be used. (A variation on this is a real customer case; their name service wasn't set up right and UNIX users weren't getting looked up properly.)

Or suppose I've transcribed my SID incorrectly (and unresolvable SID mapping is enabled, as it is by default these days):

   $ idmap list
   add     winname:[email protected]   unixuser:jb25718

$ idmap show -cv sid:S-1-5-21-3591674780-480817656-4239000414-1106 unixuser
   usid:S-1-5-21-3591674780-480817656-4239000414-1106 -> uid:2147516421
   Source: New
   Method: Ephemeral

$ idmap show -cV sid:S-1-5-21-3591674780-480817656-4239000414-1106 unixuser
   usid:S-1-5-21-3591674780-480817656-4239000414-1106 -> uid:2147516422
   Trace:
winname S-1-5-21-3591674780-480817656-4239000414-1106 -> unknown - Start mapping winname S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser - Not a well-known account winname S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser - Not a local SID winname S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser - Not found in mapping cache winname S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser - Not found in name cache winname S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser Error -9976 - AD lookup winuser S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser Error -9976 - Must map unresolvable SID to user winuser S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser 2147516422 Error -9976 - Ephemeral mapping winuser S-1-5-21-3591674780-480817656-4239000414-1106 -> unixuser 2147516422 - Done

The idea is that -V doesn't just document the result; it documents each piece of information, where it came from, and what decisions were made based on that data.

_______________________________________________
opensolaris-arc mailing list
[email protected]

Reply via email to