aboutsummaryrefslogtreecommitdiffstats
path: root/src/gitjoe/adduser.pl
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-07-08 17:41:28 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-07-08 17:41:28 +0200
commitc298904d9d9a12281b368dd180f3e8b4f7aba898 (patch)
tree6dd4474240dadc06e81e7255add90c6ef90069b3 /src/gitjoe/adduser.pl
parentFix (diff)
downloadjoe-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-xsrc/gitjoe/adduser.pl77
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__