From: Ryan Suarez on
Might be simpler to assign users to the builtin administrators group.
see if you have better luck:

#net sam list builtin
#net sam createbuiltingroup administrators
#net sam addmem administrators
#net sam listmem administrators
# net rpc rights list administrators
SeMachineAccountPrivilege
SeTakeOwnershipPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeRemoteShutdownPrivilege
SePrintOperatorPrivilege
SeAddUsersPrivilege
SeDiskOperatorPrivilege


Jeff Hardy wrote:
> I have been trying to setup a new print server on Fedora 12 based
> around samba-3.4.7-58.fc12.x86_64 and cups-1.4.2-28.fc12.x86_64. All
> looks good except for the ability for printer administrators to manage
> printers. Whether I specify users in a system group using the
> deprecated printer admin option, or specifically using net rpc rights
> and the SePrinterOperatorPrivilege, it does not matter. This is
> against an NT4 domain on samba-3.4.2.
>
> Interestingly, I have one user who can manage printers, whether or not
> he is in the group or has the privilege. Also, the printer admin
> pieces work correctly on an existing samba-3.0.28a print server
> against that same domain controller.
>
> I have been looking at level 10 logs to compare two users, the mystery
> adminuser, and the feckless denieduser, when running the following
> command (again, both are members of the printer admin group):
>
> rpcclient -c 'setdriver ZZZ "HP LaserJet 4000 Series PS"' -U <user>
> localhost
>
> Following are log snippets, both beginning with SPOOLSS_OPENPRINTEREX
> and ending when printer access is either granted as
> PRINTER_ACCESS_ADMINISTER or denied outright. Whether or not in the
> proper printer admin group or given the privilege, the outcome does
> not change for either user.
>
> First the user for whom administrative access is granted:
>
> --------------------------------------------
> [2010/03/31 13:43:35, 4] rpc_server/srv_pipe.c:2297(api_rpcTNP)
> api_rpcTNP: \spoolss op 0x45 - api_rpcTNP: rpc command:
> SPOOLSS_OPENPRINTEREX
> [2010/03/31 13:43:35, 6] rpc_server/srv_pipe.c:2327(api_rpcTNP)
> api_rpc_cmds[69].fn == 0x7f0e2d66c890
> [2010/03/31 13:43:35, 1]
> ../librpc/ndr/ndr.c:251(ndr_print_function_debug)
> spoolss_OpenPrinterEx: struct spoolss_OpenPrinterEx
> in: struct spoolss_OpenPrinterEx
> printername : *
> printername : '\\LOCALHOST\ZZZ'
> datatype : NULL
> devmode_ctr: struct spoolss_DevmodeContainer
> _ndr_size : 0x00000000 (0)
> devmode : NULL
> access_mask : 0x000f000c (983052)
> 0: SERVER_ACCESS_ADMINISTER
> 0: SERVER_ACCESS_ENUMERATE
> 1: PRINTER_ACCESS_ADMINISTER
> 1: PRINTER_ACCESS_USE
> 0: JOB_ACCESS_ADMINISTER
> 0: JOB_ACCESS_READ
> level : 0x00000001 (1)
> userlevel : union spoolss_UserLevel(case 1)
> level1 : *
> level1: struct spoolss_UserLevel1
> size : 0x0000001c (28)
> client : *
> client : '\\TKNEW'
> user : *
> user : 'adminuser'
> build : 0x00000565 (1381)
> major : UNKNOWN_ENUM_VALUE (2)
> minor :
> SPOOLSS_MINOR_VERSION_0 (0)
> processor :
> PROCESSOR_ARCHITECTURE_INTEL (0)
> checking name: \\LOCALHOST\ZZZ
> [2010/03/31 13:43:35, 10]
> rpc_server/srv_spoolss_nt.c:560(open_printer_hnd)
> open_printer_hnd: name [\\LOCALHOST\ZZZ]
> [2010/03/31 13:43:35, 4] rpc_server/srv_lsa_hnd.c:160(create_policy_hnd)
> Opened policy hnd[1] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B C7 89 ........ .....K..
> [0010] F9 54 00 00 .T..
> [2010/03/31 13:43:35, 3]
> rpc_server/srv_spoolss_nt.c:394(set_printer_hnd_printertype)
> Setting printer type=\\LOCALHOST\ZZZ
> Printer is a printer
> [2010/03/31 13:43:35, 4]
> rpc_server/srv_spoolss_nt.c:434(set_printer_hnd_name)
> Setting printer name=\\LOCALHOST\ZZZ (len=15)
> [2010/03/31 13:43:35, 8] lib/util.c:1879(is_myname)
> is_myname("LOCALHOST") returns 0
> searching for [ZZZ]
> [2010/03/31 13:43:35, 10]
> printing/nt_printing.c:4630(get_a_printer_internal)
> get_a_printer: [printers] level 2
> [2010/03/31 13:43:35, 10]
> printing/nt_printing.c:3917(get_a_printer_2_default)
> get_a_printer_2_default: driver name set to []
> printername: printers
> [2010/03/31 13:43:35, 10]
> printing/nt_printing.c:3917(get_a_printer_2_default)
> get_a_printer_2_default: driver name set to []
> printername: CRBSTD-P
> set_printer_hnd_name: Printer found: ZZZ -> ZZZ
> [2010/03/31 13:43:35, 5]
> rpc_server/srv_spoolss_nt.c:590(open_printer_hnd)
> 1 printer handles active
> [2010/03/31 13:43:35, 4]
> rpc_server/srv_lsa_hnd.c:180(find_policy_by_hnd_internal)
> Found policy hnd[0] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B C7 89 ........ .....K..
> [0010] F9 54 00 00 .T..
> [2010/03/31 13:43:35, 4]
> rpc_server/srv_lsa_hnd.c:180(find_policy_by_hnd_internal)
> Found policy hnd[0] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B C7 89 ........ .....K..
> [0010] F9 54 00 00 .T..
> [2010/03/31 13:43:35, 4]
> rpc_server/srv_spoolss_nt.c:377(get_printer_snum)
> short name:ZZZ
> [2010/03/31 13:43:35, 3] lib/access.c:362(only_ipaddrs_in_list)
> only_ipaddrs_in_list: list has non-ip address (127.)
> [2010/03/31 13:43:35, 3] lib/access.c:396(check_access)
> check_access: hostnames in host allow/deny list.
> [2010/03/31 13:43:35, 2] lib/access.c:406(check_access)
> Allowed connection from 127.0.0.1 (127.0.0.1)
> [2010/03/31 13:43:35, 10] smbd/share_access.c:234(user_ok_token)
> user_ok_token: share ZZZ is ok for unix user adminuser
> [2010/03/31 13:43:35, 4]
> rpc_server/srv_spoolss_nt.c:1726(_spoolss_OpenPrinterEx)
> Setting printer access = PRINTER_ACCESS_ADMINISTER
> [2010/03/31 13:43:35, 1]
> ../librpc/ndr/ndr.c:251(ndr_print_function_debug)
> spoolss_OpenPrinterEx: struct spoolss_OpenPrinterEx
> out: struct spoolss_OpenPrinterEx
> handle : *
> handle: struct policy_handle
> handle_type : 0x00000000 (0)
> uuid :
> 00000002-0000-0000-b34b-c789f9540000
> result : WERR_OK
>
> --------------------------------------------
>
> And now for a user who is denied access:
>
> --------------------------------------------
> [2010/03/31 13:44:33, 4] rpc_server/srv_pipe.c:2297(api_rpcTNP)
> api_rpcTNP: \spoolss op 0x45 - api_rpcTNP: rpc command:
> SPOOLSS_OPENPRINTEREX
> [2010/03/31 13:44:33, 6] rpc_server/srv_pipe.c:2327(api_rpcTNP)
> api_rpc_cmds[69].fn == 0x7f0e2d66c890
> [2010/03/31 13:44:33, 1]
> ../librpc/ndr/ndr.c:251(ndr_print_function_debug)
> spoolss_OpenPrinterEx: struct spoolss_OpenPrinterEx
> in: struct spoolss_OpenPrinterEx
> printername : *
> printername : '\\LOCALHOST\ZZZ'
> datatype : NULL
> devmode_ctr: struct spoolss_DevmodeContainer
> _ndr_size : 0x00000000 (0)
> devmode : NULL
> access_mask : 0x000f000c (983052)
> 0: SERVER_ACCESS_ADMINISTER
> 0: SERVER_ACCESS_ENUMERATE
> 1: PRINTER_ACCESS_ADMINISTER
> 1: PRINTER_ACCESS_USE
> 0: JOB_ACCESS_ADMINISTER
> 0: JOB_ACCESS_READ
> level : 0x00000001 (1)
> userlevel : union spoolss_UserLevel(case 1)
> level1 : *
> level1: struct spoolss_UserLevel1
> size : 0x0000001c (28)
> client : *
> client : '\\TKNEW'
> user : *
> user : 'denieduser'
> build : 0x00000565 (1381)
> major : UNKNOWN_ENUM_VALUE (2)
> minor :
> SPOOLSS_MINOR_VERSION_0 (0)
> processor :
> PROCESSOR_ARCHITECTURE_INTEL (0)
> checking name: \\LOCALHOST\ZZZ
> [2010/03/31 13:44:33, 10]
> rpc_server/srv_spoolss_nt.c:560(open_printer_hnd)
> open_printer_hnd: name [\\LOCALHOST\ZZZ]
> [2010/03/31 13:44:33, 4] rpc_server/srv_lsa_hnd.c:160(create_policy_hnd)
> Opened policy hnd[1] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B 01 8A ........ .....K..
> [0010] FF 54 00 00 .T..
> [2010/03/31 13:44:33, 3]
> rpc_server/srv_spoolss_nt.c:394(set_printer_hnd_printertype)
> Setting printer type=\\LOCALHOST\ZZZ
> Printer is a printer
> [2010/03/31 13:44:33, 4]
> rpc_server/srv_spoolss_nt.c:434(set_printer_hnd_name)
> Setting printer name=\\LOCALHOST\ZZZ (len=15)
> [2010/03/31 13:44:33, 8] lib/util.c:1879(is_myname)
> is_myname("LOCALHOST") returns 0
> searching for [ZZZ]
> [2010/03/31 13:44:33, 10]
> printing/nt_printing.c:4630(get_a_printer_internal)
> get_a_printer: [printers] level 2
> [2010/03/31 13:44:33, 10]
> printing/nt_printing.c:3917(get_a_printer_2_default)
> get_a_printer_2_default: driver name set to []
> printername: printers
> [2010/03/31 13:44:33, 10]
> printing/nt_printing.c:3917(get_a_printer_2_default)
> get_a_printer_2_default: driver name set to []
> printername: CRBSTD-P
> set_printer_hnd_name: Printer found: ZZZ -> ZZZ
> [2010/03/31 13:44:33, 5]
> rpc_server/srv_spoolss_nt.c:590(open_printer_hnd)
> 1 printer handles active
> [2010/03/31 13:44:33, 4]
> rpc_server/srv_lsa_hnd.c:180(find_policy_by_hnd_internal)
> Found policy hnd[0] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B 01 8A ........ .....K..
> [0010] FF 54 00 00 .T..
> [2010/03/31 13:44:33, 4]
> rpc_server/srv_lsa_hnd.c:180(find_policy_by_hnd_internal)
> Found policy hnd[0] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B 01 8A ........ .....K..
> [0010] FF 54 00 00 .T..
> [2010/03/31 13:44:33, 4]
> rpc_server/srv_spoolss_nt.c:377(get_printer_snum)
> short name:ZZZ
> [2010/03/31 13:44:33, 3] lib/access.c:362(only_ipaddrs_in_list)
> only_ipaddrs_in_list: list has non-ip address (127.)
> [2010/03/31 13:44:33, 3] lib/access.c:396(check_access)
> check_access: hostnames in host allow/deny list.
> [2010/03/31 13:44:33, 2] lib/access.c:406(check_access)
> Allowed connection from 127.0.0.1 (127.0.0.1)
> [2010/03/31 13:44:33, 10] smbd/share_access.c:234(user_ok_token)
> user_ok_token: share ZZZ is ok for unix user denieduser
> [2010/03/31 13:44:33, 10] lib/util_seaccess.c:58(se_map_generic)
> se_map_generic(): mapped mask 0x20020008 to 0x00020008
> [2010/03/31 13:44:33, 10] lib/util_seaccess.c:58(se_map_generic)
> se_map_generic(): mapped mask 0x100f000c to 0x000f000c
> [2010/03/31 13:44:33, 10] lib/util_seaccess.c:58(se_map_generic)
> se_map_generic(): mapped mask 0x100f000c to 0x000f000c
> [2010/03/31 13:44:33, 10] lib/util_seaccess.c:58(se_map_generic)
> se_map_generic(): mapped mask 0x100f000c to 0x000f000c
> [2010/03/31 13:44:33, 10] lib/util_seaccess.c:58(se_map_generic)
> se_map_generic(): mapped mask 0x100f000c to 0x000f000c
> [2010/03/31 13:44:33, 4] printing/nt_printing.c:5733(print_access_check)
> access check was FAILURE
> [2010/03/31 13:44:33, 3]
> rpc_server/srv_spoolss_nt.c:1707(_spoolss_OpenPrinterEx)
> access DENIED for printer open
> [2010/03/31 13:44:33, 4]
> rpc_server/srv_lsa_hnd.c:180(find_policy_by_hnd_internal)
> Found policy hnd[0] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B 01 8A ........ .....K..
> [0010] FF 54 00 00 .T..
> [2010/03/31 13:44:33, 4]
> rpc_server/srv_lsa_hnd.c:180(find_policy_by_hnd_internal)
> Found policy hnd[0] [0000] 00 00 00 00 02 00 00 00 00 00 00 00 B3
> 4B 01 8A ........ .....K..
> [0010] FF 54 00 00 .T..
> [2010/03/31 13:44:33, 3] rpc_server/srv_lsa_hnd.c:218(close_policy_hnd)
> Closed policy
> [2010/03/31 13:44:33, 1]
> ../librpc/ndr/ndr.c:251(ndr_print_function_debug)
> spoolss_OpenPrinterEx: struct spoolss_OpenPrinterEx
> out: struct spoolss_OpenPrinterEx
> handle : *
> handle: struct policy_handle
> handle_type : 0x00000000 (0)
> uuid :
> 00000000-0000-0000-0000-000000000000
> result : WERR_ACCESS_DENIED
> --------------------------------------------
>
> The only discernible difference to my eye is that for the denieduser,
> se_map_generic() is called before ultimately denying the user.
>
> Finally, here is testparm output:
>
> --------------------------------------------
> [global]
> workgroup = POTSDAM
> server string = Printing Server
> security = DOMAIN
> password server = MEGA
> restrict anonymous = 2
> log level = 1
> log file = /var/log/samba/%m.log
> max log size = 10000
> time server = Yes
> unix extensions = No
> deadtime = 5
> printcap name = cups
> wins server = 192.168.0.1
> printer admin = @printeradmins
> hosts allow = 127., 192.168.
> cups options = raw
> veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
>
> [printers]
> comment = All Printers
> path = /var/spool/samba
> printable = Yes
> browseable = No
> browsable = No
>
> [print$]
> comment = Printer Drivers for Windows
> path = /usr/share/samba/print
> write list = @printeradmins
>
> [drivers]
> comment = Vendor Printer Driver Paks
> path = /usr/share/samba/drivers
> write list = @printeradmins
> create mask = 0775
> directory mask = 0775
> --------------------------------------------
>
> If anyone could shed light on this issue, it would be much
> appreciated. Thank you.
>
> -Jeff
>
> --
> Jeffrey M Hardy
> Systems Analyst
> hardyjm(a)potsdam.edu

