Non-admin Printer Setup?

At my work, none of the 350 users are admins. Before we can deploy Mac OS X 10.5.x, we have to allow them to add/delete their own printer. With Mac OS X 10.4.x, the Printer Setup Utility did not require an administrator name and password, so all was fine. But, I can't have 350 users submitting requests to me to add or delete printers for them 12 hours a day (there would have to me more than two more of me) from five time zones. Since there are remote users in 15 states and a total of 70 different offices, there's no way I can add all the printers someone might use ahead of time. How can I change Mac OS X 10.5.x to allow non-admin users to add printers?

-Doug

2GHz Intel iMac 2GB RAM, 500GB HD Super Drive / 2GHz BlackBook 2GB RAM, 250GB HD, Mac OS X (10.5.1), AirPort Express / EyeTV Hybrid / 40GB iPod photo 8GB iPod nano (3G)

Posted on Feb 1, 2008 11:23 AM

Reply
33 replies

Feb 3, 2008 8:19 AM in response to Matt Broughton

Follow up to my previous post.

After some further thought, there are permutations to the procedure I set out before. If you want to open it up for all users to add and administer printers, you can comment out the applicable Policy sections of cupsd.conf. Specifically, the following blocks commented out will allow a Standard user (or any user) to add and administer printers. This can be done through the web interface, command line 'lpadmin', or through *Add Printer* from a print window. With this configuration, no password will be required.

EDIT: No Parental Controls need be set with this method. The user could be Standard or Managed.

<pre style="overflow: auto;font-size:small; font-family: Monaco, 'Courier New', Courier, monospace; color: #222; background: #ddd; padding: .3em .8em .3em .8em; font-size: 9px;"># <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
# AuthType Default
# Require user @SYSTEM
# Order deny,allow
# </Limit>
# <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
# AuthType Default
# Require user @AUTHKEY(system.print.admin) @admin @lpadmin
# Order deny,allow
# </Limit></pre>

Obviously, there are policy and security implications with the above. You will have to decide if the new policies are within your overall security limits.

Note that I have left in place the earlier directive to allow only admin (sudoers) to change the cupsd.conf file.

<pre style="overflow: auto;font-size:small; font-family: Monaco, 'Courier New', Courier, monospace; color: #222; background: #ddd; padding: .3em .8em .3em .8em; font-size: 9px;"><Location /admin/conf>
AuthType Default
Require user @SYSTEM
# Restrict access to the configuration files...
Order allow,deny
Allow localhost
</Location></pre>


Matt

Message was edited by: Matt Broughton

Feb 6, 2008 11:53 AM in response to Matt Broughton

I enabled the root account, deleted my changes, saved, restarted and logged back in as root and re-commented out the same lines again and restarted again. I have now tried both a local standard user and the previous network user and both were still prompted for the admin name and password to add a printer. I was thinking you were probably not trying this suggestion with network users, but result is the same. I'll see if your file helps, but it sure seems that I've followed your instructions correctly. My test machine does have Mac OS X 10.5.1. We have a standard image of software that includes Mac OS X 10.4.10 and I've simply installed 10.5 and the update over the top of it. In addition, I've now found the "AddPrinter" process/application in the CoreServices folder, so I can put that in the Dock for my users when this is resolved.

-Doug

Feb 6, 2008 12:10 PM in response to Douglas McLaughlin

Douglas McLaughlin wrote:
I enabled the root account, deleted my changes, saved, restarted and logged back in as root and re-commented out the same lines again and restarted again. I have now tried both a local standard user and the previous network user and both were still prompted for the admin name and password to add a printer. I was thinking you were probably not trying this suggestion with network users, but result is the same.


You are correct that I did not try any network users. I was just using an admin and standard account on one computer. No Open Directory, just a siimple computer with multiple users.

I don't claim to be well versed in networks or Open Directory. I made the assumption (ah-oh) that you would have to place a copy of the modified cupsd.conf on all the client machines. Are you not talking about the client adding a printer to their local machine? The only way to do that is through printing services which is controlled by the cupsd.conf file. Adding a printer writes the necessary information to /etc/cups/printers.conf among other things.

Are we at least talking about somewhat the ideas?

