Anfängerfragen - Linux Neuling? Hier ist der richtige Platz für deine Fragen (2)

  • Ersteller Gelöschtes Mitglied 45455
  • Erstellt am
Anfängerfragen:
Ich hab Mint als zweites OS installiert, also das ich es beim booten zwischen Linux und Windows auswählen kann.
Wenn ich im Terminal:
~/.bashrc
~/.profile
/etc/environment
eingebe, kommt jedes mal "Keine Berechtigung".

Sollte ich aber nicht doch die Berechtigungen haben?
Weiß nicht ob das was mit root zu tun hat, wenn ich ins Homeverzeichnis gehe und pwd eingebe, kommt "/home/meinname" .
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Alle drei Dateien haben keine Ausführberechtigung, also bekommst du die Meldung "Keine Berechtigung". Und was du mit dem pwd meinst verstehe ich nicht wirklich.
 
Öhm, okay. Ich hab hier halt stehen:
"Interessant für Sie sind derzeit die Dateien
~/.bashrc und
~/.profile
sowie die Datei
/etc/environment
Die beiden oben genannten Dateien befinden sich in Ihrem Heimatverzeichnis und können von Ihnen
angesehen und editiert werden. "
Also, es geht ja nicht ums ausführen aber das ich es zumindest einsehen könnte.

Ich hätte noch eine andere Frage:
Hab hier ein Hello.c mit dem Inhalt:
#inclue <stdio.h>

int main (void) {
printf("Hello World!\n");
return 0;
}

Hab's mit " gcc -o hello hello.c" ausgeführt und die Datei "hello" erhalten.
Wenn ich des ausführ kommt der print-Asudruck "Hello World!"

Wenn ich jetzt " export PATH=.:$PATH " im Terminal eingebe, und dann wieder hello ausführe, passiert nix, bzw. führt nochmals "Hello World!" aus.
Sollte jetzt net was anderes passieren? :confused:
 
@Thisor
Was erwartest du denn, was passiert?
. ist das aktuelle Verzeichnis.

gruß
hostile
 
Es ist halt ne Aufgabe die ich gerade bearbeite und da steht halt sowas in der Art wie:
geben Sie nun export PATH=.:$PATH und führen Sie danach hello wieder aus, was sehen Sie nun?"

Wenn ich das so ablese würde ich grob sagen das mein " echo PATH " zum aktuellen PATH, also Verzeichnis wird, wo ich mich gerade befinde.

edit:
Ah, das wird es sogar wenn ich "echo PATH" eingebe, da steht halt nur noch "PATH" drin.
Aber sollte sich auch nicht irgendwas an der Ausgabe ändern? Ist ja die Frage wie es nun aussieht, nachdem ich hello ausgebe :fresse:

- Wie mach ich es wieder rückgängig? ^^'

edit2:
Ich glaub ich bin gerade etwas verwirrt: wenn ich "echo PATH" eingebe, kommt PATH raus, beim "echo $PATH" kommt wieder die Umgebung raus o_O
 
Zuletzt bearbeitet:
echo PATH gibt die Zeichenkette "PATH" aus, macht also gar nichts spektakuläres.
echo $PATH gibt den Inhalt der Umgebungsvariablen $PATH aus. Also die Zeichenkette, die in $PATH steht.

Gib doch mal ein: echo $PATH und danach export PATH=.:$PATH und danach nochmal echo $PATH. Dann müsste Dir auffallen, wie Du $PATH umdefiniert hast.

Edit: Du sollst laut der Beschreibung hello übrigens als hello ausführen, und nicht mit ./hello - sonst bringt die Aufgabe nichts ;).

Zurücksetzen kannst Du die Umgebingsvariablen mit . /etc/environment oder source /etc/environment indem Du einfach ein neues Terminal öffnest.
 
Zuletzt bearbeitet:
echo PATH gibt die Zeichenkette "PATH" aus, macht also gar nichts spektakuläres.
echo $PATH gibt den Inhalt der Umgebungsvariablen $PATH aus. Also die Zeichenkette, die in $PATH steht.

Gib doch mal ein: echo $PATH und danach export PATH=.:$PATH und danach nochmal echo $PATH. Dann müsste Dir auffallen, wie Du $PATH umdefiniert hast.
Hab ich jetzt gemacht und der einzige Unterschied der mir auffällt ist, dass am Anfang ein ".: " mehr raus kommt, als davor, der Rest ist identisch geblieben. Ich kann damit nichts anfangen :heul:

Edit: Du sollst laut der Beschreibung hello übrigens als hello ausführen, und nicht mit ./hello - sonst bringt die Aufgabe nichts ;).

Zurücksetzen kannst Du die Umgebingsvariablen mit . /etc/environment oder source /etc/environment

