Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com Date: Tue, 8 Jun 1999 20:57:50 +0400 From: Egor Duda X-Mailer: The Bat! (v1.029) S/N A0F2A05A Reply-To: Egor Duda Organization: DEO Message-ID: <0873.990608@logos-m.ru> To: cygwin-developers Subject: default /etc/passwd contents Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi! What do you think about changing cygwin behavior in case when /etc/passwd file isn't found? I think that it would be ok to create single entry in passwd_buf of some "default user", who cannot own any files and does not belong to any existing group. Something like "cygwin_default::::::none" Just like it's done for groups? I feel that it would be quite safe, if and will be assigned to some "reserved" values, i.e. not to be equal to any of real Windows UIDs and GIDs. I've made such patch and it saves me a lot of time while adopting cygwin port of ssh to be run on any machine even without cygwin installed. Egor. mailto:deo AT logos-m DOT ru ICQ 5165414 FidoNet 2:5020/496.19 Index: passwd.cc =================================================================== RCS file: /usr/local/src/cvs/cygnus/cygwin/winsup/passwd.cc,v retrieving revision 1.1.1.1 diff -u -2 -r1.1.1.1 passwd.cc --- passwd.cc 1999/04/10 14:55:02 1.1.1.1 +++ passwd.cc 1999/06/08 16:52:53 @@ -106,10 +106,9 @@ read_etc_passwd () { + char linebuf[1024]; FILE *f = fopen ("/etc/passwd", "r"); if (f) - { - char linebuf[1024]; - + { while (fgets (linebuf, sizeof (linebuf), f) != NULL) { @@ -119,5 +118,10 @@ fclose (f); - } + } + else + { + snprintf ( linebuf , sizeof ( linebuf ) , "cygwin_default::500:500::%s:none" , getenv ( "HOME" ) ) ; + add_pwd_line ( linebuf ) ; + } passwd_in_memory_p = 1; }