shell Archives - Technik - Blogbasis.net https://technik.blogbasis.net/tag/shell Die Basis des freien Wissens – Technik Tue, 07 Oct 2014 18:38:23 +0000 de hourly 1 https://wordpress.org/?v=6.8.1 Mit script & netcat Shellausgaben teilen https://technik.blogbasis.net/mit-script-netcat-shellausgaben-teilen-07-10-2014 https://technik.blogbasis.net/mit-script-netcat-shellausgaben-teilen-07-10-2014#respond Tue, 07 Oct 2014 18:38:23 +0000 http://technik.blogbasis.net/?p=1206 In diesem Blogpost möchte ich ein einfaches Kommandozeilen-Setup vorstellen, mit dem ihr eure Shellausgaben live übertragen könnt. Wir werden dabei nur die Standard-Tools: mkfifo, script, bash & netcat werden.

Die Tools

Das Programm „script“

Script ist ein kleines Programm, welches eine Subshell spawnt, in der es alle graphischen Ein- bzw. Ausgaben in eine Datei oder ein Fifo schreibt. Dabei werden alle Kontrollsequenzen mitgeschrieben, sodass keine Informationen verloren gehen. Das ist u.a. nützlich, wenn man seine Aktionen auf der Kommandozeile protokollieren möchte.

Das Programm „netcat“

Netcat ist ein weiteres Tool, mit dem man Server-Dienste ansprechen bzw. selbst bereitstellen kann.

Das Setup

Wir unterscheiden das Setup in Server (Anbieter der Shell) und Client (Zuschauer).

Der Server

Auf dem System, auf dem die Shell geteilt werden soll, führen wir folgende drei Befehle aus:

mkfifo /tmp/sharedshell

Damit erstellen wir eine spezielle Datei, welche sich wie eine First-In-First-Out (FIFO) Pipe verhält.

while true; do cat /tmp/sharedshell | nc -l -p 8088; done &

Mit diesem Befehl lesen wir aus unserem FIFO-File und schicken die Ausgabe an einen Socket auf Port 8088. Jetzt müssen wir nur noch in unsere FIFO-Datei Daten reinschreiben:

script -f /tmp/sharedshell

Das startet eine Subshell und schreibt alle Ein-/Ausgaben in die FIFO-Datei. Möchte man temporär eine andere Shell nutzen, so führt man folgendes Kommando aus:

SHELL=/usr/bin/bash script -f /tmp/sharedshell

Der Client

Unter der Voraussetzung, das der beim Netcat angegebene Port von außen erreichbar ist, kann sich der Zuschauer einfach verbinden:

nc IP PORT
  • IP : IP des Hosts
  • PORT: Port auf dem netcat lauscht (hier: 8088)

Ist die Verbindung hergestellt, so werden die Ein- bzw. Ausgaben des Servers dargestellt. Leider kann Netcat maximal eine Verbindung gleichzeitig annehmen, sodass die Anzahl der Zuschauer auf 1 begrenzt ist. Für kurze Screen-Übermittlungen sollte das jedoch ausreichen.

~ Sebastian

]]>
https://technik.blogbasis.net/mit-script-netcat-shellausgaben-teilen-07-10-2014/feed 0
SSHFS freigeben, aber ohne Shellzugriff https://technik.blogbasis.net/sshfs-freigeben-aber-ohne-shellzugriff-17-06-2014 https://technik.blogbasis.net/sshfs-freigeben-aber-ohne-shellzugriff-17-06-2014#respond Tue, 17 Jun 2014 18:18:44 +0000 http://technik.blogbasis.net/?p=1113 Hallo Leute,

in diesem Blogpost geht es um folgendes Problem: Ein Freund von mir brauchte etwas Speicherplatz auf einem Server. Per SSHFS wollte ich ihm diesen zur Verfügung stellen, jedoch ohne ihm gleichzeitig Shellzugriff auf den Server geben zu müssen.

Die Lösung

Das gewünschte Problem lässt sich jedoch ganz einfach lösen.

Man vergewissert sich zunächst, dass man in der /etc/ssh/sshd_config folgende Zeilen stehen hat:

Subsystem sftp /usr/lib/openssh/sftp-server

Der Pfad kann gegebenenfalls abweichen. Nichtsdestotrotz kopiert man sich die Pfadangabe und fügt diesen als valide Shell hinzu:

sudo su
echo '/usr/lib/openssh/sftp-server' >> /etc/shells

Wenn man danach für seinen Freund einen neuen Benutzer anlegt, so gibt man einfach sftp-server als die Shell an:

sudo useradd -m -s /usr/lib/openssh/sftp-server sshfsacc

Nun wird statt der eigentlichen Shell das SFTP-Programm ausgeführt.  Der Benutzer kann also SSHFS nutzen, jedoch keine anderen SHELL-Kommandos ausführen.

~Sebastian

]]>
https://technik.blogbasis.net/sshfs-freigeben-aber-ohne-shellzugriff-17-06-2014/feed 0
Fish – die bessere Shell für Linux https://technik.blogbasis.net/fish-die-bessere-shell-fuer-linux-16-03-2013 https://technik.blogbasis.net/fish-die-bessere-shell-fuer-linux-16-03-2013#respond Sat, 16 Mar 2013 15:10:19 +0000 http://technik.blogbasis.net/?p=194 Wie leben in Zeiten von Displays mit 32bpp Farbtiefe und benutzen immer noch Shells (wie z.B. bash oder dash), die wahlweise 2 oder 3 Farben benutzen. Das innovativste bei ihnen sind bestenfalls die Pipes. Wenn ihr das alles vergessen wollt und Fish kennen lernen wollt, dann lest weiter…

The Friendly interactive shell

Die einzigartige Features dieser Shell. Unter anderem:

  • Autovervollständigung (automatisch aus den man-pages generiert)Autovervollständigung
  • Syntaxhighlighting (mit 256 Farben)Man Vervollständigung
  • Konfiguration über den WebbrowserWebinterface
  • pthreads für bessere Performance

Installation der Fish-Shell?

git clone git://github.com/fish-shell/fish-shell.git
autoconf
./configure
make
sudo make install
fish # oder chsh -s /usr/bin/local/fish um Fish als Standard Shell zu nutzen

Nach dem ersten start sollte man erstmal „fish_update_complementations“ aufrufen um die Autovervollständigung zu updaten. Danach „fish_config“ um die Shell an die eigenen Bedürfnisse anzupassen. Eventuell „help“ für die Onlinehilfe.

Wichtig!!!

Da Fish eine einfachere Scriptsyntax hat als Bash, sollte man unbedingt sh-Skripte mit einer Shebang („#!/bin/bash“) versehen oder über „bash myscript.sh“ aufrufen. Anstatt einer „~/.bashrc“ existiert eine „~/.config/fish/config.fish“-Datei. In ihr kann man Umgebungsvariablen setzen „set VAR“ anstatt „export VAR“, eigene Funktionen deklarieren („function“) oder aliase („alias NAME COMMAND“).

Herzlichen Glückwunsch zur neuen Shell, die keine Wünsche übrig lässt!!!

Viele Grüße

bitwave

]]>
https://technik.blogbasis.net/fish-die-bessere-shell-fuer-linux-16-03-2013/feed 0