Matt

Feb 2, 2008 7:27 PM in response to Douglas McLaughlin

Finally found a way to do this. The only way I have found to do this is to:

1. User Parental Controls and specifiy that the user can administer printers.

2. Edit the CUPS configuration file (/etc/cups/cupsd.conf). Easiest way is to use the web interface http://localhost:631/admin?op=config-server You need to be an administrator to do this. You may find it easier to push a modified cupsd.conf file to the user's computers and restart cupsd.

You want to edit the block to add @lpadmin as shown:
<pre style="overflow: auto;font-size:small; font-family: Monaco, 'Courier New', Courier, monospace; color: #222; background: #ddd; padding: .3em .8em .3em .8em; font-size: 9px;"> <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
AuthType Default
Require user @SYSTEM @lpadmin
Order deny,allow
</Limit></pre>
Click the button to Save Changes.

3. The user will now be able to add a printer through the web interface http://localhost:631/admin?op=add-printer It will still require a user name and password, but it will accept the managed user's name and password. The web interface is the only way for the managed user to perform this. Add Printer from a print window will not work. Command line 'lpadmin' will not work. These latter two still require an administrator's user name and password.

A word of caution. Apple will frequently replace the cupsd.conf file during system updates with the default cupsd.conf file. You are back to pushing the modified configuration file to your user's computers.

Matt

Feb 3, 2008 9:36 AM in response to Matt Broughton

