MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //var/usr/webmin-1.941/file/irix-getfacl.pl
#!/usr/bin/perl
# irix-getfacl.pl
# Wrapper for the ls -D command

$esc = quotemeta($ARGV[0]);
$out = `ls -dDL $esc 2>&1`;
if ($?) {
	print STDERR $out;
	exit 1;
	}
if ($out !~ /\[([^\]]*)\]/) {
	print STDERR "Failed to parse ls -D output : $out\n";
	exit 1;
	}
if ($1) {
	# Convert to normal ACL form
	($acl, $dacl) = split(/\//, $1);
	foreach (split(/,/, $acl)) {
		s/^u:/user:/;
		s/^g:/group:/;
		s/^o:/other:/;
		s/^m:/mask:/;
		print $_,"\n";
		}
	foreach (split(/,/, $dacl)) {
		s/^u:/user:/;
		s/^g:/group:/;
		s/^o:/other:/;
		s/^m:/mask:/;
		print "default:",$_,"\n";
		}
	}
else {
	# Make up ACL from perms
	local @st = stat($ARGV[0]);
	local $other = $st[2] & 7;
	local $group = ($st[2] >> 3) & 7;
	local $user = ($st[2] >> 6) & 7;
	print "user::",&octal_to_perms($user),"\n";
	print "group::",&octal_to_perms($group),"\n";
	print "other::",&octal_to_perms($other),"\n";
	print "mask::",&octal_to_perms($user | $group),"\n";
	}

sub octal_to_perms
{
local $rv;
$rv .= ($_[0] & 4 ? "r" : "-");
$rv .= ($_[0] & 2 ? "w" : "-");
$rv .= ($_[0] & 1 ? "x" : "-");
return $rv;
}