--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba
From: Jeff Hardy on
On 04/01/2010 05:39 PM, Jeff Hardy wrote:
> I have been trying to setup a new print server on Fedora 12 based around
> samba-3.4.7-58.fc12.x86_64 and cups-1.4.2-28.fc12.x86_64. All looks good
> except for the ability for printer administrators to manage printers.
> Whether I specify users in a system group using the deprecated printer
> admin option, or specifically using net rpc rights and the
> SePrinterOperatorPrivilege, it does not matter. This is against an NT4
> domain on samba-3.4.2.

After a tdb wipe, I ended up with no users who can manage printers.
This at least made the behavior consistently broken. I ended up trying
samba 3.3 and 3.2 seeking some way to manage printers. Only by going
back to samba-3.2.15 built from a Fedora 10 source RPM was I able to
restore functionality by way of the printer admin option. The
SePrinterOperatorPrivilege did not seem to work in any version no matter
what I did. Surely other folks are managing printers with sambas later
than 3.2.x I would think. Anyone have any experience like this?

-Jeff

--
Jeffrey M Hardy
Systems Analyst
hardyjm(a)potsdam.edu
--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba
From: Ryan Suarez on
Hi Jeff,

Jeff Hardy wrote:
> On 04/01/2010 05:39 PM, Jeff Hardy wrote:
>> I have been trying to setup a new print server on Fedora 12 based around
>> samba-3.4.7-58.fc12.x86_64 and cups-1.4.2-28.fc12.x86_64. All looks good
>> except for the ability for printer administrators to manage printers.
>> Whether I specify users in a system group using the deprecated printer
>> admin option, or specifically using net rpc rights and the
>> SePrinterOperatorPrivilege, it does not matter. This is against an NT4
>> domain on samba-3.4.2.
>
> After a tdb wipe, I ended up with no users who can manage printers.
> This at least made the behavior consistently broken. I ended up
> trying samba 3.3 and 3.2 seeking some way to manage printers. Only by
> going back to samba-3.2.15 built from a Fedora 10 source RPM was I
> able to restore functionality by way of the printer admin option. The
> SePrinterOperatorPrivilege did not seem to work in any version no
> matter what I did. Surely other folks are managing printers with
> sambas later than 3.2.x I would think. Anyone have any experience
> like this?

