mirror of
https://github.com/webmin/webmin.git
synced 2025-08-16 14:51:18 +00:00
49 lines
1.2 KiB
Perl
Executable File
49 lines
1.2 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# change_users.cgi
|
|
# Update user allow and deny parameters
|
|
|
|
require './usermin-lib.pl';
|
|
$access{'users'} || &error($text{'acl_ecannot'});
|
|
use Socket;
|
|
&ReadParse();
|
|
&error_setup($text{'users_err'});
|
|
|
|
@users = split(/\s+/, $in{"user"});
|
|
if ($in{"access"}) {
|
|
foreach $u (@users) {
|
|
if ($u =~ /^\@(\S+)$/) {
|
|
defined(getgrnam($1)) ||
|
|
&error(&text('users_egroup', "$1"));
|
|
}
|
|
elsif ($u =~ /^(\d*)-(\d*)$/ && ($1 || $2)) {
|
|
# Assume UIDs are ok
|
|
}
|
|
else {
|
|
defined(getpwnam($u)) ||
|
|
&error(&text('users_euser', $u));
|
|
}
|
|
}
|
|
}
|
|
if ($in{'shells_deny'}) {
|
|
-r $in{'shells'} || &error($text{'users_eshell'});
|
|
}
|
|
|
|
&lock_file($usermin_miniserv_config);
|
|
&get_usermin_miniserv_config(\%miniserv);
|
|
delete($miniserv{"allowusers"});
|
|
delete($miniserv{"denyusers"});
|
|
if ($in{"access"} == 1) { $miniserv{"allowusers"} = join(' ', @users); }
|
|
elsif ($in{"access"} == 2) { $miniserv{"denyusers"} = join(' ', @users); }
|
|
if ($in{'shells_deny'}) {
|
|
$miniserv{'shells_deny'} = $in{'shells'};
|
|
}
|
|
else {
|
|
delete($miniserv{'shells_deny'});
|
|
}
|
|
&put_usermin_miniserv_config(\%miniserv);
|
|
&unlock_file($usermin_miniserv_config);
|
|
&restart_usermin_miniserv();
|
|
&webmin_log("users", undef, undef, \%in);
|
|
&redirect("");
|
|
|