Changing user home to overlap Windows user home possible? Or a bad idea?

Thomas Schweikle tschweikle@bfs.de
Tue Apr 11 20:42:56 GMT 2023


Hi!

Am Sa., 08.Apr..2023 um 10:30:47 schrieb Andrey Repin:
> Greetings, Thomas Schweikle!
> 
>> Is it possible to have the same home for Windows and cygwin?
> 
> See /etc/nsswitch.conf and https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch
> 
>> Using "C:\Users\<user>" for Cygwin home setting mount points for users?
> 
> I don't get this question. Can you please rephrase?

I've tried to set

C:/Users /home ntfs binary,posix=0,nouser 0 0

Then have "C:/Users/..." and "/home/..." the same.
Did not work this way. Starting some shell got cygwin exhaust "Could not 
create "/home/<user>" -- true: the directory was there already, but 
cygwin did not notice. Can't tell why. I could switch to /home/<user>, 
while cygwin couldn't setting $HOME to /tmp. I had success with

mklink /D C:\cygwin\home C:\Users

and then setting /etc/nsswitch.conf to

db_home: /home/%U

this did the trick: cygwin starting a shell works now as expected.
One last problem: the owner of the files was not the one expected. Could 
change him to the expected one using windows tools.

The remaining problems are all git related: git seems to have problems 
creating symlinks for clones. Maybe this is just a case enabling 
privileges via GPO for users needing them. Looks like some sources fail 
to compile if symlinks are not available.


>> Or is this a bad idea? Or is it something which has some drawbacks you've
>> to decide to live with? At the moment the most ugly drawback is duplication
>> of various data needed within "C:\cygwin\home\<user>" and "C:\Users\<user>".
>> Would be nice if I could overlay both.
> 
> There's some caveats to using %USERPROFILE% as $HOME, most notable, you have
> to be careful with overly sensitive programs, like SSH or GPG. Other than
> that, the noacl flag on the cygdrive mount will cover you for the time being.
> I.e.:

This was why I tried to mount C:\Users to /home, having two identical 
directories making ssh, gpg and others happy.

>>> none /cygdrive cygdrive noacl,binary,nouser,posix=0 0 0
> 
> And usertemp idea is also a good one:
> 
>>> none /tmp usertemp binary,nouser,posix=0 0 0

This was helpful. It is a little bit problematic switching users, but it 
is lots better than having a global /tmp for all users.
-- 
Thomas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x27AE2304B4974851.asc
Type: application/pgp-keys
Size: 2480 bytes
Desc: OpenPGP public key
URL: <https://cygwin.com/pipermail/cygwin/attachments/20230411/359a3160/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 321 bytes
Desc: OpenPGP digital signature
URL: <https://cygwin.com/pipermail/cygwin/attachments/20230411/359a3160/attachment-0001.sig>


More information about the Cygwin mailing list