summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorDavid Disseldorp <ddiss@suse.de>2011-03-02 14:34:28 +0100
committerAndreas Schneider <asn@samba.org>2011-03-04 15:46:14 +0100
commit61bf4699f0f8b353272c060b8309f339ed2a0f88 (patch)
tree12a22e9df8b0b99ad6db4539ef04565c7ba9db4b /source3/include
parentb0c6899973d3e0e5d4dbd2590157f7200c20f8ff (diff)
downloadsamba-61bf4699f0f8b353272c060b8309f339ed2a0f88.tar.gz
samba-61bf4699f0f8b353272c060b8309f339ed2a0f88.tar.bz2
samba-61bf4699f0f8b353272c060b8309f339ed2a0f88.zip
s3-printing: follow force user/group for driver IO
Configuring force user/group settings for the print$ share currently has unexpected results, this is explained by how the driver upload/add process takes place. Consider the following example: [print$] path = /print-drv write list = $DRIVER_UPLOAD_USER force group = ntadmin - the client connects to the [print$] share and uploads all driver files to the /print-drv/W32X86 directory. - This is permitted, as /print-drv/W32X86 is owned by group ntadmin, and the "force group = ntadmin" takes effect for the [print$] session. - Once all files are uploaded, the client connects to the [ipc$] share and issues an AddPrinterDriverEx spoolss request. - In handling this request move_driver_to_download_area() is called, which attempts to create the directory /print-drv/W32X86/3 - The create directory fails, as it is done as the user connected to the [ipc$] share which does not have permission to write to the driver directory. The [print$] "force group = ntadmin" has no effect. This is a regression from previous behaviour prior to the commit: 783ab04 Convert move_driver_to_download_area to use create_conn_struct. https://bugzilla.samba.org/show_bug.cgi?id=7921 Signed-off-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index e866dedc60..199ee4836c 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5150,6 +5150,7 @@ void exit_server_fault(void);
/* The following definitions come from smbd/service.c */
bool set_conn_connectpath(connection_struct *conn, const char *connectpath);
+NTSTATUS set_conn_force_user_group(connection_struct *conn, int snum);
bool set_current_service(connection_struct *conn, uint16 flags, bool do_chdir);
void load_registry_shares(void);
int add_home_service(const char *service, const char *username, const char *homedir);