vinzv
freedom and linux stuff

Schlagwort: Tipp (Seite 1 von 6)

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!

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:

Quicktipp: Benutzer wechseln mit XFCE unter Debian Stretch

Vorweg: Die Anleitung bezieht sich auf Debian Stretch (Testing), sollte aber auch mit Stable bzw. Sid funktionieren.

Neuerdings brauche ich auf meinem Notebook zwei Benutzerkonten – eins privat und eins beruflich. Um nicht alle Fenster immer wieder öffnen und alles neu laden zu müssen gibt es bei Xfce ja so ein kleines Applet für die Menüleiste bzw. einen Button im Whisker-Menü. Leider funktionieren die unter Debian Stretch nicht auf Anhieb. (Das kann gut an meiner Minimalinstallation liegen!)

Jedenfalls lässt sich der Umstand sehr leicht beheben.

Für das Whisker-Menü:

  1. LightDM installieren
    Du solltest LightDM installiert haben, wovon in der Regel auszugehen ist. Außer du findest den textbasierten Login super, aber dann brauchst du auch keinen grafischen Benutzerwechsel. Also:
    sudo apt install lightdm
  2. Rechtsklick auf das Whisker-Menü Eigenschaften Reiter „Befehle“
    Hier trägst du bei „Benutzer wechseln“ Folgendes ein:
    dm-tool switch-to-greeter
  3. Schließen, fertig.

Für das Applet „Aktionsknöpfe“:

Dieses Applet sucht nach einem Teil von Gnomes Display Manager GDM3. Den willst du nicht installieren, außer du legst Wert auf rund 380 MB sinnlos verbrauchten Festplattenplatz. Also müssen wir dem Applet einen gdmflexiserver vorgaukeln:

  1. sudo nano /usr/local/bin/gdmflexiserver
  2. Das hier reinkopieren und speichern (Strg+X):
    #!/bin/sh
    /usr/bin/dm-tool switch-to-greeter
  3. Die Datei noch ausführbar machen:
    sudo chmod +x /usr/local/bin/gdmflexiserver
  4. Applet entfernen und wieder hinzufügen – fertig!

Liferea 1.12 von Hand unter Debian Stretch installieren [Update]

Update: Mittlerweile ist v1.12-rc1 in den Repositories verfügbar.

Liferea ist ein feiner Desktopclient für RSS-Feeds, der nebenbei auch noch mit TinyTinyRSS synchronisiert. So lassen sich mobil auf dem Smartphone und zu Hause am PC gelesene Feeds sauber auf dem gleichen Stand halten.

In den Repositories von Debian Stretch (wie auch in allen anderen Debian Suiten) ist selbstredend nur eine stabile Version von Liferea verfügbar. Leider ist diese Version seitens des Upstreams schon ziemlich alt (v1.10.19) und auch nur ein Wartungsrelease, was das ganze nicht gerade besser macht. Aber der Entwickler ist glücklicherweise fleißig und hat Mitte September einen ersten RC1 veröffentlicht der eine Vielzahl an Verbesserung bringt!

Hier nun die nötigen Schritte um Liferea 1.12-rc1 von Hand zu kompilieren:

  1. Liferea ist bei dir bereits installiert? Weg damit!
    sudo apt purge liferea liferea-data
  2. Abhängigkeiten installieren
    sudo apt install libtool gettext libxml2-dev libxslt1-dev sqlite3  libsqlite3-dev libwebkitgtk-dev libjson-glib-dev libgirepository1.0-dev gsettings-desktop-schemas-dev libpeas-dev libwebkit2gtk-4.0-dev

    Optional, aber für die Nutzung von Plugins nötig:

    sudo apt install python3-cairo
  3. Quellcode herunterladen, entpacken und ins Verzeichnis wechseln
    wget https://github.com/lwindolf/liferea/releases/download/v1.12-rc1/liferea-1.12-rc1a.tar.bz2
    
    tar jxvf liferea-1.12-rc1a.tar.bz2
    
    cd liferea-1.12-rc1a
  4. Stop – eigentlich käme jetzt ./configure, aber bei Debian Stretch würdest du in folgende Fehlermeldung laufen:
    "You should recreate aclocal.m4 with macros from libtool..."
    Um das zu vermeiden, erzwingst du die erneute Erzeugung der genannten Skripte mit den korrekten Versionen.

    autoreconf --force --install
  5. Aber jetzt, der bekannte Dreisatz:
    ./configure
    make
    sudo make install

    Das war alles. Ich bin gespannt, wie sich Liferea entwickelt. Bis jetzt sieht das alles schon recht gut aus. Und vielleicht schauen sich andere Clients (ja, Akregator – du bist gemeint!) dann auch mal endlich den TTRSS-Sync ab.

ältestenBeiträge

Copyright © 2017 vinzv

Theme von Anders Norén↑ ↑