Petr Hracek 72d4bc
diff --git a/amandad-src/amandad.c b/amandad-src/amandad.c
Petr Hracek 72d4bc
index d864c3f..4a899fb 100644
Petr Hracek 72d4bc
--- a/amandad-src/amandad.c
Petr Hracek 72d4bc
+++ b/amandad-src/amandad.c
Petr Hracek 72d4bc
@@ -456,7 +456,7 @@ main(
Petr Hracek 72d4bc
     }
Petr Hracek 72d4bc
 
Petr Hracek 72d4bc
 #ifndef SINGLE_USERID
Petr Hracek 72d4bc
-    if (geteuid() == 0) {
Petr Hracek 72d4bc
+    if (getuid() == 0) {
Petr Hracek 72d4bc
 	if (strcasecmp(auth, "krb5") != 0) {
Petr Hracek 72d4bc
 	    struct passwd *pwd;
Petr Hracek 72d4bc
 	    /* lookup our local user name */
Petr Hracek 72d4bc
diff --git a/common-src/krb5-security.c b/common-src/krb5-security.c
Petr Hracek 72d4bc
index c3075fa..8d3b18a 100644
Petr Hracek 72d4bc
--- a/common-src/krb5-security.c
Petr Hracek 72d4bc
+++ b/common-src/krb5-security.c
Petr Hracek 72d4bc
@@ -334,6 +334,7 @@ krb5_accept(
Petr Hracek 72d4bc
     char hostname[NI_MAXHOST];
Petr Hracek 72d4bc
     int result;
Petr Hracek 72d4bc
     char *errmsg = NULL;
Petr Hracek 72d4bc
+    struct passwd *pw;
Petr Hracek 72d4bc
 
Petr Hracek 72d4bc
     krb5_init();
Petr Hracek 72d4bc
 
Petr Hracek 72d4bc
@@ -372,6 +373,12 @@ krb5_accept(
Petr Hracek 72d4bc
 	error("gss_server failed: %s\n", rc->errmsg);
Petr Hracek 72d4bc
     rc->accept_fn = fn;
Petr Hracek 72d4bc
     sec_tcp_conn_read(rc);
Petr Hracek 72d4bc
+
Petr Hracek 72d4bc
+    /* totally drop privileges at this point
Petr Hracek 72d4bc
+     *(making the userid equal to the dumpuser)
Petr Hracek 72d4bc
+     */
Petr Hracek 72d4bc
+    pw = getpwnam(CLIENT_LOGIN);
Petr Hracek 72d4bc
+    setreuid(pw->pw_uid, pw->pw_uid);
Petr Hracek 72d4bc
 }
Petr Hracek 72d4bc
 
Petr Hracek 72d4bc
 /*
Petr Hracek 72d4bc
@@ -712,7 +719,7 @@ krb5_init(void)
Petr Hracek 72d4bc
     beenhere = 1;
Petr Hracek 72d4bc
 
Petr Hracek 72d4bc
 #ifndef BROKEN_MEMORY_CCACHE
Petr Hracek 72d4bc
-    putenv(stralloc("KRB5_ENV_CCNAME=MEMORY:amanda_ccache"));
Petr Hracek 72d4bc
+    putenv(stralloc(KRB5_ENV_CCNAME"=MEMORY:amanda_ccache"));
Petr Hracek 72d4bc
 #else
Petr Hracek 72d4bc
     /*
Petr Hracek 72d4bc
      * MEMORY ccaches seem buggy and cause a lot of internal heap
Petr Hracek 72d4bc
@@ -727,7 +734,7 @@ krb5_init(void)
Petr Hracek 72d4bc
 	char *ccache;
Petr Hracek 72d4bc
 	ccache = malloc(128);
Petr Hracek 72d4bc
 	g_snprintf(ccache, SIZEOF(ccache),
Petr Hracek 72d4bc
-		 "KRB5_ENV_CCNAME=FILE:/tmp/amanda_ccache.%ld.%ld",
Petr Hracek 72d4bc
+		 KRB5_ENV_CCNAME"=FILE:/tmp/amanda_ccache.%ld.%ld",
Petr Hracek 72d4bc
 		 (long)geteuid(), (long)getpid());
Petr Hracek 72d4bc
 	putenv(ccache);
Petr Hracek 72d4bc
     }