[gelöst] /bin/bash ersetzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
starflighter
Beiträge: 4
Registriert: 04.11.2016 17:10:09

[gelöst] /bin/bash ersetzen

Beitrag von starflighter » 04.11.2016 17:18:28

Hallo,
ich habe einen Server auf dem ein anderer Admin root-Rechte hat.
Nun möchte ich seine Sessions gerne loggen. Ich hab mich umgesehen, was es so für Mittel gibt und bin auf diese tolle Shell gestoßen:
https://github.com/squash/sudosh2

Nun möchte ich die Bash durch diese Shell ersetzen. Da der 2 Admin auch Zugriff auf die /etc/passwd hat, möchte ich es so aussehen lassen, als ob er direkt die Bash nutzt, ohne die sudosh dazwischen.

Wie lässt sich sowas machen?
Im Prinzip hatte ich vor die Datei /bin/bash als Link auf die sudosh zu verlinken. Dabei hab ich mir mittlerweile schon 2 VMs zerschossen. :roll: :D
Geht das so überhaupt?

Danke und Gruß
starflighter
Zuletzt geändert von starflighter am 05.11.2016 22:50:05, insgesamt 1-mal geändert.
Das "einzig" wahre Linux :THX: :wink:

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22440
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: /bin/bash ersetzen

Beitrag von KBDCALLS » 04.11.2016 18:26:43

Hier ist mal der Abschnitt aus der Readme .
Configure sudosh to be used as a login shell
============================================

1) If your system supports /etc/shells, add the absolute path to sudosh to
the list.

2) Edit /etc/passwd and set the user's shell to the absolute path of
sudosh (generally /usr/local/bin/sudosh unless you change the --prefix)

3) Set the "default shell" option in sudosh.conf to the shell you want
sudosh to execute.

4) To allow things like scp, sft, cvs, rsync, etc, use the "-c arg allow" in
sudosh.conf. The allowed command will need to match what is being sent to
it, notably some OpenSSH servers will call /usr/lib/openssh/sftp-server.
Hiernach sudosh der Datei /etc/shells hinzufügen,das wäre /im Normalfalle /usr/local/bin/sudosh oder bei einem Debianpaket /usr/bin/sudosh dann das gleich nochmals in der /etc/passwd und in der sudosh.conf die default Shell eintragen
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
starflighter
Beiträge: 4
Registriert: 04.11.2016 17:10:09

Re: /bin/bash ersetzen

Beitrag von starflighter » 04.11.2016 19:49:22

Hi,
das Readme kenne ich schon und es hilft leider nur bedingt.
Ich glaube es kam nicht ganz so rüber, was ich haben will.

Wenn ich es nach der Anleitung mache steht folgendes in der /etc/passwd:
root:x:0:0:root:/root:/usr/local/bin/sudosh

Es soll aber die bash drinn stehen bleiben und trotzdem die sudosh genutzt werden:
root:x:0:0:root:/root:/bin/bash

Meine Idee ist jetzt das die Datei /bin/bash nicht die wirkliche Bash ist, sondern nur ein Link auf /usr/local/bin/sudosh.
Ist der Ansatz irgendwie realisierbar?
Das "einzig" wahre Linux :THX: :wink:

DeletedUserReAsG

Re: /bin/bash ersetzen

Beitrag von DeletedUserReAsG » 04.11.2016 19:56:38

Und wozu soll das gut sein? Darf der andere Admin nicht wissen, dass du ihm hinterherspionierst? Bekommt er trotzdem raus, wenn er sich die Prozessliste anschaut, abgesehen davon ist das zumindest moralisch, und je nach Umständen auch rechtlich, bedenklich.

Pragmatische Lösung: wenn nicht ausreichend Vertrauen in seine Fähigkeiten/Absichten besteht, ihm einfach nicht die vollen Adminrechte geben, sondern mit etwa sudo genau die Sachen definieren, die er ausführen darf.

Benutzeravatar
starflighter
Beiträge: 4
Registriert: 04.11.2016 17:10:09

Re: /bin/bash ersetzen

Beitrag von starflighter » 04.11.2016 20:17:00

Naja, es geht eigentlich um eine Wette. Er behauptet, als root sich unbemerkt anmelden zu können und keine Spuren auf dem Server zu hinterlassen.

Und ich habe dagegen gewettet und bin natürlich auch root auf dem Blech. Die ganze Sache läuft auf einem privaten Server.
Ich hoffe es ist jetzt ein bisschen klarer :) .

Dazu gibt es schon eine weiteren Syslog-Server und auditing für den root. Aber die Krönung währe diese sudoshell als bash.

Im Endeffekt möchte ich soviel vorbereiten, dass er irgendetwas nicht findet :wink:
Zum Glück ist dieser kein Debianer, so wird er wohl kaum diesen Thread hier finden... :mrgreen:
Das "einzig" wahre Linux :THX: :wink:

DeletedUserReAsG

Re: /bin/bash ersetzen

Beitrag von DeletedUserReAsG » 04.11.2016 20:39:57

Er behauptet, als root sich unbemerkt anmelden zu können und keine Spuren auf dem Server zu hinterlassen. Und ich habe dagegen gewettet […]
Wenn’s darum geht: journald so konfigurieren, dass es das Journal direkt auf ’ne andere Kiste schreibt.

Benutzeravatar
starflighter
Beiträge: 4
Registriert: 04.11.2016 17:10:09

Re: /bin/bash ersetzen

Beitrag von starflighter » 05.11.2016 22:49:24

Thema ist erledigt. Nach einigem Probieren hat es doch funktionert.
Ich schreibe hier noch kurz rein, wie es sich lösen lässt.

Bevor ihr weiterlest auch von mir noch 2 Gedanken:
- seid ihr authorisiert das zu tun?
- wenn ihr Fehler macht oder es nach einiger Zeit evtl. nicht mehr so funktionert wie beschrieben, macht ihr schlimmstenfalls euer System erst mal unbrauchbar.

Ihr lest immernoch ??
Naja, so funktionerts:

- sudosh runterladen und kompilieren
- cp /usr/local/bin/sudosh /bin
- cp /bin/bash /bin/bash1
- ln -f /bin/sudosh /bin/bash
- ändert in der /etc/sudosh.conf die default shell auf /bin/bash1

=> ALLE User die in der /etc/passwd die Bash eingetragen haben, nutzen bei ihrer nächsten Anmeldung die sudosh !!!

und es lässt sich natürlich auch Rückgängig machen:

- mv /bin/bash1 /bin/bash
- ändert in der /etc/sudosh.conf die default shell auf /bin/bash

=> es wird wieder die normale Bash genutzt

8O 8O 8O 8O 8O 8O 8O

starflighter
Das "einzig" wahre Linux :THX: :wink:

Antworten