How about adding users as members to the BUILTIN\administrators group on
the newer version of samba to see if that works?


--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba
From: christoph.beyer on
Hi Jeff,

I fiddled around for a while with this too ;)

Looks broken to me, anyway I did put it like this and it worked for me
then:

in smb.conf:

username map = /opt/samba/smbusers.map
admin users = root

[print$]
path = /opt/samba/samba_drivers
write list = root

uid(a)host:~$ cat /opt/samba/smbusers.map
!root = <my win uid>
!root = <WIN DOMAIN\uid>

This worked for me only with the root account while in earlier versions I
used the same mechanism with the uid lp and it worked fine ...

good luck

christoph





On Thu, 6 May 2010, Ryan Suarez wrote:

> Hi Jeff,
>
> Jeff Hardy wrote:
>> On 04/01/2010 05:39 PM, Jeff Hardy wrote:
>> > I have been trying to setup a new print server on Fedora 12 based around
>> > samba-3.4.7-58.fc12.x86_64 and cups-1.4.2-28.fc12.x86_64. All looks good
>> > except for the ability for printer administrators to manage printers.
>> > Whether I specify users in a system group using the deprecated printer
>> > admin option, or specifically using net rpc rights and the
>> > SePrinterOperatorPrivilege, it does not matter. This is against an NT4
>> > domain on samba-3.4.2.
>>
>> After a tdb wipe, I ended up with no users who can manage printers. This
>> at least made the behavior consistently broken. I ended up trying samba
>> 3.3 and 3.2 seeking some way to manage printers. Only by going back to
>> samba-3.2.15 built from a Fedora 10 source RPM was I able to restore
>> functionality by way of the printer admin option. The
>> SePrinterOperatorPrivilege did not seem to work in any version no matter
>> what I did. Surely other folks are managing printers with sambas later
>> than 3.2.x I would think. Anyone have any experience like this?
>
> How about adding users as members to the BUILTIN\administrators group on the
> newer version of samba to see if that works?
>
>
> --
> To unsubscribe from this list go to the following URL and read the
> instructions: https://lists.samba.org/mailman/options/samba
>

best regards
~christoph


--
/* Christoph Beyer | Office: Building 2b / 23 *\
* DESY | Phone: 040-8998-2317 *
* - IT - | Fax: 040-8998-4060 *
\* 22603 Hamburg | http://www.desy.de */


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