RFC: 1.7.33 problem with user's home directory
Wed Nov 26 21:16:00 GMT 2014
On Nov 11 12:14, Corinna Vinschen wrote:
> On Nov 11 11:05, Achim Gratz wrote:
> > Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes:
> > > 1. Add a setting to /etc/nsswitch.conf which allows to specify one of
> > > the above:
> > >
> > > home: [unix|win|home]...
> > >
> > > - "unix" means, set pw_dir to unixHomeDirectory
> > > - "win" means, set pw_dir to homeDirectory
> > > - "home" means, set pw_dir to /home/$USER
> > > - Multiple entries are possible.
> > > - Default in the absence of this setting is: always set pw_dir to
> > > /home/$USER.
> > Looks good, but maybe allow the AD attribute to be explicitly named (e.g.
> > cygwinHomeDirectory).
> Cygwin schema extension? :)
I just created a patch and a matching snapshot on
The new stuff is still missing documentation, so I'm explaining it here
For the attentive, there are two questions in the text...
Here's what you get:
/etc/nsswitch.conf now supports specifying three new settings which
allow to configure the pw_dir, pw_shell, and pw_gecos content:
"schema..." is a list of up to four space-separated schemata:
db_home: schema1 schema2 ...
If the first schema returns an empty string, skip to the second, and
so on. Schemata only supported on AD are silently skipped for SAM
accounts and on non-AD machines.
The default for all three settings is:
db_foo: cygwin desc
Four predefined schemata are supported:
windows Utilizes typical Windows settings. Supported for
AD and SAM accounts.
cygwin Utilizes predefined cygwinUser/cygwinGroup AD schema
extensions. These are available via a schema extension
unix Utilizes the RFC2307 posixAccount/posixGroup schema
extensions. These are available when installing the
Server for NIS AD feature.
desc Utilizes XML-style attributes in the description
attribute. Supported for AD and SAM accounts. This
way to fetch extended user and group info from the
description field is already documented (albeit only
for SAM accounts) in
Two variable schemata are supported:
@ad_attribute ad_attribute is any arbitrary AD attribute name which
should be available in the User class or in any attached
/path An arbitrary string, typically a path. The leading slash
is required. The /path schema supports a few wildcards:
%u Cygwin username
%U Windows username
%D Windows domain in NetBIOS style
%_ A space
%% A percent sign.
The meaning of the schemata depend on the setting:
windows AD and SAM: Utilizes the setting of the homeDrive or
homeDirectory attributes, or their SAM "Home folder"
counterparts. The Windows path is converted to a
cygwin AD only: Shortcut for the cygwinHome attribute from
the predefined cygwinUser auxiliary class. POSIX path
unix AD only: Shortcut for the unixHomeDirectory attribute
from the posixAccount auxiliary class. POSIX path
desc AD and SAM: Fetch the home="..."
setting from the user's description attribute.
POSIX path expected.
@ad_attribute AD-only: Read AD attribute "ad_attribute" as POSIX
However, I'm contemplating to allow a Windows path
here, too. Does this make sense to you?
/path POSIX path. Remember the wildcards.
fallback If nothing works, the fallback is /home/$USERNAME
windows Ignored. Do you want CMD instead?
cygwin AD-only: Shortcut for the cygwinShell attribute
from the cygwinUser class. POSIX path.
unix AD-only: Shortcut for the loginShell attribute
from the posixAccount class. POSIX path.
desc AD and SAM: Fetch the shell="" setting from the
user's description attribute. POSIX path.
@ad_attribute See above.
/path See above.
fallback If nothing works, the fallback is /bin/bash.
windows AD and SAM: displayName attribute, or "Full Name"
setting in SAM.
cygwin AD-only: cygwinGecos attribute from cygwinUser class.
unix AD-only: gecos attribute from posixAccount class.
@ad_attribute Read AD attribute "ad_attribute" and prepend
/path Skip the slash, prepend the reminder of the string
to pw_gecos. Note that the wildcards are still
fallback If nothing works, the fallback is no fallback.
db_home: cygwin desc
The default. Try the cygwinHome attribute first. If it's empty,
evalaute the description field and see if the home dir is set via
the cygwin XML-style text. If that fails, fallback is /home/$USERNAME
db_home: unix @msTSHomeDirectory /home/%u
Try the unixHomeDirectory attribute first. Empty? Try the
(otherwise unused) msTSHomeDirectory attribute. Empty? Fall back
to /home/$USER (Cygwin username).
db_gecos: @comment /Hallo%_%U
Try the comment attribute. Empty? Fall back to the string
"Hallo <Windows username>". Example passwd entry:
Is this new stuff basically clear? Questions?
Please give it a try.
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 819 bytes
Desc: not available
More information about the Cygwin