summaryrefslogtreecommitdiff
path: root/source3/lib/afs.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2003-10-23 16:49:46 +0000
committerVolker Lendecke <vlendec@samba.org>2003-10-23 16:49:46 +0000
commit4f62277d89bacff1f42e73bd86342f25116d8643 (patch)
treef7188fa49843a8bb7dfcb16b434621a04718e835 /source3/lib/afs.c
parentc3125b6e2f1e1916faeb02460ab9064ab65dc8a9 (diff)
downloadsamba-4f62277d89bacff1f42e73bd86342f25116d8643.tar.gz
samba-4f62277d89bacff1f42e73bd86342f25116d8643.tar.bz2
samba-4f62277d89bacff1f42e73bd86342f25116d8643.zip
After a phonecall with jra finally commit this.
This changes our behaviour when the setresuid call is available. We now not only change the effective uid but also the real uid when becoming unprivileged. This is mainly for improved AFS compatibility, as AFS selects the token to send to the server based on the real uid of the process. I tested this with a W2k server with two non-root 'runas' sessions. They come in via a single smbd as two different users using two session setups. Samba on Linux can still switch between the two uids, proved by two different files created via those sessions. Volker (This used to be commit 556c62f93535c606122b22e7e843d9da9a1cd438)
Diffstat (limited to 'source3/lib/afs.c')
-rw-r--r--source3/lib/afs.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/source3/lib/afs.c b/source3/lib/afs.c
index 882442a79f..fc78950f39 100644
--- a/source3/lib/afs.c
+++ b/source3/lib/afs.c
@@ -185,13 +185,9 @@ BOOL afs_login(connection_struct *conn)
strncpy(p, cell, sizeof(ticket)-PTR_DIFF(p,ticket)-1);
p += strlen(p)+1;
- /* As long as we still only use the effective UID we need to set the
- * token for it here as well. This involves patching AFS in two
- * places. Once we start using the real uid where we have the
- * setresuid function, we can use getuid() here which would be more
- * correct. */
-
- ct.ViceId = geteuid();
+ /* This assumes that we have setresuid and set the real uid as well as
+ the effective uid in set_effective_uid(). */
+ ct.ViceId = getuid();
DEBUG(10, ("Creating Token for uid %d\n", ct.ViceId));
/* Alice's network layer address. At least Openafs-1.2.10