Thank you very much for the suggestion, I will try this out when I get back to work this week. Unfortunately, applying the Parental Controls may not be an option. With that enabled, you must specify every application that all 350 users in 70 different offices might use (as I'm not trying to restrict application use) and all of those applications would have to be installed on one machine for me to make the original settings file with everything enabled. I can't be expected to run around checking on application in every office every time someone wants to use an application. Also, unfortunately I haven't had time to dive into this one, Parental Controls appear to only apply to local users. All of our users are Active Directory/network users. I can't find a way to apply Parental Control settings to network users. Is there a way to do it without using the Parental Controls System Preferences?

-Doug

Feb 5, 2008 1:14 PM in response to Matt Broughton

Okay, on a test Mac, I commented out that section (by putting the # at the beginning of each line). I had to save the file to my own user's documents. Then I used the Terminal to delete the original and copy over the edited file. I also then used the Terminal to change the permissions back to the original settings. Unfortunately, I'm still challenged to put in an administrator's name and password when using the "Add Printer..." option from the print sheet (in Safari in this case). In the "Add Printer" window, I can sort the list by "Kind" to AppleTalk and then find the printer near me, select it, and the correct driver is automatically selected. But when I press the "Add" button at the bottom of the window, I'm asked to input an administrator's name and password.

-Doug

Feb 5, 2008 4:01 PM in response to Douglas McLaughlin

Douglas McLaughlin wrote:
Okay, on a test Mac, I commented out that section (by putting the # at the beginning of each line). I had to save the file to my own user's documents. Then I used the Terminal to delete the original and copy over the edited file. I also then used the Terminal to change the permissions back to the original settings. Unfortunately, I'm still challenged to put in an administrator's name and password when using the "Add Printer..." option


You need to restart the printing system for the changes to take effect. By using the Terminal to replace the cupsd.conf file, you bypassed the *Save Changes* button in the web interface. The *Save Changes* button would have restarted the CUPS daemon. Remember that we are changing a configuration file for a daemon, so the daemon must be restarted for it to read the new configuration file.

There are several ways to restart the CUPS daemon. Restart the computer, use the Terminal command 'sudo killall -HUP cupsd', or by toggling *Printer Sharing* in System Preferences.


Matt

Feb 6, 2008 12:19 PM in response to Matt Broughton

We have not put Mac OS X 10.5.x on any client computers yet. I have it installed on my own G5 and a new Intel iMac here at my desk. I'm doing my actual testing on the iMac. So, this is the only workstation that needs to be configured for now. Once I find a process that works, I'll document it and add it to the steps to configure my Leopard image of software that's to be installed.

The next time the authentication window popped-up, I clicked on the "Details" disclosure triangle and, in fact, it's the System Preferences asking for permission not any of the CUPS services:

User uploaded file

So, it would seem I'm back to step one, finding a way to open the Printing & Fax System Preferences for non-admin users. I will check next to see if it's possible to configure the printer using just the CUPS web page. (Which I've used quite a bit in the past to help troubleshoot printing problems and, if nothing else, print test pages. Why on Earth the Printer Setup Utility -or whatever process- doesn't have a "print test page" option is beyond me. Unfortunately, I'm afraid some of my users simply won't be able to use the Web page to configure all their printers and, in the end, I'm going to spend an hour or two every day configuring printers for everyone with Leopard anyway.)

-Doug

Feb 6, 2008 12:37 PM in response to Douglas McLaughlin

Douglas McLaughlin wrote:
The next time the authentication window popped-up, I clicked on the "Details" disclosure triangle and, in fact, it's the System Preferences asking for permission not any of the CUPS services:


I read that as the application "AddPrinter" (/System/Library/CoreServices/AddPrinter) is the requester and wants to use the password from the user account as detailed in System Preferences.

Believe me that I am as frustrated as you in explaining why it is not working for you as it is for me. We are commenting out the section that says adding a printer is for admins only. We are also commenting out the line that says to ask for a password.

The one other thought I had was that I have not applied the latest security patches. I will add those to my test configuration tonight and see if that makes any difference.


Unfortunately, I'm afraid some of my users simply won't be able to use the Web page to configure all their printers


I agree that is a real concern. As far as I can tell, the web interface only knows about printers that have a static model PPD on file. There are some printers that create a PPD on the fly. I believe Epson printers do this. They do not show in the list of printers for in the web interface.

Matt

Feb 6, 2008 1:29 PM in response to Matt Broughton

Thanks, again. I've never used the web page to add a printer but it seemed fairly straightforward. 99.5% of all the printers will be network printers with static IP addresses and use PPD files we're including with our image of software. So, if need be, it shouldn't be a problem to use the Web page. However, I was still challenged to put in an administrator name and password when I clicked on the "Add Printer" button:

User uploaded file

-Doug

Feb 11, 2008 8:13 AM in response to mobias

You need to have an admin to do it easily. Period. Get an admin to do it for you.


That's not an option. We will not distribute Mac OS X 10.5 in our company if this cannot be changed. I would literally have to to hire someone who would spend their entire day setting up printers for people. We have too many users in too many different offices with too many different printers and many of them travel and need to change/add printers all the time. We couldn't even configure all the printers ahead of time because that would leave everyone (even people who only have one printer in their office) with a list of 100+ printers to choose from. If you have a suggestion for a work-around, I would like to hear it.

-Doug

Feb 12, 2008 3:59 AM in response to Matt Broughton

Hello Doug & Matt,

I spent a couple of hours looking at this issue and from my testing I found that Matt's comments made to the cupsd.conf are sufficient in allowing a standard user to add an IP and USB printer without having to authenticate.

My test Mac (a trusty old G5) had a clean install of 10.5 and then upped to 10.5.1 using the Combo updater from the ADC Jan 08 DVD (my lab is isolated from our corporate network so no internet access). Logged in as an admin account, opened Terminal and used Nano to make the changes to the cups daemon config file. Rebooted, logged in as the local standard user and was able to create the printer queues without any challenge.

From reading your postings I thought that maybe the problem was due to the rights granted by the AD to the network user and this was challenging the creation of the queue.

So I repeated the test, this time the authentication was being done using Directory Access > AD to a 2003 SP1 server. The client was just a basic user account, no network or local home folder creation, just simply an authentication to the network. However this account was also able to add a local printer without having to authenticate.

So I have a couple of questions as I'd like to play with this some more.

1. Can you give some details re the network environment and the authentication process being employed (especially any schemas).

2. I read that your 10.5 install was an upgrade from the 10.4 image. Is this correct? If yes, have you tried a clean Leopard install? Just concerned we could have some Tiger left-overs, like the AD plug-in...

Well, that's about it from me for now. It's getting close to 11pm here and I'm gettin tired....

Hope this was helpful Matt.

'Night-all

PaHu

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Non-admin Printer Setup?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.