Σε αυτό το θέμα θα κρατάω διάφορες σημειώσεις για εντολές που μου φάνηκαν χρήσιμες. Με βολεύει για να τις βρίσκω γρήγορα μέσω google "keywords site:alkisg.mysch.gr", αλλά μπορεί να τις βρει ενδιαφέρουσες και κάποιος άλλος.
Μερικά προγράμματα, π.χ. vnc, xrdp, "ακούν" σε πόρτες > 1024. Σε μερικές περιπτώσεις τις χρειαζόμαστε σε < 1024, που εκεί όμως μπορεί να τρέξει προγράμματα μόνο ο root.
Παράδειγμα, έστω ότι θέλουμε να υποστηρίξουμε κάποιον που έχει εταιρικό firewall που επιτρέπει εξερχόμενες συνδέσεις μόνο σε web (θύρα 80). Τρέχουμε:
xvnc4viewer -listen &
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 5500
Οπότε έτσι αυτός μπορεί να συνδεθεί στο VNC μας που ακούει πλέον και τη θύρα 80, με:
x11vnc -connect srv1-dide.ioa.sch.gr:80
Προσάρτηση αρχείου .vdi εικονικής μηχανής χωρίς δικαιώματα διαχειριστή:
https://www.qemu.org/2021/08/22/fuse-blkexport/
qemu-storage-daemon --blockdev node-name=prot-node,driver=file,filename=gentoo.vdi --blockdev node-name=fmt-node,driver=vdi,file=prot-node --export type=fuse,id=exp0,node-name=fmt-node,mountpoint=mount-point,writable=on
Κλωνοποίηση σε άλλο τύπο με χρήστη του VirtualBox:
vboxmanage clonemedium disk srv.vmdk dst.vmdk --format VMDK --variant Fixed
Ενημερώσεις απομακρυσμένου συστήματος μέσω ssh όταν ο πάροχος μπλοκάρει την πρόσβαση στα αποθετήρια, ή όταν επικοινωνεί με το δεύτερο σύστημα μόνο μέσω τοπικού δικτύου.
Χρησιμοποιείται ένα δεύτερο σύστημα ως apt proxy.
sudo ssh -ND 1234 alkisg@srv1-dide.ioa.sch.gr
και μετά σε άλλη καρτέλα:
sudo apt update -o 'Acquire::http::Proxy=socks5h://localhost:1234'
sudo apt full-upgrade -o 'Acquire::http::Proxy=socks5h://localhost:1234'
Port forward θύρας, ώστε π.χ. ο server της Δευτεροβάθμιας να στέλνει σε άλλον server στον LAN την κίνηση για κάποια θύρα:
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 1194 -j DNAT --to-destination 10.161.254.41:1194
iptables -A POSTROUTING -t nat -p tcp -d 10.161.254.41 --dport 1194 -j MASQUERADE
iptables -A PREROUTING -t nat -p udp -i eth0 --dport 1194 -j DNAT --to-destination 10.161.254.41:1194
iptables -A POSTROUTING -t nat -p udp -d 10.161.254.41 --dport 1194 -j MASQUERADE
Στον Επόπτη, αν κάνουμε δεξί κλικ → Εκτέλεση → Άνοιγμα κονσόλας → Διαχειριστή, τοπικά, και κάνουμε apt full-upgrade, τότε εάν υπάρχει νέα έκδοση του πακέτου epoptes-client, το τερματικό κλείνει και τα updates κόβονται στη μέση.
Η παρακάτω εντολή βοηθάει στην παράκαμψη αυτού του προβλήματος:
sudo systemd-run socat EXEC:"pkexec env TERM=xterm-256color COLUMNS=95 LINES=50 SHELL=/bin/bash screen -T xterm-256color",pty,stderr openssl-connect:$SERVER:5499,verify=0
Προβολή της εξωτερικής IP:
# Μέσω DNS resolution:
nslookup myip.opendns.com resolver1.opendns.com
host -4 myip.opendns.com resolver1.opendns.com
# Μέσω http request:
wget https://alkisg.mysch.gr/ip/ -qO-
Αναζήτηση τοπικών DHCP servers:
sudo /usr/lib/klibc/bin/ipconfig -n enp2s0
ή
sudo nmap --script broadcast-dhcp-discover
Καλή εντολή για έλεγχο ποιότητας σύνδεσης:
ping -c 1000 -f -i 0.002 destination
Για factory reset Motorola G:
- Power off
- Power on + Volume down
- Select Recovery mode
- No command prompt: κράτα power off, πάτα volume up, άφησε volume up (τότε δείχνει το recovery), άφησε power off.
Κρυπτογράφηση δίσκου ανά χρήστη (δηλαδή ούτε ο administrator δεν μπορεί να διαβάσει τα αρχεία των χρηστών), με αυτόματο ξεκλείδωμα κατά το login και υποστήριξη ZFS snapshots:
https://docs.oracle.com/cd/E88353_01/html/E37853/pam-zfs-key-7.html
To avoid adding `homes=home` in PAM config, use the default rpool/home:
apt install zfsutils-linux libpam-zfs
zpool create -m none rpool nvme0n1p7 -f
zfs create -o mountpoint=/home rpool/home
zfs create -o encryption=on -o canmount=noauto -o keylocation=prompt -o keyformat=passphrase rpool/home/alkisg
Leave /home/alkisg owned by root and mode 755; modify the permissions inside the ZFS dataset.
Λήψη περιεχομένων δυναμικής σελίδας σε Google Chrome:
https://zapier.com/blog/full-page-screenshots-in-chrome/#custom-dimensions
Πλήρες μπλοκάρισμα Internet των clients, μέσω του Επόπτη:
sudo ip r add default via 127.0.0.1
Επαναφορά:
sudo ip r del default via 127.0.0.1
Microbit plugdev group:
https://askubuntu.com/questions/1317548/webusb-doesnt-work-connecting-to-microbit
https://gitlab.com/ts.sch.gr/lins2bot/-/issues/3
Εγκατάσταση arduino-ide για όλους τους χρήστες (στο περίπου):
sudo wget https://downloads.arduino.cc/arduino-ide/arduino-ide_2.3.4_Linux_64bit.AppImage -O /usr/local/bin/arduino-ide
sudo chmod +x /usr/local/bin/arduino-ide
# Run it as the user to get access to the menu and icon files
arduino-ide --no-sandbox
# Copy the folder to bypass fuse permissions
cp -r /tmp/.mount_ard* /tmp/arduino-ide
sudo cp /tmp/arduino-ide/arduino-ide.desktop /usr/local/share/applications/
sudo sed 's/AppRun/arduino-ide/' -i /usr/local/share/applications/arduino-ide.desktop
sudo mkdir -p /usr/local/share/icons/hicolor/256x256/apps/
sudo cp /tmp/arduino-ide/arduino-ide.png /usr/local/share/icons/hicolor/256x256/apps/
Δεν αρκεί. Θέλει και να το κάνεις να "δεί" (μόνιμα) τη θύρα usb, αλλοιώς δεν θα δουλέψει. Ως εξής:
sudo usermod -a -G dialout username
(Όπου username = το όνομα του χρήστη σου.)
(Μετά, θα χρειαστεί και reboot· αλλά νομίζω ένα απλό logout/login αρκεί. Η πλήρης αναφορά, εδώ: https://docs.arduino.cc/software/ide-v1/tutorials/Linux/.)
Δεν γνωρίζω, όμως, αν αυτή η εντολή πρέπει να δίνεται ανά χρήστη, ή υπάρχει τρόπος να δοθεί μιά κι έξω, system-wide.
Η πρόσβαση στις συσκευές λύνεται κεντρικά μέσω udev, δεν χρειάζεται αλλαγή groups, δες την προηγούμενη σημείωσή μου λίγο παραπάνω.
Για να δούμε τι θα κάνει το ΙΤΥΕ... Αν βρει κάποιους από την Πάτρα για κεντρική υποστήριξη τότε έχει νόημα να έχουμε Linux στα σχολεία και να δίνουμε λύσεις για τέτοια...