Samba Print Server

If you need to share printers, samba print server is for you.

You will be able to

  • Install drivers for each printer on the server
  • Users will be able to double click on the new printer and it will get automatically installed and show up in their “Printers and Faxes”
  • You will be able to globally control pausing the printers is paused, or see completed jobs that are done by users
  • If for any reason printer is down, you will be able to move all print jobs from one printer to another possibly different printer (You can’t do that in Microsoft Windows)
  • Have once central place to maintain printing through the company

— Install samba and cups

aptitude install samba cups

— Setup root user with a password

smbpasswd -a root

— Get a list of current permissions. The reason we are getting a list is to find out what  “everybody” user group can do. This setup here will allow anyuser to make changes to printers configuration, and to upload drivers. If you are controlling logins via samba domain then you can probably just give  SePrintOperatorPrivilege to the user in question. Here we are just trying to get it working in most simple way possible.

— Lets add SePrintOperatorPrivilege to “everybody” so that we can upload drivers from any computer/any username. Note: This replaces “printer admin = @ntadmin” or “printer admin = nobody” in the [print$] share in prior samba <3.0 versions.

net rpc rights grant Everyone SePrintOperatorPrivilege

— Now “everyone” will have access to upload drivers. Lets update the smb.conf to enable our printer share.

vi  /etc/samba/smb.conf

— Change the security=users to security = share (uncomment it if necessary)

— The [printers] share should look like this:

comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

— and [print$] should look like below. We are allowing write, we are allowing guest, we are forcing user root so that any drivers uploaded will have root user permissions.:

comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = no
guest ok = yes
write ok = yes

write list = root, @lpadmin,nobody
force user = root

— Restart Samba

/etc/init.d/samba restart

–You are now ready to add printers. Go to http://localhost:631 and press add printer.

— When done got to your Microsoft Windows machine and you will upload the drivers to the server.

Go to \\yourcomuter

— You should see the “Printers and Faxes”, click on it and right click on the printer, go to “Properties”, then click “Advanced”, and click “New Driver”. Follow the normal process and at the end the drivers will be installed on the server.

— From any machine with same operating system as above you will go to \\computername double click on the printer, and it will automatically be installed on that computer. Enjoy maintenance free setup for years.