mirror of
https://github.com/webmin/webmin.git
synced 2025-07-29 11:50:54 +00:00
79 lines
2.4 KiB
Perl
Executable File
79 lines
2.4 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
|
|
require './filemin-lib.pl';
|
|
|
|
&ReadParse();
|
|
|
|
get_paths();
|
|
|
|
my @errors;
|
|
|
|
my $perms = $in{'perms'};
|
|
|
|
# Selected directories and files only
|
|
if($in{'applyto'} eq '1') {
|
|
foreach $name (split(/\0/, $in{'name'})) {
|
|
if (system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
}
|
|
}
|
|
|
|
# Selected files and directories and files in selected directories
|
|
if($in{'applyto'} eq '2') {
|
|
foreach $name (split(/\0/, $in{'name'})) {
|
|
if(system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
if(-d "$cwd/$name") {
|
|
if(system_logged("find ".quotemeta("$cwd/$name")." -maxdepth 1 -type f -exec chmod ".quotemeta($perms)." {} \\;") != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# All (recursive)
|
|
if($in{'applyto'} eq '3') {
|
|
foreach $name (split(/\0/, $in{'name'})) {
|
|
if(system_logged("chmod -R ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
}
|
|
}
|
|
|
|
# Selected files and files under selected directories and subdirectories
|
|
if($in{'applyto'} eq '4') {
|
|
foreach $name (split(/\0/, $in{'name'})) {
|
|
if(-f "$cwd/$name") {
|
|
if(system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
} else {
|
|
if(system_logged("find ".quotemeta("$cwd/$name")." -type f -exec chmod ".quotemeta($perms)." {} \\;") != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Selected directories and subdirectories
|
|
if($in{'applyto'} eq '5') {
|
|
foreach $name (split(/\0/, $in{'name'})) {
|
|
if(-d "$cwd/$name") {
|
|
if(system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
if(system_logged("find ".quotemeta("$cwd/$name")." -type d -exec chmod ".quotemeta($perms)." {} \\;") != 0) {
|
|
push @errors, "$name - $text{'error_chmod'}: $?";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (scalar(@errors) > 0) {
|
|
print_errors(@errors);
|
|
} else {
|
|
&redirect("index.cgi?path=".&urlize($path));
|
|
}
|