117 lines
2.9 KiB
Perl
Executable File
117 lines
2.9 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
use Getopt::Std;getopts('z');
|
|
|
|
system("userdel ppb; rm -rf /home/ppb") if (-d "/home/ppb");
|
|
system("userdel mike; rm -rf /home/mike") if (-d "/home/mike");
|
|
|
|
&ai('dnsutils','net-tools','zsh','joe','rsync','curl','fuse','libwww-perl',
|
|
'libterm-readline-perl-perl','libterm-readpassword-perl','libdbd-mysql-perl','ntp',
|
|
'libjson-perl','jq','unzip','7zip');
|
|
|
|
if ($opt_z) {
|
|
if (-x "/usr/bin/zsh") {
|
|
system("chsh root -s /usr/bin/zsh");
|
|
}
|
|
}
|
|
|
|
|
|
system("locale-gen C.UTF-8");
|
|
|
|
system("mkdir /db");
|
|
system("mkdir /db/bin");
|
|
system("mkdir /db/backup");
|
|
system("mkdir /db/backup/mysql");
|
|
system("mkdir /db/tmp");
|
|
system("mkdir /db/log");
|
|
system("mkdir /db/lib");
|
|
system("mkdir /db/data");
|
|
system("mkdir /db/etc");
|
|
system("mkdir /db/src");
|
|
system("mkdir /db/upload");
|
|
system("chmod 777 /db/tmp");
|
|
system("chmod 777 /db/log");
|
|
system("chmod 777 /db/upload");
|
|
|
|
system("mkdir -p ~/.joe/colors/");
|
|
system("cp ./files/default.jcf ~/.joe/colors/default.jcf");
|
|
system("cp ./files/joerc4 /root/.joerc");
|
|
system("cp ./files/csh.cshrc /etc");
|
|
system("cp ./files/rc.local.debian /etc/rc.local");
|
|
system("chmod 755 /etc/rc.local");
|
|
system("cp ./files/myuser /db/bin");
|
|
system("cp ./files/mybackup /db/bin");
|
|
system("cp ./files/dx /db/bin");
|
|
system("cp ./files/gx /db/bin");
|
|
system("cp ./files/gy /db/bin");
|
|
system("cp ./files/telemetry /db/bin");
|
|
system("cp ./files/rt /db/bin");
|
|
system("cp ./files/mgsh /db/bin");
|
|
system("cp ./files/locale /etc/default/locale");
|
|
|
|
system("./upd https://git.micw.org/mike/dx -i /db/bin");
|
|
|
|
system("cp ./files/zshrc /etc/zsh/zshrc");
|
|
|
|
system("rm /etc/motd; touch /etc/motd");
|
|
|
|
system("mkdir /root/.ssh") if (!-d "/root/.ssh");
|
|
|
|
|
|
&readak("/root/.ssh/authorized_keys");
|
|
&readak("./files/authorized_keys");
|
|
|
|
open(OUT,"> /root/.ssh/authorized_keys");
|
|
for (sort(keys(%K))) {print OUT "$_\n" if (!/^\s*$/);}
|
|
close(OUT);
|
|
|
|
sub readak() {
|
|
my($file)=@_;
|
|
if (-f $file) {open(IN,$file);while(<IN>) {chomp();$K{$_}=$_;}close(IN);}
|
|
}
|
|
|
|
|
|
system("chmod 700 /root/.ssh");
|
|
system("chmod 600 /root/.ssh/authorized_keys");
|
|
|
|
if (!$opt_x) {
|
|
system("/usr/bin/apt-get update");
|
|
system("/usr/bin/apt-get upgrade");
|
|
|
|
if (is_debian_13_or_later()) {
|
|
system("cp ./files/timesyncd.conf /etc/systemd/");
|
|
|
|
} else {
|
|
system("service ntp stop");
|
|
system("/usr/sbin/ntpd -gq");
|
|
system("service ntp start");
|
|
}
|
|
}
|
|
|
|
sub ai {
|
|
my @pkgs=@_;
|
|
for (@pkgs) {
|
|
system("/usr/bin/apt-get -y install $_");
|
|
}
|
|
}
|
|
|
|
|
|
sub is_debian_13_or_later {
|
|
return 0 unless -r '/etc/os-release';
|
|
|
|
my %os_release;
|
|
open(my $fh, '<', '/etc/os-release') or return 0;
|
|
while (my $line = <$fh>) {
|
|
chomp $line;
|
|
if ($line =~ /^([A-Z_]+)=(.*)$/) {
|
|
my ($key, $val) = ($1, $2);
|
|
$val =~ s/^"|"$//g;
|
|
$os_release{$key} = $val;
|
|
}
|
|
}
|
|
close($fh);
|
|
|
|
return 0 unless ($os_release{ID} // '') eq 'debian';
|
|
return 0 unless ($os_release{VERSION_ID} // '') =~ /^(\d+)/;
|
|
return $1 >= 13 ? 1 : 0;
|
|
}
|