MOON
Server: Apache
System: Linux cl1170g 4.19.62-mod-std-ipv6-64-rescue #828825 SMP Tue Jul 30 13:54:49 UTC 2019 x86_64
User: wh0f20bb (1057)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //proc/thread-self/root/root/webmin-1.881/file/setfacl.cgi
#!/usr/bin/perl
# setfacl.cgi
# Sets the ACLs for some file

require './file-lib.pl';
$disallowed_buttons{'acl'} && &error($text{'ebutton'});
&ReadParse();
&webmin_log("acl", undef, $in{'file'}, \%in);
&switch_acl_uid_and_chroot();
print "Content-type: text/plain\n\n";
if ($access{'ro'} || !&can_access($in{'file'})) {
	print $text{'facl_eaccess'},"\n";
	}
else {
	pipe(ACLINr, ACLINw);
	pipe(ACLOUTr, ACLOUTw);
	$pid = fork();
	if (!$pid) {
		untie(*STDIN);
		untie(*STDOUT);
		untie(*STDERR);
		open(STDIN, "<&ACLINr");
		open(STDOUT, ">&ACLOUTw");
		open(STDERR, ">&ACLOUTw");
		close(ACLINw);
		close(ACLOUTr);
		exec("$config{'setfacl'} '$in{'file'}'");
		print "Exec failed : $!\n";
		exit(1);
		}
	close(ACLINr);
	close(ACLOUTw);
	print ACLINw $in{'acl'},"\n";
	close(ACLINw);
	waitpid($pid, 0);
	$rv = <ACLOUTr>;
	close(ACLOUTr);
	if ($rv) {
		print $rv;
		}
	else {
		print "\n";
		}
	}