This is the mail archive of the cygwin@cygwin.com 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: WinXP username with spaces --> wmaker ko


Igor,

Granted - There are "issues" with the solution - that is why I said
"partial" solution ( I need to resolve ALL issues)

The challenge really has to do with /usr/bin/mkpasswd (which gets called by
/etc/postinstall/passwd-grp.sh during the install process)

>From what I can tell, it is the item that generates the password file, which
affects HOME and the home directory setup.

Often, users don't have access to change their id's, so there Windows logon
name may have spaces in them. We cannot chnage that.

Maybe I wasn't  too clear in my thoughts - until I have a scripted solution
(the code fragment I presented), I manually "fix" the problem by:

1/ Install CYGWIN (say to c:\cygwin) - I install the icon to my desktop and
start menu
2/ Using Windows Wordpad, open the /etc/passwd file (e.g.,
c:\cygwin\etc\passwd)
3/ Change field 1 (the user name) - change any spaces to _ characters (i.e.,
change "Alan Miles" to "Alan_Miles")
4/ Change field 6 (the home directory setting) - change any spaces to _
characters (i.e., change "/home/Alan Miles" to "/home/Alan_Miles")
5/ Save /etc/passwd file (e.g., c:\cygwin\etc\passwd)
6/ Click on the cygwin desktop icon to "logon" to cygwin for the first time.
/etc/profile creates the home directory the first time:

(fragment from /etc/profile:
# If the home directory doesn't exist, create it.
if [ ! -d "$HOME" ]; then
  mkdir -p "$HOME"
  # copy skeleton files
  cp -a /etc/skel/. $HOME
fi
)

Now the cygwin creates the home directory properly (i.e.,
"/home/Alan_Miles"), HOME is set to "/home/Alan_Miles", and USER is set to
"Alan_Miles"

I have not had any trouble with this "manual" setup.

This is the item I would like to either fix by scripting, e.g., the partial
code fragment already presented, or better still patch /usr/bin/mkpasswd to
convert any names it sees with spaces in them to _ characters. Then problem
"completely" solved.

I appreciate your input.

BTW, Igor got your other message regarding Perl - you said:

>> This wasn't meant to chide you;

You weren't chiding me - my first message I thought went to Gerrit only and
should have gone to the list (which is why I then resent it). All you did
was point out that I inadvertently duplicated messages - no problem.

Alan
-----Original Message-----
From: Igor Pechtchanski [mailto:pechtcha at cs dot nyu dot edu]
Sent: April 5, 2003 10:53
To: alan dot miles at ieee dot org
Cc: kaio; cygwin at cygwin dot com
Subject: RE: WinXP username with spaces --> wmaker ko


Alan,

The "fix" below has a few problems (one of which is unconditionally
removing /etc/passwd).  IMO, it's better to fix the scripts that have
improper quoting, or, barring that, unset HOME in your Windows environment
(or modify /etc/profile) and make sure your username doesn't contain a
space.  Going out of your way to accomodate scripts without proper quoting
will only lead to the proliferation of such scripts.
	Igor

On Sat, 5 Apr 2003, Alan Miles wrote:

> All,
>
> I have the same problem (on my machine at home) - However I do have a
> (partial) solution (I am still working on the final solution):
>
> This has to be done after CYGWIN installation, but BEFORE and user logon.
> Edit the /etc/passwd file and replace the space in the first field, and
edit
> the field /home/<something with space> to /home/<something_with_out_space>
> and save.
>
> I am working on a scripting solution to install as part of my
installation -
> maybe this could be incorporated as part of the "main" CYGWIN release.
>
> Below is a script fragment on how I am proposing to "automate" this fix.
>
> ThePasswordFile="/etc/passwd"
> ModUserName="$(/usr/bin/echo "${USER}" | /usr/bin/sed -e 's/ /_/g')"
>
> ...
>
> ModHomeUserName="$(/usr/bin/basename "${HOME}" | /usr/bin/sed -e 's/
/_/g')"
> ModHomeUserDirName="$(/usr/bin/dirname "${HOME}")/"
> ModHome="${ModHomeUserDirName}${ModHomeUserName}"
>
> /usr/bin/rm -f "${ThePasswordFile}"
>
> if [ ! -e "${ThePasswordFile}" -a ! -L "${ThePasswordFile}" ]
> then
>    /usr/bin/mkpasswd -l -c | /usr/bin/gawk -F':' -v oldUser="${USER}" -v
newUser="${ModUserName}" -v newUserHomeDir="${ModHome}" ' BEGIN {OFS=":" ; }
$1 ~ oldUser {$1=newUser ; $6=newUserHomeDir; } {print $0 ; } ' >
"${ThePasswordFile}"
> fi
>
> Hope this helps.
>
> Alan
> -----Original Message-----
> From: kaio [mailto:electabuzz at katamail dot com]
> Sent: April 4, 2003 10:48
> To: cygwin at cygwin dot com
> Subject: WinXP username with spaces --> wmaker ko
>
>
> i have my administrator user named with a space on WInXP.
> cygwin installation is ok, but windowmaker don't install: seems that the
> space generates a new parameter in installation commands!
> in fact, wmaker installation creates a new dir in /home/ with the first
half
> of username!

--
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha at cs dot nyu dot edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor at watson dot ibm dot com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

Knowledge is an unending adventure at the edge of uncertainty.
  -- Leto II




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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