summaryrefslogtreecommitdiff
path: root/fs_passwd
diff options
context:
space:
mode:
authorivan <ivan>1998-03-23 08:20:25 +0000
committerivan <ivan>1998-03-23 08:20:25 +0000
commit0b5b85344c8cb7d94ba895fbd56f483dee756de7 (patch)
treeb89dd305eca0a7c86c8b3343aed49bcbb9ad3522 /fs_passwd
parent2975836fcb4d905b6a81044097101a8499b3ecbd (diff)
Initial revision
Diffstat (limited to 'fs_passwd')
-rwxr-xr-xfs_passwd/fs_passwdd49
1 files changed, 49 insertions, 0 deletions
diff --git a/fs_passwd/fs_passwdd b/fs_passwd/fs_passwdd
new file mode 100755
index 000000000..582e13ccd
--- /dev/null
+++ b/fs_passwd/fs_passwdd
@@ -0,0 +1,49 @@
+#!/usr/bin/perl -Tw
+#
+# fs_passwdd
+#
+# This is run REMOTELY over ssh by fs_passwd_server.
+#
+# ivan@sisd.com 98-mar-9
+
+use strict;
+use Socket;
+
+my($fs_passwdd_socket)="/usr/local/freeside/fs_passwdd_socket";
+
+$ENV{'PATH'} ='/usr/bin:/usr/ucb:/bin';
+$ENV{'SHELL'} = '/bin/sh';
+$ENV{'IFS'} = " \t\n";
+$ENV{'CDPATH'} = '';
+$ENV{'ENV'} = '';
+$ENV{'BASH_ENV'} = '';
+
+$|=1;
+
+my $uaddr = sockaddr_un($fs_passwdd_socket);
+my $proto = getprotobyname('tcp');
+
+socket(Server,PF_UNIX,SOCK_STREAM,0) or die "socket: $!";
+unlink($fs_passwdd_socket);
+bind(Server, $uaddr) or die "bind: $!";
+listen(Server,SOMAXCONN) or die "listen: $!";
+
+my($paddr);
+for ( ; $paddr = accept(Client,Server); close Client) {
+ my($me,$old_password,$new_password,$new_gecos,$new_shell);
+
+ $me=<Client>;
+ $old_password=<Client>;
+ $new_password=<Client>;
+ $new_gecos=<Client>;
+ $new_shell=<Client>;
+
+ print $me,$old_password,$new_password,$new_gecos,$new_shell;
+ my($error);
+
+ $error=<STDIN>;
+
+ print Client $error;
+ close Client;
+}
+