Geänderte Gruppenrechte unter Linux übernehmen

Ich habe die Gruppenzugehörigkeit eines Benutzers um die Gruppe www-data erweitert, welcher via screen auf dem Terminal eingeloggt ist. Nach dieser Änderung jedoch ist diese Gruppe für den gegenwärtig noch eingeloggten Benutzer weder sichtbar, noch nutzbar.

Gebe ich den Befehl id ein

vader@deathstar:~> id
uid=5001(vader) gid=5001(vader) Gruppen=5001(vader),27(sudo)

kann ich nur die bestehende Gruppenzugehörigkeit erkennen. Selbst das Starten eines weiteren Terminalfensters löst dieses Änderung nicht auf.
Problem ist die Verankerung der Gruppenzugehörigkeit in der Screen-Hauptsitzung. Es gibt auch kein Befehl mit dem man die Gruppentabelle dauerhaft in die screen-Sitzung laden kann. Temporär kann man sich hiermit aushelfen:

su - $USER

Dies hilft aber nur für jede neue Sitzung durch diesen explizit Aufruf, jedoch nicht dauerhaft. Die einzige Lösung hierfür ist leider alle Screen-Fenster ordentlich zu beenden und die Hauptsitzung zu schließen. Erst danach wird mit jedem neuen Tab die geänderte Gruppenzugehörigkeit in jeder neuen Sitzung aktiv.

vader@deathstar:~> id
uid=5001(vader) gid=5001(vader) Gruppen=5001(vader),27(sudo),33(www-data)

 

SSH-Agent forwarding in linux screen session

Man kann mittels Putty den SSH-Key über Agentforwarding in die Terminal Sitzung hineinreichen. Jedoch wird dieser Key mit Abschluss der Sitzung verworfen und bei Wiederverbindung nicht mehr in die Sitzung hineingereicht

Dauerhafte Lösung

Damit der Key – welcher im lokalen Client in die Screensitzung hineingereicht wird – auch in jedem einzelnen Bash-Fenster verfügbar ist, braucht man ein Skript, welches bei jeder Neuverbindung ausgeführt wird.

Dazu lege man zu allererst eine Datei an

touch ~/.ssh/rc

und fügt im Anschluss folgenden Inhalt hinzu:

#!/bin/bash

# Fix SSH auth socket location so agent forwarding works with screen.
if test "$SSH_AUTH_SOCK" ; then
    ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock
fi

# Taken from the sshd(8) manpage.
if read proto cookie && [ -n "$DISPLAY" ]; then
        if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
                # X11UseLocalhost=yes
                echo add unix:`echo $DISPLAY |
                    cut -c11-` $proto $cookie
        else
                # X11UseLocalhost=no
                echo add $DISPLAY $proto $cookie
        fi | xauth -q -
fi

Quellen:

http://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-agent/4086756#4086756

https://stackoverflow.com/questions/21378569/how-to-auto-update-ssh-agent-environment-variables-when-attaching-to-existing-tm#23187030

 

Screen auf der Linux-Konsole benutzen

Mittels screen ist man unter Linux in der Lage – verbunden über Putty und eine lange Serverlaufzeit ohne Neustart vorausgesetzt – ein schier endloses Linuxleben in ein und der selben Konsole zu führen.

Dies hat den Vorteil, dass längere Befehlsausführungen in einer eigenen Sitzung laufen können ohne diese Verbindung dauerhaft aufrecht erhalten zu müssen. Auch führt eine gescheiterte Netzwerkverbindung nicht dazu, dass die gesamte Sitzung abgebrochen wird sondern lediglich die Verbindung zu der Screen-Sitzung. Screen auf der Linux-Konsole benutzen weiterlesen