mirror of
https://github.com/webmin/webmin.git
synced 2025-08-17 19:06:28 +00:00
39 lines
891 B
Perl
Executable File
39 lines
891 B
Perl
Executable File
#!/usr/local/bin/perl
|
|
# getattrs.cgi
|
|
# Returns a list in URL-encode name=value format of attributes on some file
|
|
|
|
require './file-lib.pl';
|
|
&ReadParse();
|
|
&switch_acl_uid_and_chroot();
|
|
print "Content-type: text/plain\n\n";
|
|
if (!&can_access($in{'file'})) {
|
|
print $text{'facl_eaccess'},"\n";
|
|
}
|
|
else {
|
|
$out = &backquote_command("attr -l ".quotemeta($in{'file'})." 2>&1");
|
|
if ($?) {
|
|
print $out,"\n";
|
|
}
|
|
else {
|
|
foreach $l (split(/[\r\n]+/, $out)) {
|
|
if ($l =~ /Attribute\s+"(.*)"/i) {
|
|
# Get the valid for this attribute
|
|
local $name = $1;
|
|
$got = &backquote_command(
|
|
"attr -g ".quotemeta($name)." ".
|
|
quotemeta($in{'file'})." 2>&1");
|
|
if ($? || $got !~ /^(.*)\n([\0-\377]*)\n$/) {
|
|
print $got,"\n";
|
|
exit;
|
|
}
|
|
push(@rv, [ $name, $2 ] );
|
|
}
|
|
}
|
|
print "\n";
|
|
foreach $r (@rv) {
|
|
print &urlize($r->[0]),"=",&urlize($r->[1]),"\n";
|
|
}
|
|
}
|
|
}
|
|
|