Mail Archives: cygwin-developers/1999/06/08/13:01:21
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 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;
}
- Raw text -