1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
# Standard Skriver Tool
A tool for managing users' default printer based on group membership and/or host address on the network.
## Introduction
The Standard Skriver Tool ('standardskriver' is Norwegian, i.e. Bokmål, for "default printer") helps you define
which printer is to be used for which device / IP / IP-range, user group, etc.
## Configuration
In `/etc/standardskriver.cfg` you are able to change the defined devices and their asigned default printers.
The syntax for doing this is simple and easy to manage via the configuration file `/etc/standardskriver.cfg`:
[settings]
# Define if standardskriver shall be active (it gets loaded via XDG autostart during
# session startup:
enable = {yes,no}
# Define if groups section overrides machine section (= groups machine) or machine section
# overrides groups section.
order = {machine groups | groups machine}
# Define if standardskriver shall remove the previous default printer, if no entry in the groups or
# machine section matches at login time.
delete lpoptions = {yes,no}
[machine]
# Example 01: single client (example-printer has to be defined as a known device/printer in CUPS):
<xxx.xx.x.x> = example-printer
# example: IP subnet (e.g. matching a pool of machines in one of the computer labs), again
# other-example-printer needs to be a well-defined CUPS print queue.
<xxx.xx.x.x/x> = other-example-printer
# Example: Single client defined via MAC-address:
aa:bb:cc:dd:ee:ff = example-printer
[groups]
# Here you can define a default printer for users based on POSIX group membership (teacher-printer
# needs to be a well-defined CUPS print queue again):
teachers = teacher-printer
## Using a Single Configuration for Multiple Sites
You can manage multiple sites (e.g. schools, customers, networks) in one
`standardskriver.cfg` file and deploy that configuration file across the
managed sites (very useful when deploying diskless workstation images to multiple
sites).
Each site needs to be given a unique name (e.g. `SCHOOL-01`, `SCHOOL-02`,
etc.). This site ID goes into an extra file:
`/etc/standardskriver.site`. This file is optional. The first line is
read from this file, gets sanitized and the outcome is the site ID.
In `/etc/standardskriver.cfg` you can then put sections like:
[machine.SCHOOL-01]
# special rules for SCHOOL-01
10.1.2.3 = school-01-admin-printer
[machine.SCHOOL-02]
10.3.6.3 = school-02-admin-printer
10.0.0.0/8 = main-printer
The same configuration scheme is possible for POSIX groups:
[groups.SCHOOL-01]
teachers = school-01-teacher-printer
[groups.SCHOOL-02]
teachers = school-02-teacher-printer
[groups]
students = students-printer
## Installation
### From Sources
This project contains a `Makefile` that sets up the Standard Skriver Tool on your system.
$ make && sudo make install
### Python3 Dependencies
Make sure to have the Python3 module `netaddr` installed on your system.
### Install as a Package
The preferred installation method should rather be installation via your
distributions package manager, e.g. on Debian and derivatives:
$ sudo apt-get install standardskriver
## License and Copyright
The Standard Skriver Tool is licensed under the GPL-2+ license.
Copyright holdership:
* Copyright (C) 2013, Linnea Skogtvedt <linnea@linuxavdelingen.no>
* Copyright (C) 2015-2017, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
|