diff options
author | ivan <ivan> | 1998-03-23 08:20:25 +0000 |
---|---|---|
committer | ivan <ivan> | 1998-03-23 08:20:25 +0000 |
commit | 0b5b85344c8cb7d94ba895fbd56f483dee756de7 (patch) | |
tree | b89dd305eca0a7c86c8b3343aed49bcbb9ad3522 /fs_passwd | |
parent | 2975836fcb4d905b6a81044097101a8499b3ecbd (diff) |
Initial revision
Diffstat (limited to 'fs_passwd')
-rwxr-xr-x | fs_passwd/fs_passwdd | 49 |
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; +} + |