Ich versteh's nicht, ich dachte Ausführen kann man mit, sh , ./ , bash , und source.Wenn das nicht ausführen ist, was ist dann ausführen?
 
Öhm, okay. Ich hab hier halt stehen:
"Interessant für Sie sind derzeit die Dateien
~/.bashrc und
~/.profile
sowie die Datei
/etc/environment
Die beiden oben genannten Dateien befinden sich in Ihrem Heimatverzeichnis und können von Ihnen
angesehen und editiert werden. "
Also, es geht ja nicht ums ausführen aber das ich es zumindest einsehen könnte.
Zum Anschauen musst Du ein Programm zum Anschauen benutzen. Üblich macht man dass mit less. Also probier es mal mit
Code:
less ~/.bashrc
less ~/.profile
less /etc/environment
 
Ah ja, so geht's, danke @jdl.
Gar nicht drauf gekommen, da ja less afaik dafür gedacht ist nur bestimmte Zeilen von einer Textdatei ausgeben soll.

Zurück zu hello und ausführen, glaub ich hab mein Denkfehler gefunden:
wenn ich nur hello eingebe, kommt bei mir:
Das Programm >>hello<< ist in folgenden Paketen enthalten:
*hello
*hello-traditional
Versuchen Sie: sudo apt install <ausgewähltes Paket> "

Damit ich C ausführen konnte, musste ich davor auch ein Paket installieren, da es <stdio.h> nicht kannte. Sollte ich die angezeigten installieren, was anderes oder muss ich gar nicht was installieren?


edit: und ich würde gern meine PATH-Variable wieder zurücksetzen wollen!! ^^'
 
Zuletzt bearbeitet:
Zurück zu hello und ausführen, glaub ich hab mein Denkfehler gefunden:
wenn ich nur hello eingebe, kommt bei mir:
Das Programm >>hello<< ist in folgenden Paketen enthalten:
*hello
*hello-traditional
Versuchen Sie: sudo apt install <ausgewähltes Paket> "

Damit ich C ausführen konnte, musste ich davor auch ein Paket installieren, da es <stdio.h> nicht kannte. Sollte ich die angezeigten installieren, was anderes oder muss ich gar nicht was installieren?


edit: und ich würde gern meine PATH-Variable wieder zurücksetzen wollen!! ^^'
C ist eine Programmiersprache die mit Hilfe eines Compilers übersetzt werden muss. Wie Du das schon vorher beschrieben hast. Damit es im $HOME nicht zu unübersichtlich wird leg mal ein neues Verzeichnis "projects" an.
Code:
cd ~
mkdir projects
mkdir projects/hello
cd projects/hello
Dann kannst Du die Programmquellcodedatei hello.c erstellen. gedit ist ein Editor mit GUI und der Standardeditor unter Gnome; "gedit hello.c" eingeben und den folgenden Text eingeben, speichern und verlassen. (Es tut auch jeder andere Editor. Ich nutze vim auf der Kommandozeile, aber das Ding ist nicht intuitiv zu bedienen. Für Normalos auf der Kommandozeile ist "nano" eher geeignet.)
Code:
#include <stdio.h>
#include <stdlib.h>

int main () {
    printf ("Hello World!\n");

    return EXIT_SUCCESS;
}
Du kannst Dir auch mit "less hello.c" den Sourcecode anschauen und dann muss das Programm übersetzt und gebunden (compiled and linked) werden. Unter Linux ist der Standard C Compiler GCC, und bei einer simplen Quelldatei kann man das Übersetzen und Linken in einem Aufruf erledigen.
Code:
gcc hello.c -o hello
Die Standardlibraries und deren Header (stdio.h und stdlib.h) muss man beim übersetzen nicht explizit angeben, die findet der Compiler/Linker selbst. D.h. man braucht sich hier keinen großen Kopf zu machen. Lass Dir das Verzeichnis mit "ls -l" anzeigen. Bei mir sieht es dann so das Ergebnis aus
Code:
user@host:~/projects/hello$ ls -l
insgesamt 16
-rwxrwxr-x 1 user user 8600 Dez 13 15:50 hello
-rw-rw-r-- 1 user user  107 Dez 13 15:50 hello.c
Wir sehen, dass das "x" Bit gesetzt ist und wir eine ausführbare Datei erzeugt haben. Dann man aus gutem Grund das aktuelle Verzeichnis nicht im Pfad haben sollte, ist das auch nicht als Vorgabe so definiert. Ok, mit "./hello" oder mit dem dem relativen Pfad "~/projects/hello/hello" kann man es ausführen.
 
Zuletzt bearbeitet:
.....oder eben Den projetcs-Ordner mit in die PATH-Variable aufnehmen.
 
