Net-FullAuto
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
exit 1;
}
}
unless ($CPAN::Config->{tar}) {
if (-e '/usr/sfw/bin/gtar') {
$CPAN::Config->{tar}='/usr/sfw/bin/gtar';
} elsif (-e '/usr/bin/tar') {
$CPAN::Config->{tar}='/usr/bin/tar';
} elsif (-e '/usr/local/bin/tar') {
$CPAN::Config->{tar}='/usr/local/bin/tar';
} else {
print "\n\n FATAL ERROR!: The 'tar' utility is".
" missing.\n".
"\n\n Please report any bugs and send any",
"\n questions, thoughts or feedback to:",
"\n\n Brian.Kelly\@FullAuto.com.",
"\n\n Press ANY key to exit.\n\n";<STDIN>;
exit 1;
}
}
}
sub remove_sshd {
my $sshd_account=$_[0];
my $cygwin_loc=get_cygwin_location();
my $clo=$cygwin_loc;
$clo=~s/\\/\\\\/g;
if (-e $cygwin_loc) {
if ($^O eq 'cygwin') {
my $srvcmd='export CYGWIN=nodosfilewarning & '.
"cmd /c $clo\\\\bin\\\\bash -lc ".
'"/usr/bin/cygrunsrv --verbose --query sshd"';
my $cygout=`$srvcmd 2>&1`;
if ($cygout=~/^Account\s+: .\\$sshd_account$/m) {
my $srvcmd='export CYGWIN=nodosfilewarning & '.
"cmd /c $clo\\\\bin\\\\bash -lc ".
'"/usr/bin/cygrunsrv --remove sshd"';
my $cygout=`$srvcmd 2>&1`;
} elsif (-1==index $cygout,'service does not exist') {
return 0;
}
} else {
my $srvcmd='SET CYGWIN=nodosfilewarning & '.
"cmd /c $clo\\\\bin\\\\bash -lc ".
'"/usr/bin/cygrunsrv --verbose --query sshd"';
my $cygout=`$srvcmd 2>&1`;
if ($cygout=~/^Account\s+: .\\$sshd_account$/m) {
my $srvcmd='SET CYGWIN=nodosfilewarning & '.
"cmd /c $clo\\\\bin\\\\bash -lc ".
'"/usr/bin/cygrunsrv --remove sshd"';
my $cygout=`$srvcmd 2>&1`;
} elsif (-1==index $cygout,'service does not exist') {
return 0;
}
}
my $remove_out=`net user /delete sshd 2>&1`;
if (-e "$cygwin_loc\\etc\\passwd") {
do {
local $^I='.bak'; # see perlvar(1)
local @ARGV=("$cygwin_loc\\etc\\passwd");
while(<>){
s/^$sshd_account:.*\s*$//;
s/^sshd:.*\s*$//;
print;
}
};
}
}
return 1;
}
sub test_windows_user_rights {
my $user=$_[0];
# Is Cygwin installed?
my $cygwin_location=get_cygwin_location();
# Adjust memory quotas for a process (SeIncreaseQuotaPrivilege)
# Create a token object (SeCreateTokenPrivilege)
# Log on as a service (SeServiceLogonRight)
# Replace a process level token
# (SeAssignPrimaryTokenPrivilege)
# Act as part of the operating system (SeTcbPrivilege)
# > And for security.....
# Deny log on locally (SeDenyInteractiveLogonRight)
# Deny access to this computer from the network (SeDenyNetworkLogonRight)
# Deny log on through Terminal Services
# (SeDenyRemoteInteractiveLogonRight)
my $rights=`$cygwin_location\\bin\\editrights -u $user -l`;
my $output='';
if ((-1==index $rights,'SeServiceLogonRight') ||
(-1==index $rights,'SeTcbPrivilege') ||
(-1==index $rights,'SeCreateTokenPrivilege') ||
(-1==index $rights,'SeAssignPrimaryTokenPrivilege') || 1) {
my $die='DYING';
my @missing_rights=();
if (-1==index $rights,'SeTcbPrivilege') {
unless ($output=
`/bin/editrights -a SeTcbPrivilege -u $user`) {
push @missing_rights, 'SeTcbPrivilege';
}
}
if (-1==index $rights,'SeCreateTokenPrivilege') {
my $prv='SeCreateTokenPrivilege';
unless (`/bin/editrights -a $prv -u $user`) {
push @missing_rights, 'SeCreateTokenPrivilege';
}
}
if (-1==index $rights,'SeAssignPrimaryTokenPrivilege') {
my $prv='SeAssignPrimaryTokenPrivilege';
unless (`/bin/editrights -a $prv -u $user`) {
push @missing_rights, 'SeAssignPrimaryTokenPrivilege';
}
}
if (-1==index $rights,'SeServiceLogonRight') {
( run in 1.323 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )