Linux Kali unable to execute?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Warum ist das Script überhaupt in /usr/bin? Shell Scripts kannst du überall speichern, ich würde eher davon absehen, sie in /usr/bin oder /usr/sbin zu installieren. Du kannst dein Bash Script in jedem Verzeichnis einfach mit

bash /pfad/zum/script.sh

ausführen oder, wenn die Shebang richtig gesetzt ist, was bei dir nicht der Fall ist (das ist das Problem) kannst du auch einfach

/pfad/zum/script.sh

ausführen, was für den Fall, dass du im gleichen Verzeichnis bist dazu führt, dass du

./script.sh

ausführen musst, wie in einer anderen Antwort angedeutet.

In deinem Fall hast du einfach einen Tippfehler in der ersten Zeile

#!bin/bash

Da bin/bash in diesem Verzeichnis nicht existiert, weiß dein System nicht, wie sie das Script ausführen soll. Das Shebang is korrekt

#!/bin/bash
Woher ich das weiß:Studium / Ausbildung – Studium in theoretischer Informatik (Master)

Manni626 
Fragesteller
 17.11.2023, 15:19

Hallo, erstmal vielen Dank für deine Antwort. Ich habe das im Internet gelesen mit usr bin zu speichern. Wo würdest du empfehlen zu speichern?

Was macht der Befehl Bash?

0
Manni626 
Fragesteller
 17.11.2023, 15:20
@Manni626

Das ist mein erstes Programm, sorry für die dummen Fragen

0
GrakaVII  17.11.2023, 16:52
@Manni626

Weil was du in /usr/bin ablegst von jedem Benutzer ausgeführt werden kann, das ergibt nur dann Sinn, wenn dein Script von jedem Benutzer ausgeführt werden können soll.

Bash sagt deinem System einfach explizit, dass das Script mit der Bash Shell ausgeführt werden soll

0
Manni626 
Fragesteller
 17.11.2023, 17:29
@GrakaVII

Soll ich einfach auf dem Desktop speichern

0
Manni626 
Fragesteller
 17.11.2023, 18:07
@GrakaVII

Hab jetzt hinbekommen, aber der spuckt mir da war komische aus also ping.1 : Name or service Not known und das 50 mal

0
GrakaVII  17.11.2023, 22:00
@Manni626

Wie rufst du das Script denn auf? Also zunächst hat die Version, die du geteilt hast immer noch ein paar Fehler, zum andern ist mir nicht ganz klar, wozu du dafür überhaupt ein Script schreibst und nicht einfach Nmap o.ä nimmst

#!/bin/bash                                                                                                                                                                       
                                                                                                                                                                                  
for ip in $(seq 1 254); do                                                                                                                                                        
    ping -c 1 $1.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" &                                                                                                            
done       

Wenn du das mit

bash ipsweeper.sh 10.0.0

aufrufst, oder welchem Subnet auch immer, erhälst du z.B.

10.0.0.1                                                                                                                                                                          
10.0.0.3                                                                                                                                                                          
10.0.0.2                                                                                                                                                                          
10.0.0.8                                                                                                                                                                          
10.0.0.11                                                                                                                                                                         
10.0.0.13                                                                                                                                                                         
10.0.0.15                                                                                                                                                                         
10.0.0.18                                                                                                                                                                         
10.0.0.19                                                                                                                                                                         
10.0.0.22                                                                                                                                                                         
10.0.0.23         

Noch ein kleiner Hinweis, nicht jedes Subnet ist /24 ;), insgesamt ist das ganze Script ausbaufähig, es würde viel mehr Sinn ein Subnet als Argument zu übergeben, also sowas wie

bash ipsweeper.sh --subnet 10.0.0.0/24
0
Manni626 
Fragesteller
 18.11.2023, 13:55
@GrakaVII

Ich kenn mich leider garnicht aus, ich kenne ein paar Python Befehle die wir in der Schule gelernt haben und ich will mich da jetzt reinfinden. Da war mein erstes Script was ich einfach aus dem Internet abgeschrieben habe und austesten wollte. Aber deine ganzen Tipps helfen mir sehr weiter, danke!

0

Auf die fehlerhafte Shebang wurde ja bereits hingewiesen.

Ein leerer Delimiter (-d"") bei cut wird auch nicht funktionieren.

Tipp mal pwd und ls ein und guck ob du im richtigen Pfad bist und ob die bash Datei präsent ist.

Und verwend bitte nicht Kali Linux. Du bist jetzt gerade in deiner Script Kiddie Phase und das ist auch alles schön und gut, das machen die meisten Programmierer irgendwann durch. Aber Kali Linux ist einfach nur Debian mit Bloat. Kannst du auch alles auf den herkömmlichen Distros machen.

Und für nicht irgendwelche Scripts aus dem Internet mit sudo oder root aus.


Manni626 
Fragesteller
 17.11.2023, 00:03

Ich versteh nicht was du damit meinst, Kali ist das beste Betriebssystem was das angeht?

Ich teste morgen aus was du geschrieben hast, ich bin noch am lernen, aber ich mach das nicht aus spaß sondern um mich auf mein Praktikum vorzubereiten bei einer Cyber-Security Firma

