Fix bug #7080 - Quota only shown when logged as root.
authorJeremy Allison <jra@samba.org>
Tue, 5 Apr 2011 21:15:56 +0000 (14:15 -0700)
committerKarolin Seeger <kseeger@samba.org>
Tue, 14 Jun 2011 10:56:47 +0000 (12:56 +0200)
Ensure we also check conn->admin_user when rejecting non-root access.
(cherry picked from commit 6d360c9e5db64fbd96d353013b7836d771935b6d)

source3/smbd/fake_file.c
source3/smbd/nttrans.c
source3/smbd/trans2.c

index 6898793d29ee966193cbcde7d024619a31b825d0..e0256f2286b67ab2af5f2a75441b3f79e87db0e1 100644 (file)
@@ -126,7 +126,7 @@ NTSTATUS open_fake_file(struct smb_request *req, connection_struct *conn,
        NTSTATUS status;
 
        /* access check */
-       if (conn->server_info->utok.uid != 0) {
+       if (conn->server_info->utok.uid != 0 && !conn->admin_user) {
                DEBUG(3, ("open_fake_file_shared: access_denied to "
                          "service[%s] file[%s] user[%s]\n",
                          lp_servicename(SNUM(conn)),
index 3ff192bae336a8c08f0b6dc51fb68e9a2d41324d..f82820c71bf53e0f33ef48e280637953fcb693ad 100644 (file)
@@ -2310,7 +2310,7 @@ static void call_nt_transact_get_user_quota(connection_struct *conn,
        ZERO_STRUCT(qt);
 
        /* access check */
-       if (conn->server_info->utok.uid != 0) {
+       if (conn->server_info->utok.uid != 0 && !conn->admin_user) {
                DEBUG(1,("get_user_quota: access_denied service [%s] user "
                         "[%s]\n", lp_servicename(SNUM(conn)),
                         conn->server_info->unix_name));
@@ -2580,7 +2580,7 @@ static void call_nt_transact_set_user_quota(connection_struct *conn,
        ZERO_STRUCT(qt);
 
        /* access check */
-       if (conn->server_info->utok.uid != 0) {
+       if (conn->server_info->utok.uid != 0 && !conn->admin_user) {
                DEBUG(1,("set_user_quota: access_denied service [%s] user "
                         "[%s]\n", lp_servicename(SNUM(conn)),
                         conn->server_info->unix_name));
index 84139daa0e199c578fd49e40040e7d63dbff2c90..1a171d84d1d4b9cd9ca8d3fd632d98d6aea27963 100644 (file)
@@ -3156,7 +3156,8 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)bsize, (unsigned
                        fsp.fnum = -1;
 
                        /* access check */
-                       if (conn->server_info->utok.uid != sec_initial_uid()) {
+                       if (conn->server_info->utok.uid != sec_initial_uid() &&
+                                       !conn->admin_user) {
                                DEBUG(0,("set_user_quota: access_denied "
                                         "service [%s] user [%s]\n",
                                         lp_servicename(SNUM(conn)),
@@ -3643,7 +3644,7 @@ cap_low = 0x%x, cap_high = 0x%x\n",
                                ZERO_STRUCT(quotas);
 
                                /* access check */
-                               if ((conn->server_info->utok.uid != sec_initial_uid())
+                               if (((conn->server_info->utok.uid != sec_initial_uid()) && !conn->admin_user)
                                    ||!CAN_WRITE(conn)) {
                                        DEBUG(0,("set_user_quota: access_denied service [%s] user [%s]\n",
                                                 lp_servicename(SNUM(conn)),