diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-07 20:49:26 +0200 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-07 20:49:26 +0200 |
commit | c546fee3fa3f3f1430bd289c51fc6a9e1a1030bf (patch) | |
tree | 5cf3e5c2396ef327383fba372cedfccf7bb5d98f /src/gitjoe-newuser.pl | |
parent | test (diff) | |
download | joe-scripts-c546fee3fa3f3f1430bd289c51fc6a9e1a1030bf.tar.gz joe-scripts-c546fee3fa3f3f1430bd289c51fc6a9e1a1030bf.tar.bz2 joe-scripts-c546fee3fa3f3f1430bd289c51fc6a9e1a1030bf.tar.xz joe-scripts-c546fee3fa3f3f1430bd289c51fc6a9e1a1030bf.tar.zst joe-scripts-c546fee3fa3f3f1430bd289c51fc6a9e1a1030bf.zip |
Better dir
Diffstat (limited to 'src/gitjoe-newuser.pl')
-rwxr-xr-x | src/gitjoe-newuser.pl | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/gitjoe-newuser.pl b/src/gitjoe-newuser.pl new file mode 100755 index 0000000..a141277 --- /dev/null +++ b/src/gitjoe-newuser.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__ |