mirror of
https://github.com/webmin/webmin.git
synced 2025-07-20 16:48:46 +00:00
41 lines
697 B
Perl
Executable File
41 lines
697 B
Perl
Executable File
#!/usr/local/bin/perl
|
|
# irix-setfacl.pl
|
|
# Wrapper for the chacl command
|
|
|
|
while(<STDIN>) {
|
|
s/\r|\n//g;
|
|
$default = ($_ =~ s/^default://);
|
|
s/^(other|mask):([rwx\-]{3})$/\1::\2/g;
|
|
if ($default) {
|
|
push(@dacl, $_);
|
|
}
|
|
else {
|
|
push(@acl, $_);
|
|
}
|
|
}
|
|
$esc = quotemeta($ARGV[0]);
|
|
$acl = join(",", @acl);
|
|
$dacl = join(",", @dacl);
|
|
if ($acl && $dacl) {
|
|
$out = `chacl -b $acl $dacl $esc 2>&1`;
|
|
}
|
|
elsif ($acl) {
|
|
if (-d $ARGV[0]) {
|
|
$out = `chacl $acl $esc 2>&1 && chacl -D $esc 2>&1`;
|
|
}
|
|
else {
|
|
$out = `chacl $acl $esc 2>&1`;
|
|
}
|
|
}
|
|
elsif ($dacl) {
|
|
$out = `chacl -d $dacl $esc 2>&1 && chacl -R $esc 2>&1`;
|
|
}
|
|
else {
|
|
$out = `chacl -B $esc 2>&1`;
|
|
}
|
|
if ($?) {
|
|
print STDERR $out;
|
|
exit 1;
|
|
}
|
|
|