Roel van Meer writes:

I'm using samba 3.0.26a with cups as printing backend, which are both working fine. However, I would like to grant all users access to all print jobs, but without granting them the right to add or modify printers and printer settings.

When I grant users the SePrintOperatorPrivilege privilege, they can indeed cancel other people's jobs, but then they can also rename printers on the server (which breaks things).

Does anyone know if it is possible to separate access to these two operations, or to grant normal users the right to remove other people's jobs without them having the SePrintOperatorPrivilege priv?

I received a very helpful suggestion from Dale Schroeder on this. He said it was possible to grant users or groups the 'Manage Documents' privilege from a Windows client. However, when I do this, users are still not allowed to cancel other users' print jobs. Some debugging of the samba code showed that the request is denied in print_access_check() in printing/nt_printing.c.

The code I see there does something I do not understand. When canceling a job you need JOB_ACCESS_ADMINISTER privileges, but the code modifies this to check for PRINTER_ACCESS_ADMINISTER privs. The comments preceding this statement are:

       /* Now this is the bit that really confuses me.  The access
          type needs to be changed from JOB_ACCESS_ADMINISTER to
          PRINTER_ACCESS_ADMINISTER for this to work.  Something
          to do with the child (job) object becoming like a
          printer??  -tpot */

When I comment the line changing the access_type (line 5514), canceling print jobs works as expected.

Does anyone know why I would need PRINTER_ACCESS_ADMINISTER instead of JOB_ACCESS_ADMINISTER? Does changing it introduce security problems?

I can file a bug report if necessary.

Regards,

roel
--
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/listinfo/samba

Reply via email to