Hab ich jetzt gemacht und der einzige Unterschied der mir auffällt ist, dass am Anfang ein ".: " mehr raus kommt, als davor, der Rest ist identisch geblieben. Ich kann damit nichts anfangen :heul:
Erinnern wir uns mal zurück. Da habe ich geschrieben:
Du kannst ausführbare Dateien ausführen, wenn sie in einem Ordner liegen, der in der sogenannten Umgebungsvariable $PATH definiert ist. Du kannst also mal $PATH [Anmerkung: korrekterweise echo $PATH] im Terminal eingeben, und dann wird Dir, mit einem Doppelpunkt getrennt, angezeigt, wo solche direkt ausführbaren Dateien liegen.
Den wichtigsten Teil habe ich jetzt mal unterstrichen. Was heißt es also, wenn in der Datei noch .: mit drin steht und . für das aktuelle Verzeichnis steht? Eigentlich müsste es doch offensichtlich sein, was die Aufgabe einem zeigen möchte...

Beim Zurücksetzen habe ich mich getäuscht - da die Änderungen nur für die aktuelle Terminalsession gelten, kannst Du noch ein neues Terminalfenster aufmachen, wo dann alles wieder normal ist
ich dachte Ausführen kann man mit, sh , ./ , bash , und source.Wenn das nicht ausführen ist, was ist dann ausführen?
Nein. ./ sagt vereinfacht ausgedrückt: "Die ausführbare Datei ist in diesem Verzeichnis, in dem ich mich gerade im Terminal befinde." Das ist kein Befehl, der sagt, "Führe diese Datei aus!". Man muss nur den Pfad zu dieser Datei angeben und die Bash merkt, wenn die Datei ausführbar ist und führt sie dann aus.

Hast Du beispielsweise Deine kompilierte Datei hello im Ordner ~/projects/hello/, und befindest Dich im Terminal auch gerade im gleichen Ordner, dann kannst Du diese Datei mit ./hello oder ~/projects/hello/hello ausführen.
./ ist die relative Pfadangabe für das aktuelle Verzeichnis. Wenn Du eingibst: cd . oder cd ./, dann sagst Du "Wechsle in das Verzeichnis, in dem ich mich gerade befinde." - es passiert also nichts, Du bleibst in genau dem gleichen Verzeichnis.

Wenn Du nur hello eingibst, schaut der Computer in $PATH, in welche Verzeichnisse er schauen soll. Und natürlich findet er das Programm dort nicht, deshalb bekommst Du die Fehlermeldung. Also fügst Du mit .: den Ordner . mit in $PATH ein. Somit schaut der Computer nicht nur in den vordefinierten Verzeichnissen nach dem hello-Programm, wenn Du hello eingibst, sondern auch in dem aktuellen Verzeichnis, in dem Du auf dem Terminal bist.
Wenn Du jetzt, wie von Kuzorra vorgeschlagen, einfach export PATH=~/projects/hello:$PATH eingibst, damit das Verzeichnis, in dem die hello-Datei ist, absolut angegeben wird(zumindest, solange man den Benutzer nicht wechselt), dann kannst Du von jedem beliebigen Verzeichnis aus das Programm durch die Eingabe hello starten.

Ich hoffe, dass das jetzt wirklich verständlich war.
 
Zuletzt bearbeitet:
Ich hab das nochmal abschließend geklärt, in einem Ubuntu-Fachforum und selbst mit meinem VPS ausprobiert:
Die verschlüsselte Datei und die Passphrase zu haben, genügt, um an das Original zu kommen.
Mein VPS kann gar keine Schlüssel-/Keyring-Dateien von meinem Home-Rechner kennen, aber er konnte sofort die Datei unlocken.

Nächste Sicherheitsmaßnahme:
In der Konsole kann man mit Pfeil nach Oben die letzten Befehle sehen. Da mein VPS das auch über SSH tut, gehe ich davon aus, dass jemand, der sich einhackt, sie auch sehen wird. Tödlich.
Wie kann ich diesen Zwischenspeicher für das Blättern mit Pfeil nach Oben leeren???

Hab es rausbekommen...

history -c
 
Zuletzt bearbeitet:
wenn du am anfang ein leerzeichen setzt, wird die zeile als befehl nicht in der bash_history gespeichert ;)
 
In der Konsole kann man mit Pfeil nach Oben die letzten Befehle sehen. Da mein VPS das auch über SSH tut, gehe ich davon aus, dass jemand, der sich einhackt, sie auch sehen wird. Tödlich.
Was ist daran tödlich? Passwörter tauchen in der History ja nicht auf.
 
In der Konsole kann man mit Pfeil nach Oben die letzten Befehle sehen. Da mein VPS das auch über SSH tut, gehe ich davon aus, dass jemand, der sich einhackt, sie auch sehen wird. Tödlich.

