web/conf/rhn_dobby.conf | 1 + web/modules/dobby/scripts/db-control | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-)
New commits: commit 6a8787a637c86257cc90023430319421b83e4b8f Author: Miroslav Suchý msuchy@redhat.com Date: Mon Oct 22 15:55:39 2012 +0200
db-control under PG can be run as root or postgres user
diff --git a/web/conf/rhn_dobby.conf b/web/conf/rhn_dobby.conf index 6212624..d04dd75 100644 --- a/web/conf/rhn_dobby.conf +++ b/web/conf/rhn_dobby.conf @@ -11,3 +11,4 @@ archive_dir_format = /rhnsat/admin/%s/archive pg_data_dir_format = /var/lib/pgsql/data
oracle_user = oracle +postgresql_user = postgres diff --git a/web/modules/dobby/scripts/db-control b/web/modules/dobby/scripts/db-control index 19e88fc..6bf24cf 100755 --- a/web/modules/dobby/scripts/db-control +++ b/web/modules/dobby/scripts/db-control @@ -13,11 +13,20 @@ use Dobby::Log; my $exec_name = basename $0; my $cli = new Dobby::CLI $exec_name;
+my $backend = PXT::Config->get('db_backend'); my $cfg = new PXT::Config("dobby"); -my ($username, undef, $uid, $gid) = getpwnam($cfg->get("oracle_user")); +my $intended_username = $cfg->get("${backend}_user"); +my ($username, undef, $uid, $gid) = getpwnam($intended_username);
if (not defined $uid or not defined $gid or $uid != $> or $gid != $)) { - $cli->fatal("Error: please run this command as the $username user ('su - oracle')."); + if ($backend eq 'postgresql') { + # postgresql backend can be run as root or postgres user + if ( $> != 0 or $) != 0) { + $cli->fatal("Error: please run this command as the root ('su -')."); + } + } else { # oracle backend can be run only as oracle user + $cli->fatal("Error: please run this command as the $intended_username user ('su - $intended_username')."); + } }
Dobby::CLI::MiscCommands->register_dobby_commands($cli);
spacewalk-commits@lists.fedorahosted.org