0
0
2025-05-05 13:13:32 +02:00

43 lines
1.1 KiB
Perl

#! /usr/bin/perl
use strict;
use warnings;
if (scalar @ARGV < 1) {
die "Usage: $0 <lowest_gid>";
}
my $LOWEST_PVV_GID = int($ARGV[0]);
my @lines = ();
# Read old group file
open(IN, "/etc/group") || die "Unable to open /etc/group: $!";
while(<IN>) {
my @parts = split(":");
if ($parts[2] < $LOWEST_PVV_GID || $parts[0] eq "nogroup") {
push @lines, $_;
}
}
close IN || die "Unable to close /etc/group: $!";
# Read pvv group file
my $groupcount = 0;
open(PVV, "/etc/group.pvv") || die "Unable to open /etc/group.pvv: $!";
while(<PVV>) {
++$groupcount;
push @lines, $_;
}
close PVV || die "Unable to close /etc/group.pvv: $!";
if ($groupcount < 200) {
die "/etc/group.pvv has less than 200 groups, something went wrong";
}
open(OUT, ">/etc/group.tmp") || die "Unable to open /etc/group.tmp for writing: $!";
foreach (@lines) {
print OUT $_ || die "Can't write to /etc/group.tmp: $!";
}
close OUT || die "Unable to close /etc/group.tmp: $!";
rename "/etc/group.tmp", "/etc/group" || die "Unable to move /etc/group.tmp to /etc/group: $!";