Und genau deswegen werden Passwörter interaktiv eingeben. Warum sollte das tödlich sein, wenn jemand deine History sieht? Die SSD nach verschlüsselten Dateien abzusuchen dauert Sekunden. Du machst dir n Kopf wegen absolut belanglosen Dingen.
 
möcht mir (so zum spaß, hab nächste woche frei) ein möglichst sicheres und anonymes system auf meinem alten laptop einrichten. ähnlich wie tails, nur eben fest installiert.

debian als basis? oder was anderes?
und gibts ne checkliste, was ich alles abarbeiten sollte?
 
Weshalb möchtest du denn tails nicht weiter verwenden? Ein wesentlicher Teil der Anonymität und Sicherheit basiert ja bei Live-Systemen eben gerade darauf, dass sie nach jedem Reboot wieder im Default-Zustand sind, im Gegensatz zu einem persistenten System, welches durchgehend Veränderungen (Und Manipulationen) ausgeliefert ist
 
...und dadurch eher einen im Netz wiedererkennbaren Fingerabdruck hat, als ein default-Tails-Livesystem das höchstens über eine sehr individuelle Hardware-Konfig auffallen könnte
 
Und genau deswegen werden Passwörter interaktiv eingeben. Warum sollte das tödlich sein, wenn jemand deine History sieht? Die SSD nach verschlüsselten Dateien abzusuchen dauert Sekunden. Du machst dir n Kopf wegen absolut belanglosen Dingen.

Ja, so sollte es in der Regel sein. Manchmal werden wichtige Angaben jedoch als Parameter übergeben, also mit dem Befehl selbst, und verbleiben daher auch in der History.
Man kann nicht vorsichtig genug sein.
 
naja, hab halt n laptop übrig und möchte da jetzt nicht ne leere platte haben und immer nur live booten.

hab tails bisher nur zum testen in einer VM benutzt, wie würde ich das handhaben wenn ich wallets, private keys,... hab, die ich immer brauch?
2. usb stick, den verschlüsseln und da alles rumtragen?

da dachte ich mir, ich greif mir z.B. ein debian, mach schön full-disk encryption, beschäftige mich noch ein paar stunden mit hardening und hab dann am ende ein möglichst sicheres system.

EDIT: klar, so gut wie ein live system wird es nie werden. allerdings mach ich auch nix illegales und das ganze ist mehr eine "weil ichs kann" aktion. also kann ich es verkraften, wenn es nicht 100% wird.
 
Zuletzt bearbeitet:
Ja, so sollte es in der Regel sein. Manchmal werden wichtige Angaben jedoch als Parameter übergeben, also mit dem Befehl selbst, und verbleiben daher auch in der History.
Man kann nicht vorsichtig genug sein.

Da bin ich mal sehr schwer gespannt, ob du es schaffst mir da ein Beispiel zu zeigen.
 
naja, hab halt n laptop übrig und möchte da jetzt nicht ne leere platte haben und immer nur live booten.
...

Grub2 kann auch ISO-Images booten. Insofern wäre es einfach möglich, die Tails-ISO auf die Platte zu kopieren und von dort zu starten, dann wäre die Platte schon mal genutzt.
Und deine Daten dann auf einen verschlüsselten Stick, ja, warum nicht?
Ansonsten könntest du auch eine weitere Partition anlegen und die Daten dort ablegen, evtl. ohne Schreiberlaubnis für den Standarduser.
 
Zuletzt bearbeitet:
das klingt doch nach einem plan.
paar partitionen und dann die iso von der hdd booten.
 
Vielleicht wäre Kali was für dich. Oder besser noch Qubes, soll aber nicht ganz einfach zu bedienen sein.

- - - Updated - - -

Manchmal werden wichtige Angaben jedoch als Parameter übergeben, also mit dem Befehl selbst, und verbleiben daher auch in der History.
Dafür braucht man keine History, die Parameter kann jeder sehen, der "ps" eingibt, solange der Prozess noch läuft. Deshalb macht man so was generell nicht.
 
Zuletzt bearbeitet:
Also ich krieg doch echt langsam die Krise, nach dem Deepin Wochenlang sehr gut lief, fing es in den letzten Tagen immer mehr an mein System zu verunstalten. Ich musste soviele Pakete downgraden und alles das ich mir gedacht hab ich schmeiss es einfach runter.
Jetzt hab ich mir mal wieder KDE drauf geklatscht und das schmeißt mir andauernd beim Kopieren von Backupfiles einer externen HDD aufs System die externe HDD raus... Ich kann nicht mal den Bilder-Ordner zurück kopieren weil zwischendrin die HDD einfach rausfliegt.
An der HDD liegts zumindest nicht, ich halte echt nicht aus eh.
 
Ich hab vor ner Woche wieder GNOME installiert. So scheiße unfreundlich es auch sein mag, es rennt zumindest. :fresse:
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh