vinzv
freedom and linux stuff

Kategorie: Allgemein (Seite 1 von 35)

openSUSE mit sudo – aber komfortabel!

Wer das Handling von Tätigkeiten mit Administratorenrechten („Root“) wie ich aus der Debian-Welt gewohnt ist, wird mit openSUSE zu Anfang so seine Schwierigkeiten haben. Mit zwei Benutzern geht es noch, da man ja das selbe Passwort sowohl für den User als auch für Root einstellen kann. Aber spätestens bei mehr Nutzerkonten ist damit schon Schluss, außer man gibt das Root-Passwort an alle weiter. Beide Lösungen sind sicher irgendwie praktikabel, aber schön ist das alles nicht. Vor allem weil ja eigentlich sudo installiert wäre – aber nur so halbgar genutzt wird.

Also habe ich mal bei meiner aktuellen openSUSE Tumbleweed daran gemacht, dem System ein vernünftiges sudo-Konzept beizubringen und dieses dann auch für YaST anzuwenden. Das war etwas fieselig herauszufinden, hat am Ende aber gut funktioniert.

Los geht’s!

visudo

Standardmäßig fragt sudo nach dem Root-Passwort. Das ist ziemlich unsinnig, also ändern wir es!

  1. Im ersten Teil arbeiten wir noch als normaler Benutzer. Die Zeilenangaben können abweichen, je nach Alter der Datei/Systemversion und vorherigen Änderungen daran.

    sudo visudo
  2. Die Parameter in Zeile 43 beginnend mit env_keep = „LANG… ergänzt du am Ende innerhalb der Anführungszeichen mit:

    DISPLAY XAUTHORITY
  3. Die Zeilen 68 und 69 kommentierst du komplett aus, damit nicht mehr das Passwort des „Zielusers“ abgefragt wird:

    #Defaults       targetpw
    #ALL    ALL = (ALL) ALL
  4. Zusätzlich kommentierst du Zeile 81 ein, löschst also das Kommentarzeichen # weg:

    %wheel ALL=(ALL) ALL
  5. Speichern, schließen und dann deine(n) Benutzer entweder über YaST oder direkt im Terminal der Gruppe „wheel“ hinzufügen:

    gpasswd -a <dein-username> wheel

    Durch Aus- und wieder Einloggen wird die Änderung dann auch übernommen und sudo möchte ab sofort im Terminal immer dein Benutzerpasswort haben.

YaST

Für die grafische Version von YaST wird PolicyKit zur Authentifizierung genutzt, hier ist noch etwas mehr Arbeit nötig. Ab hier arbeitest du als root, wechsle also mit su – den Account.

  1. Erstelle eine PolicyKit Action für YaST

    vim /usr/share/polkit-1/actions/org.opensuse.pkexec.yast2.policy
  2. Folgenden XML-Block fügst du in die Datei ein. Achte dabei bitte auf Zeilenumbrüche beim Kopieren/Einfügen.

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
    <policyconfig>
    
      <action id="org.opensuse.pkexec.yast2">
        <message>Authentication is required to run YaST2</message>
        <icon_name>yast2</icon_name>
        <defaults>
          <allow_any>auth_self</allow_any>
          <allow_inactive>auth_self</allow_inactive>
          <allow_active>auth_self</allow_active>
        </defaults>
        <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/yast2</annotate>
        <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
      </action>
    
    </policyconfig>

    Speichern, schließen – der Erfolg lässt sich als regulärer Benutzer mit pkexec /usr/sbin/yast2 überprüfen.

  3. Die vorgegebene Rechte-Konfiguration sicherst du und ersetzt sie durch die System-Konfiguration. Unsere Datei wird bei einem Upgrade übrigens nicht überschrieben.

    mv /etc/polkit-default-privs.local /etc/polkit-default-privs.local.bkup
    cp /etc/polkit-default-privs.standard /etc/polkit-default-privs.local

    Die nötige Anpassung ist überall auth_admin durch auth_self zu ersetzen. Du kannst das auch von Hand machen, mit sed geht das aber bequemer und schneller:

    sed -i 's/auth_admin/auth_self/g' /etc/polkit-default-privs.local
  4. Damit die Authentifizierung über PolicyKit auch funktioniert, erstellst du ein kurzes Shellscript das künftig als Umweg aus dem Menü aufgerufen wird:

    vim /usr/local/sbin/yast2_polkit
  5. Das Script sieht wie folgt aus, einfach in die Datei yast2_polkit einfügen:

    #!/bin/bash
    
    if [ $(which pkexec) ]; then
            pkexec --disable-internal-agent "/usr/sbin/yast2" "$@"
    else
            /usr/sbin/yast2 "$@"
    fi
  6. Speichern und schließen. Abschließend machst du das Script noch ausführbar:

    chmod +x /usr/local/sbin/yast2_polkit
  7. Als letztes erstellst du eine .desktop Datei. Damit erscheint der modifizierte YaST-Starter direkt im Hauptmenü und das systemweit für alle Benutzer. Beispielsweise wird er bei Xfce unter „Einstellungen“ gelistet. Andere Desktops habe ich nicht getestet, gehe aber davon aus dass der Starter an einer sinnvollen Stelle landet da er ja nur eine angepasste Kopie des Originals ist.
    Natürlich könntest du auch die originale Datei für YaST (YaST.desktop) bearbeiten aber die wird bei einem Upgrade überschrieben. Und eine Kopie in /usr/local/share/applications ignorieren sowohl das Anwendungs- als auch das Whiskermenü.
    Also:

    vim /usr/share/applications/YaST2.desktop
  8. Einfügen und speichern:

    [Desktop Entry]
    X-SuSE-translate=true
    Type=Application
    Categories=Settings;System;X-SuSE-Core-System;X-SuSE-ControlCenter-System;X-GNOME-SystemSettings;
    Name=YaST2
    Icon=yast
    GenericName=Administrator Settings
    Exec=/usr/local/sbin/yast2_polkit
    Encoding=UTF-8
    Comment=Manage system-wide settings
    Comment[DE]=Systemweite administrative Einstellungen
    NoDisplay=false

Das ist alles. Damit ist ein Login als Root nicht mehr nötig bzw. kann bequem über sudo su – mit deinem Benutzerpasswort erfolgen. Ob das Konzept von openSUSE jetzt schlechter oder besser ist, mag ich nicht entscheiden. Das ist Geschmackssache, denke ich.
Was mir auf jeden Fall gut gefallen hat, ist die klare Einhaltung von Standards. Das macht die Suche nach Lösungen deutlich leichter und schneller. Ich konnte dank guter Dokumentation und hilfreichen Forenbeiträgen alles innerhalb von rund einer Stunde fertigstellen – und das große Kenntnisse von PolicyKit!

Update-Benachrichtigungen mit Xfce & Debian

Im Gegensatz zu anderen Desktopumgebungen hat Xfce keine eigene Updateroutine und benachrichtigt somit auch nicht über bereitstehende Aktualisierungen. Bei Xubuntu behilft man sich über das „Indicator Applet“ in der Werkzeugleiste. Bei Debian nicht, worüber ich ganz froh bin, wenn ich mir den Indicator so ansehe…

Nun hat aber nicht jeder Lust regelmäßig mit apt im Terminal nachzusehen, ob und was es Neues in den Paketquellen gibt. Hier springt pk-update-icon das über den PackageKit-Dienst Aktualisierungen abgefragt und dann ggf. eine Benachrichtigung über den Benachrichtigungsdienst auslöst.

Installation
Hierbei werden ein paar nötige Abhängigkeiten installiert, genauer die Funktionen zum Prüfen und Installieren von Paketupdates.

sudo apt install pk-update-icon

Konfiguration
Grundsätzlich ist hier keine Anpassung nicht nötig. Einmal kurz aus- und wieder einloggen genügt. Mit der Installation wird pk-update-icon systemweit in den Autostart genommen und Anwender einmal täglich informiert. Die entsprechende .desktop Datei liegt in /etc/xdg/autostart und gilt somit für jeden Benutzer des Rechners.

Wer dennoch Anpassungen daran vorzunehmen kopiert man die Datei einfach in ~/.config/autostart/ und bearbeitet sie mit einem Texteditor. Zum Beispiel fügt man in der Zeile beginnend mit Exec=pk-update-icon (hier rot markiert) den Parameter -i 21600 an, um alle 6h auf Updates zu prüfen. Änderungen in allen anderen Zeilen sind kaum sinnvoll, machen aber auch nichts kaputt.

[Desktop Entry]
Name=PackageKit Update Applet
Name[cs]=Aktualizační aplet PackageKit
Name[de]=PackageKit Aktualisierungsapplet
Name[fr]=Applet de mise à jour PackageKit
Name[id]=PackageKit Update Applet
Name[sk]=PackageKit Aktualizačný Applet
GenericName=Update Applet
GenericName[cs]=Aktualizační aplet
GenericName[de]=Aktualisierungsapplet
GenericName[fr]=Applet de mise à jour
GenericName[id]=Update Applet
GenericName[sk]=Aktualizačný Applet
Comment=PackageKit Update Applet
Comment[cs]=Aktualizační aplet PackageKit
Comment[de]=PackageKit Aktualisierungsapplet
Comment[fr]=Applet de mise à jour PackageKit
Comment[id]=PackageKit Update Applet
Comment[sk]=PackageKit Aktualizačný Applet
Icon=system-software-update
Exec=pk-update-icon -i 21600

Terminal=false
Type=Application
Categories=Utility;GTK;TrayIcon;
NotShowIn=KDE;GNOME;

Aus Stretch wird Buster: Mit Testing auf dem Weg zu XFCE 4.14

Nachdem Debian Stretch vorletztes Wochende zu Stable wurde, ist es für mich Zeit weiter zu ziehen. Fix die sources.list angepasst (zusätzliche sources.list.d/* nicht vergessen zu prüfen!) und los geht’s:

sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list

Mit „Buster“ steht natürlich der neue Testing-Zweig schon fest und bringt bereits einen ganzen Schwung an Aktualisierungen mit. Insgesamt 227 zu aktualisierende Pakete sind eine Menge, womit ich gar nicht gerechnet hatte. Aber das ist auch das erste Mal, dass ich ohne Neuinstallation einen Versionssprung bei Debian mitmache.

Für u.a. folgende Pakete mit XFCE-Bezug gab es Aktualisierungen, grün markierte enthalten neue Features. Die übrigen erhielten nur Fehlerbehebungen oder marginale Änderungen.

Paket

greybird-gtk-theme
lightdm
light-locker
ristretto
tumbler
xfce4-notifyd
xfce4-pulseaudio-plugin
xfce4-terminal
xfdesktop4

Buster

3.22.2
1.18.3-3
1.7.0-4
0.8.2
0.1.32
0.3.6
0.2.5
0.8.4
4.12.3-4

Stretch

3.22.0
1.18.3-1
1.7.0-3
0.8.1
0.1.31-2+b3
0.3.4
0.2.4
0.8.3
4.12.3-3

Upstream

3.22.4
1.22.0
1.7.0
0.8.2
0.1.92
0.3.6
0.2.5
0.8.5
4.13.1


Hier noch die interessanten Änderungen im Detail:

  • greybird-gtk-theme erhält grundlegende Unterstützung für dunkle Themes, wie man sie von anderen Themes oder Gnome kennt.
  • Ristretto erkennt Dateien nicht mehr anhand ihrer Dateiendung sondern nutzt jetzt Mimetypes. Anhand dieser Typen werden Dateien ab sofort auch sortiert. Zusätzlich erhält es ein Funktion für horizontales/vertikales spiegeln.
  • Bei xfce4-pulseaudio-plugin lassen sich Benachrichtigungen jetzt in den Einstellungen abschalten und werden ab sofort nicht mehr beim Start automatisch angezeigt.
  • Der Dropdown-Modus des XFCE Terminals erhält eine weitere Einstellungsmöglichkeit: man kann jetzt Rahmen um das Dropdown-Fenster (de)aktivieren.
  • In xfdesktop4 wurde eine Regression behoben, welche das Selektieren von Ordnern in der Wallpaperauswahl verhinderte.

(Bild: Pixar Wiki)

Quicktipp: Ordnerpfad in der Thunar-Titelleiste zeigen

In der Titelleiste des Xfce Dateimanagers Thunar wird standardmäßig nur der Name des aktuellen Verzeichnisses angezeigt. Um den vollen Pfad angezeigt zu bekommen, kann man diese versteckte Einstellung mit folgendem Terminalbefehl aktivieren:

xfconf-query --channel thunar --property /misc-full-path-in-title --create --type bool --set true

Analog dazu lässt sich diese Einstellung auch wieder rückgängig machen:

xfconf-query --channel thunar --property /misc-full-path-in-title --set false

(Quelle)

XFCE Tipp: Fenster ohne Titelleiste

Gerade auf kleinen Displays ist man ja für gesparten Platz sehr dankbar. Mit XFCE lässt sich ab Version 4.12 direkt mit den Bordmitteln die Titelleiste beim Maximieren eines Fensters komplett verstecken.

  1. Xfconf („Einstellungsbearbeitung“) findest du in den Einstellungen ganz unten oder du suchst einfach im Whisker-Menü nach „xfconf“ bzw. „Einstellungsbearbeitung“.
  2. In der Seitenleiste von Xfconf scrollst du zu „xfwm4„, der zweite Punkt von unten. Nun erhältst du eine ganze Reihe Einträge im Hauptfenster. Der relevante ist „titleless_maximize„, also relativ weit unten in dieser alphabetisch sortierten Liste. Dort klickst du in der Spalte „Wert“ auf die Checkbox um sie zu aktivieren.
  3. Fertig! Zum Überprüfen öffnen wir ein Thunar-Fenster. Die Titelleiste sollte nun beim maximieren verschwinden. Den Unterschied verdeutlicht folgendes GIF:
ältestenBeiträge

Copyright © 2017 vinzv

Theme von Anders Norén↑ ↑