Modificare la configurazione di Webmin da command line
È possibile farlo in due modi
- Con api XML RPC (TODO)
- Tramite modulo Perl
API Perl
Creazione del pacchetto debian
wget "http://www.webmin.com/Webmin-API-1.0.tar.gz" tar xvzf Webmin-API-1.0.tar.gz sudo apt-get install dh-make-perl devscripts dh-make-perl Webmin-API-1.0 DEB_BUILD_OPTIONS=nocheck debuild sudo dpkg -i libwebmin-api-perl_1.0-1_all.deb
Esempio per creazione utente e gruppo
- Questo script crea l'utente helpdesk, lo inserisce nel gruppo helpdesk-group e gli assegna i moduli dhpcd e lpadmin. Da notare che al termine dello script è necessario riavviare webmin
#!/usr/bin/perl
use Webmin::API;
use Data::Dumper;
foreign_require("acl", "acl-lib.pl");
if ( !acl::get_user('helpdesk') ) {
print "Creating user helpdesk\n";
$newUser = { 'name' => 'helpdesk',
'pass' => acl::encrypt_password('onlyview'),
'temppass' => '0',
'nochange' => '0',
'modules' => [ 'dhcpd', 'lpadmin' ]
};
acl::create_user($newUser);
system("/usr/sbin/invoke-rc.d", "webmin", "restart");
}
if ( !acl::get_group('helpdesk-group') ) {
print "Creating group helpdesk-group\n";
$newGroup = { 'name' => 'helpdesk-group',
'members' => [ 'helpdesk' ] ,
'modules' => [ 'dhcpd', 'lpadmin' ]
};
acl::create_group($newGroup);
system("/usr/sbin/invoke-rc.d", "webmin", "restart");
}
- Questo script lista utenti e gruppi in formato ababstanza leggibile:
#!/usr/bin/perl
use Webmin::API;
use Data::Dumper;
foreign_require("acl", "acl-lib.pl");
@users = acl::list_users();
for $href (@users) {
print "{ ";
for $role ( keys %$href ) {
print "$role=$href->{$role} ";
}
print "}\n\n";
}
@groups = acl::list_groups();
for $href (@groups) {
print "{ ";
for $role ( keys %$href ) {
print "$role=$href->{$role} ";
}
print "}\n\n";
}