This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Output from mkpasswd/mkgroup ... Again confused (2)


> On Nov 27 17:12, Houder wrote:
>> Hi Corinna,
>>
>> For comparison: output of 'mkpasswd -l' with and without /etc/nsswitch.conf present. Without it, my machine
>> is NOT a 'foreign machine'. When it is present, my machine is a 'foreign machine'. Strikes me as ...
>>
>> Until now, I believed that the output of mkpasswd/mkgroup had no dependency on /etc/nsswitch.conf.
>
> The most recent version has.  Here's what happens.  If you call mkpasswd
> without parameter, it just calls Cygwin's internal enumeration functions.
> If you call with -l, it checks if `passwd:' is set to "files" only in
> /etc/nsswitch.conf.  If so, it uses the old enumeration functions inside
> mkpasswd, which don't generate prefixed usernames for local accounts
> even on AD machines.  However, the uids/gids differ when using this
> method.  I could change the offset in this case to reduce the chance for
> a difference, but hey, there's no good reason to use /etc/passwd at all
> in your scenario :}

... ahem, you keep saying that (no need for /etc/passwd) to me :-)) However, my (personal) bin
directory has a script called mkpasswd_r(edacted) ... that modifies the uid of some of my users
(yes, me, and a few aliases for me).

And I am sure, that I am not the only one with a script like that ...

Above you are explaining _implementation_ ... not specification.

64-@@ uname -a
CYGWIN_NT-6.1 Seven 1.7.33-2(0.280/5/3) 2014-11-13 15:47 x86_64 Cygwin # ATTENTION: NOT the test release
64-@@ mkpasswd | grep Henri
Henri:unused:1000:513:U-Seven\Henri,S-1-5-21-91509220-1575020443-2714799223-1000:/home/Henri:/bin/bash
64-@@ mkpasswd -l | grep Henri
Henri:unused:1000:513:U-Seven\Henri,S-1-5-21-91509220-1575020443-2714799223-1000:/home/Henri:/bin/bash

As you will observe, in the 'old days', mkpasswd -l defaulted to 'mkpasswd'.

As it does for the test release, in case one removes /etc/nsswitch.conf.

@@ mkpasswd | grep Henri
Henri:*:197608:197121:U-Seven\Henri,S-1-5-21-91509220-1575020443-2714799223-1000:/home/Henri:/bin/bash
@@ mkpasswd -l | grep Henri
Henri:*:197608:197121:U-Seven\Henri,S-1-5-21-91509220-1575020443-2714799223-1000:/home/Henri:/bin/bash

(in fact 'mkpasswd -l <my machine>' now shows the same output as the above commands do)

However, in case "nsswitch.conf" specifies passwd: files

    mkpasswd and mkpasswd -l are NOT equal anymore # as result of the _implementation_

This change in behaviour is not apparent from 'mkpasswd --help' ... and it is not documented anywhere.

Yes, I know, that you modified the _implementation_ in response to a request by Christian Franke, and
I do not object against change, but change should not confuse ... I believe.

Bottom-line: the kludge you introduced in mkpasswd (at the request of C.) backfired (well, it did to me).

Henri

=====


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]