Python – Virtuelle Umgebung

Ähnlich wie mit Dockerumgebungen, kann man in Python Entwicklungsumgebungen kapseln bzw. isolieren. Damit hat man alle Abhängigkeiten innerhalb der Umgebung und kann flexibel zu globalen Pythoninstallation auch andere Paketversionen verwenden.

Außerdem lassen sich auf diese Weise eventuelle Versionskonflikte vermeiden und kann seine Systemumgebung schützen, weil diese unberührt bleibt.

Um eine solche Umgebung zu initialisieren folgendes:

Bash
python3 -m venv face_scrapper
Bash

Im Anschluss aktiviert man diese Umgebung und signalisiert damit, dass alle Aktionen wie Installationen von Abhängigkeiten etc. innerhalb der Umgebung passieren sollen.

Bash
source face_scrapper/bin/activate
Bash

Wichtig: Wenn die Umgebung aktiviert ist, sollte man auch eine Veränderung der Prompt im Bash sehen!
Bsp.: zsh:

Um sich aus der Umgebung auszuloggen folgt einfach ein

Bash
deactivate
Bash

Git – Verschlüsselung RSA auf MacOS Ventura

Die Standardverschlüsselung unter MacOS Ventura hat sich geändert. Dementsprechend muss man, wenn man einen RSA-verschlüsselten Key benutzen möchte, die Verschlüsselung in der SSH-Config angeben.

Dazu trägt man in der ~/.ssh/config folgende Zeilen zusätzlich ein:

Host *
    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa

Linux Cheatsheet

find `$pwd` -name '*.$DATEIENDUNG' -exec echo rm -rv {} \; // Dateien mit bestimmter Dateiendung löschen

du --max-depth=1 -h // Datei/Verzeichnisgrößen ermitteln

find -mtime +30 `$pwd` -exec echo rm -rv {} \; // Dateien älter als 30 Tage löschenCode-Sprache: PHP (php)

Auf dem Mac Homebrew neu installieren

Erst den alten Stand entfernen

$ cd `brew --prefix`
$ rm -rf Cellar
$ brew prune
$ rm -rf Library .git .gitignore bin/brew README.md share/man/man1/brew
$ rm -rf ~/Library/Caches/Homebrew

Dann Homebrew installieren

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Quelle

chrooted ssh Nutzer anlegen

Chroot-Verzeichnis mit allen Unterverzeichnissen anlegen:

mkdir /home/chroot/
mkdir /home/chroot/home/
cd /home/chroot
mkdir etc
mkdir bin
mkdir lib
mkdir usr
mkdir usr/bin
mkdir dev
mknod dev/null c 1 3
mknod dev/zero c 1 5

Alle nötigen Befehle für den Nutzer anlegen

APPS="/bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /usr/bin/id /usr/bin/ssh /bin/ping /usr/bin/dircolors"
for prog in $APPS;  do
        cp $prog ./$prog

        # obtain a list of related libraries
        ldd $prog > /dev/null
        if [ "$?" = 0 ] ; then
                LIBS=`ldd $prog | awk '{ print $3 }'`
                for l in $LIBS; do
                        mkdir ./`dirname $l` > /dev/null 2>&1
                        cp $l ./$l
                done
        fi
done

Passwd für Nutzer anlegen:

cp /lib/libnss_compat.so.2 /lib/libnsl.so.1 /lib/libnss_files.so.2 ./lib/
 echo '#!/bin/bash' > usr/bin/groups
 echo "id -Gn" >> usr/bin/groups
 touch etc/passwd
 grep /etc/passwd -e "^root" > etc/passwd

Gruppenrechte anlegen:

grep /etc/group -e "^root" -e "^users" > etc/group

Chroot-Nutzer anlegen:

useradd -s /bin/bash -m -d /home/chroot/./home/testuser -c "testuser" -g users testuser

Passwort für Nutzer hinterlegen:

passwd testuser

Angelegten Nutzer in chroot-Umgebung kopieren:

grep /etc/passwd -e "^testuser" >> /home/chroot/etc/passwd

Fertig!

Quelle