This is the mail archive of the cygwin-developers@sourceware.cygnus.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]

default /etc/passwd contents


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::<DEFAULT_UID>:<DEFAULT_GID>::<value of $HOME>:none"

Just like it's done for groups?

I feel that it would be quite safe, if <DEFAULT_UID> and <DEFAULT_GID>
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@logos-m.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;
 }



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