From 223f3276b226eaf9c4cec80a208e74e7434e615a Mon Sep 17 00:00:00 2001 From: in2 Date: Thu, 6 Jun 2002 21:42:40 +0000 Subject: first commit git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@297 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- util/splitpasswd.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 util/splitpasswd.c (limited to 'util') diff --git a/util/splitpasswd.c b/util/splitpasswd.c new file mode 100644 index 00000000..1a800f6c --- /dev/null +++ b/util/splitpasswd.c @@ -0,0 +1,32 @@ +#include "bbs.h" +#include + +int main(int argc, char **argv) +{ + userec_t xuser; + int fd, ufd; + char path[80], fn[80]; + + chdir(BBSHOME); + if( (fd = open(".PASSWDS", O_RDONLY)) < 0 ) + err(1, ".PASSWDS"); + + while( read(fd, &xuser, sizeof(xuser)) > 0 ){ + if( strcmp(xuser.userid, "in2") != 0 ) + continue; + sprintf(path, "home/%c/%s", xuser.userid[0], xuser.userid); + if( access(path, 0) < 0 ){ + printf("user home error (%s) (%s)\n", xuser.userid, path); + continue; + } + sprintf(fn, "%s/.passwd", path); + if( (ufd = open(fn, O_WRONLY | O_CREAT, 0600)) < 0 ){ + perror(path); + continue; + } + write(ufd, &xuser, sizeof(xuser)); + close(ufd); + } + + return 0; +} -- cgit v1.2.3