Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com To: cygwin AT cygwin DOT com Cc: frodo AT mit DOT edu Subject: 1.3.12-2: weird problem with /etc/passwd and sshd From: Len Giambrone Date: 25 Jul 2002 18:35:48 -0400 Message-ID: Lines: 73 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Note-from-DJ: This may be spam Win2k Server, Service Pack 2. OpenSSH 3.4p1-4. I setup sshd running as a service: $ cygrunsrv -I sshd -p /usr/sbin/sshd.exe -a "-D -e" and everything is happy. Now, I create a user "foobar" $ net user foobar foo /add And add it to /etc/passwd $ mkpasswd -l | grep foobar >> /etc/passwd Now when I try to ssh in the client tells me : $ ssh root AT 172 DOT 24 DOT 8 DOT 41 -v ... debug1: Entering interactive session. debug3: Trying to reverse map address 172.24.8.23. Connection to 172.24.8.41 closed. debug1: Transferred: stdin 0, stdout 53, stderr 35 bytes in 4.5 seconds debug1: Bytes per second: stdin 0.0, stdout 11.7, stderr 7.7 debug1: Exit status -1 And the Server tells me: ... debug1: Entering interactive session. debug1: fd 3 setting O_NONBLOCK debug1: fd 5 setting O_NONBLOCK debug1: fd 7 setting O_NONBLOCK debug1: fd 8 setting O_NONBLOCK debug1: server_init_dispatch_13 debug1: server_init_dispatch_15 debug1: Received SIGCHLD. Read error from remote host: Cannot send after transport endpoint shutdown debug1: Calling cleanup 0x415dc8(0x449ab4) debug1: session_pty_cleanup: session 0 release /dev/tty2 debug1: Calling cleanup 0x41c9c4(0x0) I've run sshd through gdb and found the child that sshd forks to handle the session calls this code in uidswap.c void permanently_set_uid(struct passwd *pw) { if (temporarily_use_uid_effective) fatal("permanently_set_uid: temporarily_use_uid effective"); if (setgid(pw->pw_gid) < 0) fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno)); if (setuid(pw->pw_uid) < 0) fatal("setuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno)); } For some strange reason, The setuid call is failing. If I now remove "foobar" from /etc/passwd, everything works again. I have not been able to reproduce this by running the server from the command line, only when it's running as a service. Anyone have a clue as to what might be going on here? Cygcheck is attached. -Len --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=cygcheck Cygwin Win95/NT Configuration Diagnostics Current System Time: Thu Jun 27 12:36:31 2002 Windows 2000 Server Ver 5.0 Build 2195 Service Pack 2 Path: C:\cygwin\usr\local\bin C:\cygwin\bin C:\cygwin\bin c:\Perl\bin\ c:\WINNT\system32 c:\WINNT c:\WINNT\System32\Wbem SysDir: C:\WINNT\System32 WinDir: C:\WINNT HOME = `C:\cygwin\home\Administrator' MAKE_MODE = `unix' PWD = `/home/Administrator' USER = `Administrator' !:: = `::\' ALLUSERSPROFILE = `C:\Documents and Settings\All Users' APPDATA = `C:\Documents and Settings\Administrator\Application Data' COMMONPROGRAMFILES = `C:\Program Files\Common Files' COMPUTERNAME = `LENTEST' COMSPEC = `C:\WINNT\system32\cmd.exe' HOMEDRIVE = `C:' HOMEPATH = `\Documents and Settings\Administrator' LOGONSERVER = `\\LENTEST' MANPATH = `:/usr/ssl/man' NUMBER_OF_PROCESSORS = `1' OLDPWD = `/cygdrive/c/cygdist/ftp%3a%2f%2farchive.progeny.com%2fcygwin/release/openssh' OS2LIBPATH = `C:\WINNT\system32\os2\dll;' OS = `Windows_NT' PATHEXT = `.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH' PROCESSOR_ARCHITECTURE = `x86' PROCESSOR_IDENTIFIER = `x86 Family 6 Model 7 Stepping 3, GenuineIntel' PROCESSOR_LEVEL = `6' PROCESSOR_REVISION = `0703' PROGRAMFILES = `C:\Program Files' PROMPT = `$P$G' PS1 = `\[\033]0;\w\007 \033[32m\]\u@\h \[\033[33m\w\033[0m\] $ ' SESSIONNAME = `Console' SHLVL = `1' SYSTEMDRIVE = `C:' SYSTEMROOT = `C:\WINNT' TEMP = `c:\DOCUME~1\ADMINI~1\LOCALS~1\Temp' TERM = `cygwin' TMP = `c:\DOCUME~1\ADMINI~1\LOCALS~1\Temp' USERDOMAIN = `LENTEST' USERNAME = `Administrator' USERPROFILE = `C:\Documents and Settings\Administrator' WINDIR = `C:\WINNT' _ = `/usr/bin/cygcheck' HKEY_CURRENT_USER\Software\Cygnus Solutions HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2 HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2 (default) = `/cygdrive' cygdrive flags = 0x00000022 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ (default) = `C:\cygwin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin (default) = `C:\cygwin/bin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib (default) = `C:\cygwin/lib' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options a: fd N/A N/A c: hd NTFS 2000Mb 78% CP CS UN PA FC d: cd N/A N/A C:\cygwin / system binmode C:\cygwin/bin /usr/bin system binmode C:\cygwin/lib /usr/lib system binmode . /cygdrive user binmode,noumount Found: C:\cygwin\bin\bash.exe Found: C:\cygwin\bin\cat.exe Not Found: cpp (good!) Found: C:\cygwin\bin\find.exe Not Found: gcc Not Found: gdb Not Found: ld Found: C:\cygwin\bin\ls.exe Found: C:\cygwin\bin\make.exe Found: C:\cygwin\bin\sh.exe 58k 2002/05/07 C:\cygwin\bin\cygbz2-1.dll - os=4.0 img=1.0 sys=4.0 "cygbz2-1.dll" v0.0 ts=2002/5/7 2:33 621k 2002/05/17 C:\cygwin\bin\cygcrypto.dll - os=4.0 img=1.0 sys=4.0 "cygcrypto.dll" v0.0 ts=2002/5/17 8:24 45k 2001/04/25 C:\cygwin\bin\cygform5.dll - os=4.0 img=1.0 sys=4.0 "cygform5.dll" v0.0 ts=2001/4/25 1:28 35k 2002/01/09 C:\cygwin\bin\cygform6.dll - os=4.0 img=1.0 sys=4.0 "cygform6.dll" v0.0 ts=2002/1/9 1:03 19k 2002/02/20 C:\cygwin\bin\cyggdbm.dll - os=4.0 img=1.0 sys=4.0 "cyggdbm.dll" v0.0 ts=2002/2/19 22:05 17k 2001/06/28 C:\cygwin\bin\cyghistory4.dll - os=4.0 img=1.0 sys=4.0 "cyghistory4.dll" v0.0 ts=2001/1/6 23:34 20k 2002/01/13 C:\cygwin\bin\cyghistory5.dll - os=4.0 img=1.0 sys=4.0 "cyghistory5.dll" v0.0 ts=2002/1/12 20:27 22k 2001/12/13 C:\cygwin\bin\cygintl-1.dll - os=4.0 img=1.0 sys=4.0 "cygintl-1.dll" v0.0 ts=2001/12/13 4:28 21k 2001/06/20 C:\cygwin\bin\cygintl.dll - os=4.0 img=1.0 sys=4.0 "cygintl.dll" v0.0 ts=2001/6/20 13:09 26k 2001/04/25 C:\cygwin\bin\cygmenu5.dll - os=4.0 img=1.0 sys=4.0 "cygmenu5.dll" v0.0 ts=2001/4/25 1:27 20k 2002/01/09 C:\cygwin\bin\cygmenu6.dll - os=4.0 img=1.0 sys=4.0 "cygmenu6.dll" v0.0 ts=2002/1/9 1:03 156k 2001/04/25 C:\cygwin\bin\cygncurses++5.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++5.dll" v0.0 ts=2001/4/25 1:29 175k 2002/01/09 C:\cygwin\bin\cygncurses++6.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++6.dll" v0.0 ts=2002/1/9 1:03 226k 2001/04/25 C:\cygwin\bin\cygncurses5.dll - os=4.0 img=1.0 sys=4.0 "cygncurses5.dll" v0.0 ts=2001/4/25 1:17 202k 2002/01/09 C:\cygwin\bin\cygncurses6.dll - os=4.0 img=1.0 sys=4.0 "cygncurses6.dll" v0.0 ts=2002/1/9 1:03 15k 2001/04/25 C:\cygwin\bin\cygpanel5.dll - os=4.0 img=1.0 sys=4.0 "cygpanel5.dll" v0.0 ts=2001/4/25 1:27 12k 2002/01/09 C:\cygwin\bin\cygpanel6.dll - os=4.0 img=1.0 sys=4.0 "cygpanel6.dll" v0.0 ts=2002/1/9 1:03 40k 2001/11/21 C:\cygwin\bin\cygpcre.dll - os=4.0 img=1.0 sys=4.0 "cygpcre.dll" v0.0 ts=2001/11/21 17:15 39k 2001/11/21 C:\cygwin\bin\cygpcreposix.dll - os=4.0 img=1.0 sys=4.0 "cygpcreposix.dll" v0.0 ts=2001/11/21 17:15 108k 2001/06/28 C:\cygwin\bin\cygreadline4.dll - os=4.0 img=1.0 sys=4.0 "cygreadline4.dll" v0.0 ts=2001/1/6 23:34 121k 2002/01/13 C:\cygwin\bin\cygreadline5.dll - os=4.0 img=1.0 sys=4.0 "cygreadline5.dll" v0.0 ts=2002/1/12 20:27 156k 2002/05/17 C:\cygwin\bin\cygssl.dll - os=4.0 img=1.0 sys=4.0 "cygssl.dll" v0.0 ts=2002/5/17 8:24 50k 2002/03/12 C:\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0 "cygz.dll" v0.0 ts=2002/3/11 23:38 751k 2002/02/25 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0 "cygwin1.dll" v0.0 ts=2002/2/25 11:14 Cygwin DLL version info: DLL version: 1.3.10 DLL epoch: 19 DLL bad signal mask: 19005 DLL old termios: 5 DLL malloc env: 28 API major: 0 API minor: 51 Shared data: 3 DLL identifier: cygwin1 Mount registry: 2 Cygnus registry name: Cygnus Solutions Cygwin registry name: Cygwin Program options name: Program Options Cygwin mount registry name: mounts v2 Cygdrive flags: cygdrive flags Cygdrive prefix: cygdrive prefix Cygdrive default prefix: Build date: Mon Feb 25 11:14:34 EST 2002 Shared id: cygwin1S3 Cygwin Package Information Last downloaded files to: C:\cygdist Last downloaded files from: ftp://archive.progeny.com/cygwin Package Version _update-info-dir 00005-1 ash 20020131-1 bash 2.05a-3 bzip2 1.0.2-2 clear 1.0-1 cygrunsrv 0.95-1 cygutils 1.0.0-1 cygwin 1.3.10-1 diff 1.0-1 diffutils 2.8.1-1 file 3.37-1 fileutils 4.1-1 findutils 4.1.7-4 gawk 3.0.4-1 gdbm 1.8.0-4 grep 2.5-1 gzip 1.3.2-1 less 374-1 libbz2_1 1.0.2-2 libintl 0.10.38-3 libintl1 0.10.40-1 libncurses5 5.2-1 libncurses6 5.2-8 libreadline4 4.1-2 libreadline5 4.2a-1 links 0.96-1 login 1.4-3 lynx 2.8.4-1 make 3.79.1-7 ncurses 5.2-8 openssh 3.2.3p1-1 openssl 0.9.6d-1 pcre 3.7-1 popt 1.6.2-1 readline 4.2a-1 sed 3.02-1 sh-utils 2.0-2 tar 1.13.19-1 termcap 20020403-1 terminfo 5.2-3 texinfo 4.2-3 textutils 2.0.21-1 unzip 5.50-1 vim 6.1-2 wget 1.8.1-1 which 1.5-1 zlib 1.1.4-1 Use -h to see help about each section --=-=-= Content-Type: text/plain; charset=us-ascii -- 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/ --=-=-=--