Common Unix Printing System

From WikiMD's Wellness Encyclopedia

Common Unix Printing System (CUPS)[edit | edit source]

The Common Unix Printing System (CUPS) is a modular printing system for Unix-like operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

History[edit | edit source]

CUPS was initially developed by Michael Sweet and was first released in 1999. It was designed to replace the older LPRng system and to provide a more flexible and powerful printing solution for Unix-based systems. In 2007, Apple Inc. purchased the rights to CUPS and it became the standard printing system for macOS.

Architecture[edit | edit source]

CUPS uses the Internet Printing Protocol (IPP) as the basis for managing print jobs and queues. It also provides support for LPD, SMB, and AppSocket (JetDirect) protocols to ensure compatibility with a wide range of printers and network configurations.

Components[edit | edit source]

CUPS consists of several key components:

  • Scheduler (cupsd): The central component that manages print jobs and queues.
  • Backend: Interfaces that communicate with printers, such as USB, parallel, and network backends.
  • Filter: Converts print data into a format that the printer can understand.
  • Driver: Provides printer-specific capabilities and options.

Features[edit | edit source]

CUPS offers a variety of features that make it a powerful and flexible printing system:

  • Network Printing: Supports printing over a network using IPP, LPD, SMB, and other protocols.
  • Printer Discovery: Automatically discovers printers on the local network.
  • Web Interface: Provides a web-based interface for managing printers and print jobs.
  • Driver Support: Includes a wide range of printer drivers and supports PostScript and PDF printing.

Configuration[edit | edit source]

CUPS is configured using plain text files located in the /etc/cups/ directory. The main configuration file is cupsd.conf, which controls the behavior of the CUPS server. Printer-specific configurations are stored in printers.conf.

Access Control[edit | edit source]

CUPS uses access control lists (ACLs) to manage who can print and manage printers. These are configured in the cupsd.conf file using the <Location> directive.

Administration[edit | edit source]

CUPS can be administered using the command line, the web interface, or graphical tools provided by various desktop environments.

Command Line Tools[edit | edit source]

  • lpadmin: Configures printer and class queues.
  • lpstat: Displays status information about the current classes, jobs, and printers.
  • cancel: Cancels print jobs.

Security[edit | edit source]

CUPS includes several security features to protect print jobs and printer configurations:

  • Encryption: Supports TLS/SSL for encrypting print jobs and administrative tasks.
  • Authentication: Can be configured to require authentication for printing and administration.

See Also[edit | edit source]

External Links[edit | edit source]

Contributors: Prab R. Tumpati, MD