# Linux Allgemein

# Drucken - CUPS

# cups von allen Benutzern verwaltbar machen

### Beschreibung:

  
Außer Automatisch gefunde Drucker, kann man als normaler Benutzer keine Drucker installieren oder löschen etc.  
Dafür kann man aber eine policy file anlegen.

### Durchführung:

```
sudo nano /etc/polkit-1/localauthority/50-local.d/cups-allow-everything.pkla
```

Inhalt

```
[Allow users to do all printing actions without authentication]
Identity=unix-user:*
Action=org.opensuse.cupspkhelper.mechanism.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
```

Cups neustarten

```
sudo systemctl restart cups
```

# PDF Cups für linux Terminalserver / nomaschine Drucker auf Client umleiten

### Beschreibung:

Druckumleitung auf Terminalserver / nomaschine funktioniert nicht.  
Wir können aber vom Client auf ein Verzeichnis vom Terminalserver zugreifen zum beispiel per sftp oder nomachine Verzeichnisumleitung.  
  
Mittels CUPS PDF werden alle Dateien im Homeverzeichnis im Verzeichnis PDF gespeichert.  
Auf dem Client läuft ein Script was diesen ordner beobachtet und wenn PDFs drin sind diese dann an den angebenen Druckewr sendet.

### Durchführung:

#### Auf dem Server:

Cups printer installieren

```
sudo apt-get install printer-driver-cups-pdf 
```

Alle Dokumente werden unter

```
~/pdf
```

abgespeichert. Vom Client aus dieses Verzeichnis mounten. Via sftp oder nomachines Laufwerkdurchreiche selbst, nextcloud   
oder oder oder....

#### Auf dem Client:

Dem Autoprint script Namen den Benutzer dran hängen

```
sudo mkdir -p /usr/local/bin
sudo nano /usr/local/bin/auto-print-<benutzername>.sh
```

Inhalt:  
  
Die Variablen Watch Dir und Printer Name anpassen

```
#!/bin/bash

# --- Konfiguration ---
WATCH_DIR="/home/<benutzername>/Schreibtisch/Stamm/home/<benutzername-terminalserver>/PDF"         # Oder /var/spool/cups-pdf/duffy je nach Setup
PRINTER_NAME="TOSHIBA"        # Dein CUPS-Druckername (mit 'lpstat -p' prüfen)

# --- Endlosschleife ---
while true; do
    for file in "$WATCH_DIR"/*.pdf; do
        [ -e "$file" ] || continue  # Kein PDF vorhanden? Dann weiter

        echo "Drucke: $file"
        lp -d "$PRINTER_NAME" "$file" && rm -f "$file"
    done
    sleep 5  # alle 5 Sekunden prüfen
done

```

Ausführbar machen

```
sudo chmod +x /usr/local/bin/auto-print.sh
```

Systemd erstellen für den jeweiligen benutzer

```
sudo nano /etc/systemd/system/auto-print-<benutzername>.service
```

Inhalt:

Auch hier im Dateinamen den Benutzer anpassen

```
[Unit]
Description=Automatischer PDF-Drucker
After=network.target

[Service]
ExecStart=/usr/local/bin/auto-print-<benutzername>.sh
Restart=always
User=duffy
Environment=HOME=/home/<benutzername>
WorkingDirectory=/home/<benutzername>

[Install]
WantedBy=multi-user.target

```

Service aktibieren und starten, auch hier den benutzernamen wieder anpassen

```
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
```

```
sudo systemctl enable --now auto-print-<benutzername>.service
```