diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-08 17:41:28 +0200 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-08 17:41:28 +0200 |
commit | c298904d9d9a12281b368dd180f3e8b4f7aba898 (patch) | |
tree | 6dd4474240dadc06e81e7255add90c6ef90069b3 /src/gitjoe/adduser.pl | |
parent | Fix (diff) | |
download | joe-scripts-c298904d9d9a12281b368dd180f3e8b4f7aba898.tar.gz joe-scripts-c298904d9d9a12281b368dd180f3e8b4f7aba898.tar.bz2 joe-scripts-c298904d9d9a12281b368dd180f3e8b4f7aba898.tar.xz joe-scripts-c298904d9d9a12281b368dd180f3e8b4f7aba898.tar.zst joe-scripts-c298904d9d9a12281b368dd180f3e8b4f7aba898.zip |
Tree update
Diffstat (limited to 'src/gitjoe/adduser.pl')
-rwxr-xr-x | src/gitjoe/adduser.pl | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/gitjoe/adduser.pl b/src/gitjoe/adduser.pl new file mode 100755 index 0000000..a141277 --- /dev/null +++ b/src/gitjoe/adduser.pl @@ -0,0 +1,77 @@ +#!/usr/local/bin/perl + +use strict; +use warnings; +use Term::ANSIColor; + +sub main { + my $argc = $#ARGV + 1; + if ($argc < 3) { + print colored("Failed!\n", 'bold red') + . "Missing argument, 3 needed " + . colored("[user - password - ssh public key]", 'bold') + . "\n"; + exit 1; + } + my $usr = $ARGV[0]; + my $pass = $ARGV[1]; + my $sshkey = "no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty "; + $sshkey = $sshkey . $ARGV[2]; + my $home_dir = '/usr/home/' . $usr . '/'; + system( + '/usr/local/bin/dash', + '-c', + "adduser << EOF +" . $usr . " + + + + + +git-shell + + + + + +" . $pass . " +" . $pass . " + +yes +no +EOF" + ); + system( + '/usr/local/bin/dash', + '-c', + '/bin/mkdir -v ' . $home_dir . '.ssh/' + ); + system( + '/usr/local/bin/dash', + '-c', + '/usr/sbin/chown -v ' . $usr . ':' . $usr . ' ' . $home_dir . '.ssh/' + ); + system( + '/usr/local/bin/dash', + '-c', + '/bin/chmod -v 700 ' . $home_dir . '.ssh/' + ); + open(my $fh, '>:encoding(UTF-8)', $home_dir . '.ssh/authorized_keys'); + print $fh $sshkey . "\n"; + close($fh); + system( + '/usr/local/bin/dash', + '-c', + '/usr/sbin/chown -v ' . $usr . ':' . $usr . ' ' . $home_dir . '.ssh/authorized_keys' + ); + system( + '/usr/local/bin/dash', + '-c', + '/bin/chmod -v 600 ' . $home_dir . '.ssh/authorized_keys' + ); + exit; +} + +main(); + +__END__ |