#!/usr/bin/perl use strict; my $currentuser = `/usr/bin/whoami`; chomp $currentuser; sub usage { print "Syntax: enuser.pl [ -e | -d ] n"; exit 1; } if ($currentuser ne "root") { print "This script must be run as root. Use sudo if needed.n"; exit 1; } my $enableUser = 1; if (@ARGV < 2) { usage(); } if ($ARGV[0] eq "-e") { $enableUser = 1; } elsif ($ARGV[0] eq "-d") { $enableUser = 0; } else { usage(); } my $userid = $ARGV[1]; my $aa = `/usr/bin/niutil -read . /users/$userid | /usr/bin/egrep '^authentication_authority:'`; if ($aa) { ($aa) = ($aa =~ /^authentication_authority: *(.+)/); } my ($isdisabled,$oldaa) = ($aa =~ /^(;DisabledUser;)(.+)/); if ($enableUser) { if ($isdisabled) { if ($oldaa =~ /<.+>/) { ($oldaa) = ($oldaa =~ /<(.+)>/); } `/usr/bin/niutil -createprop . /users/$userid authentication_authority '$oldaa'`; print "Enabled user $userid.n"; } else { print "User $userid is already enabled.n"; } } elsif ($isdisabled) { print "User $userid is already disabled.n"; } else { `/usr/bin/niutil -createprop . /users/$userid authentication_authority ';DisabledUser;<$aa>'`; print "Disabled user $userid.n"; }