0
Manni626 
Fragesteller
 17.11.2023, 00:05
@Manni626

Und wenn nicht aus dem Internet, wo soll ich dann Scripts herbekommen?

0
mompf03231  17.11.2023, 00:18
@Manni626

Kali ist eine Debian Distro mit Bloat. Alles was es auf Kali gibt kannst du auf jedem anderen System in jeweils 2 Sekunden installieren.

0
Manni626 
Fragesteller
 17.11.2023, 00:21
@mompf03231

Das stimmt, aber warum benutzen es dann so viele?

Und was würdest du anstatt sudo schreiben, ist doch richtig?

0
GrakaVII  17.11.2023, 00:35
@Manni626

Naja, um einen ping auszuführen brauchst du idr. keine erhöhten Privilegien, außer du hast die Berechtigungen der Binary geändert. Abgesehen davon führst du schon als root user aus, da ist das sudo onehin hinfällig. Wenn ein Programm Root Privilegien braucht gehört es auch nach /usr/sbin nicht /usr/bin

1
GrakaVII  17.11.2023, 00:38
@Manni626

einfach gar nichts. Es reicht völlig, wenn du das Bash Script ausführst, du bist root user, mehr Rechte geht nicht

bash ipsweeper.sh
1
LUCKY1ONE  17.11.2023, 00:18

Wie blöd ist denn bitte die Aussage? Lass die Leute doch bitte die Distros verwenden, die sie verwenden möchten.

Offensichtlich scheinst du nicht viel Ahnung von Linux zu haben, wenn du hier wirklich mit dem Lösungsansatz: "Gib doch mal ls ein" kommst. Das ist ja wohl offensichtlich, dass er in der richtigen Directory ist. So wie es aussieht, hast du auch noch nie nen Bash-Skript ausgeführt.

0
mompf03231  17.11.2023, 00:21
@LUCKY1ONE

Ich sehe diese Art von Shell fast nie, ich glaube das ist fish. Die Kommandozeile hat mich verwirrt, das ist alles. Scheinbar ist `sudo ipsweeper` ja der Befehl, das ist hier aber nicht völlig ersichtlich mit dem ganzen komischen Markup im Termina Emulator.

Und ja, tatsächlich benutze ich Bash so gut wie nie abgesehen von Installationsskripten und das auch nur in Notfällen.

0
LUCKY1ONE  17.11.2023, 00:23
@mompf03231

Nö. "sudo ipsweeper" ist eben nicht der Befehl.

das ist hier aber nicht völlig ersichtlich mit dem ganzen komischen Markup im Termina Emulator.

Doch. Schon irgendwie. ^^

0
mompf03231  17.11.2023, 00:24
@LUCKY1ONE

Doch, sudo ipsweeper ist der Befehl in seiner Kommandozeile. Es ist nicht der richtige Befehl weil es nicht im Pfad ist, das ist mir schon bewusst. Das war aber nicht gemeint.

0
LUCKY1ONE  17.11.2023, 00:26
@mompf03231

Er ist im richtigen Verzeichnis. Siehst du das nicht oder was? Und nein, du führst so keine shell-Skripts unter Kali aus.

0
mompf03231  17.11.2023, 00:28
@LUCKY1ONE

Du redest die ganze Zeit an mir vorbei, ich weiß nicht was das soll.

Mir war nicht ersichtlich dass `sudo ipsweeper.sh` ein Befehl war, weil diese Form der Shell fast von niemandem benutzt wird außerhalb der Arch Community. Erst recht nicht mit der Unterstreichung und den unterschiedlichen Farben. Dass das kein richtiger Befehl ist ist mir klar, immer noch.

0
GrakaVII  17.11.2023, 00:37
@mompf03231

Das ist ne zsh Shell, ziemlich weit verbreitet…, die zsh config ist jetzt auch nichts besonderes, einfach das womit Kali per Default kommt, die PS1 ist eigentlich recht übersichtlich mMn

0
Von Experte guenterhalt bestätigt

Du führst das Skript nicht richtig aus.Richtige Schreibweise wäre:

sudo ./ipsweeper.sh

Eventuell musst du noch Berechtigungen anpassen.

chmod +x ipsweeper.sh
Woher ich das weiß:eigene Erfahrung – Zertifiziert von THM und CTF Liebhaber

Manni626 
Fragesteller
 17.11.2023, 00:19

Test ich morgen mal aus mit der Schreibweise, aber die Berechtigung hab ich in der Zeile oben drüber gemacht, Vielen Dank

0
GrakaVII  17.11.2023, 00:46

Das Script ist in /usr/bin installiert, von daher ist das ./ überflüssig, die Shebang ist einfach nicht korrekt, es müsste

#!/bin/bash

sein.

Als Beispiel ein einfaches Shell Script

#!/bin/bash

echo "Hallo Welt"

Installiert in /usr/bin mit Execute Bit

realpath demo.sh
/usr/bin/demo.sh

Wenn wir jetzt which auf den Namen ausführen erhalten wir wie erwartet

which demo.sh
/usr/bin/demo.sh

und können von überall einfach das Script ausführen

pwd && demo.sh
/root
Hallo Welt
2