Restricted-Shell, .bash_profile, .bashrc und scp

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Restricted-Shell, .bash_profile, .bashrc und scp

Beitrag von nil » 24.02.2006 12:50:09

Hallo,

ich wollte eine Restricted-Shell nutzen (rbash) und das funktioniert ganz gut. Hier benötige ich dann nur 5 Befehle, die ich über PATH erreichbar mache (eigenes Verzeichnis mit den Softlinks zu den Befehlen).

Evtl. kann der Benutzer über Samba sein Daten im HOME-Verzeichnis ändern und außerdem funktioniert weiter SCP, daher:

1.) wie schaffe ich es, dass nur /etc/profile angezogen wird und nicht .bash_profile und .bashrc ?
2.) wie unterbinde ich für diese Benutzer SCP/SFTP, ich würde scp ungern löschen ?
3.) gibt es weitere Möglichkeiten auf nicht berechtigte Daten zuzugreifen?

Ach ja, chroot bzw. jail wollte ich nicht nutzen

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 24.02.2006 13:16:22

Ich verstehe noch nicht ganz was du da versuchst zu machen.
Du kannst jederzeit dem scp Befehl die Ausführungsberechtigung für "other" entziehen.

Code: Alles auswählen

chmod o-rwx /usr/local/bin/scp
Ich habe nicht verstanden was du mit deiner PATH Variablem machst. Diese kann sich doch jeder User selber setzen und dadurch erweitern. Sichereiten gibt dir diese nicht. Was nützt es dir die .bashrc und .bash_profile nicht "anzuziehen"? Der Benutzer kann diese ja sowieso jederzeit parsen oder die Variablen per eigenem Script setzen.
Ach ja, und nix schrotten.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 24.02.2006 13:26:14

Ach ja, chroot bzw. jail wollte ich nicht nutzen
kannst du das ziel der aktion nochmal genauer erklären?
ich verstehe nicht wie du allein durch das setzen eines PATH verhinderst, dass der user amndere befehle nutzt?

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 24.02.2006 16:08:40

Ich verstehe auch nicht ganz, was du willst.

SCP kann man übrigens hervorragend durch

Code: Alles auswählen

ssh -C user@rechner "cat>Datei" < Datei
# oder
tar cf - Datei1 Datei2 Verzeichnis1/ | ssh -C user@rechner "tar xf -"
ersetzen.

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 24.02.2006 16:12:47

Hi,
ich werde eben beschreiben, was ich machen möchte.
Ich wollte gerne NUR die Befehle:

Code: Alles auswählen

tty
chmod
sudo
screen
erlauben. Durch /etc/sudoers dürfen Admins gegenseitig die Screen-Session der anderen Admins aufrufen. Ich wollte damit ein 4-Augen-Prinzip für den Benutzer "root" realisieren, wobei jeder Admin nur eine Passworthälfte von root kennt, jedoch 2 Personen nicht vor dem gleichen Rechner sitzen.
Mit "scp" habe ich das Problem, dass der Admin auch alleine andere Dinge sehen kann und evtl. kann er in seinem HOME-Verzeichnis etwas modifizieren (z.B. mit Samba).

Ich habe mir mittlerweile überlegt, ob ich einfach als das Verzeichnis für den Benutzer gar kein Verzeichnis oder ein Read-Only-Verzeichnis sonstwo nehme. Kann es nur leider gerade nicht ausprobieren.

Oder gibt es eine andere Möglichkeit folgendes in einem Schritt und nur dieses zu erlauben:

- Anmeldung per SSH als normaler Benutzer

-erster Admin:

Code: Alles auswählen

screen su -
- zweiter Admin:

Code: Alles auswählen

chmod 777 `tty`
sudo -u <anderer-benutzer> screen -x
(entsprechende Berechtigungen in /etc/sudoers)

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 24.02.2006 16:20:39

Und was machst du, wenn nur diejenigen Admins da sind, die nur die erste hälfte des Kennwortes kennen?

Wenn du deinen Admins nicht trauen kannst, dass sie sich an die Vorgabe "nur unter 4 Augen" halten (wenngleich ich diese etwa übertrieben finde: "Nein, ich kann gerade die Datenbank nicht neu starten, mein Kollege ist gerade auf Klo...") dann solltest du ihnen auch nicht das root-Kennwort anvertrauen!

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 24.02.2006 16:59:11

Mag ja alles so sein. Aber es ist evtl. auch so, dass einfach nur jemand zur Überwachung der Aktionen "virtuell" an den Arbeiten teilnimmt bzw. teilnehmen kann.
Das 4-Augen-Prinzip wird oft gefordert und noch öfter nicht eingehalten .... aber einen Mechanismus sollte man schon anbieten, finde ich.

Also zurück zu meiner Frage. Wie schaffe ich es, dass als "normaler" Benutzer nur

Code: Alles auswählen

chmod 777 `tty`
screen 
sudo -u <benutzer> screen -x 
möglich wird. Kann ich evtl. statt /bin/bash bzw. /bin/rbash auch nur ein Script erlauben?

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 24.02.2006 19:13:26

Nur mal am Rande, screen kennt von sich aus die Moeglichkeit, dass ein anderer User sich auf ne fremde Screen connected und sich ansieht, was abgeht. Das wuerde doch fuer 4-Augen-Prinzip genuegen. Das mit den Passwoertern halt ich etwas ueberzogen und sehr unpraktikabel...

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: Restricted-Shell, .bash_profile, .bashrc und scp

Beitrag von roli » 24.02.2006 19:49:12

Hi,
nil hat geschrieben:1.) wie schaffe ich es, dass nur /etc/profile angezogen wird und nicht .bash_profile und .bashrc ?
dafuer haette ich vielleicht einen.
Wenn es sich "nur um normale" User handelt, geh als root hin, loesche die Dateien, touch'e sie als root, und gib dem User nur Leserechte.
Is aber nich getestet.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 27.02.2006 10:55:15

Hi,
ich habe nun eine Lösung gefunden, auch wenn ich sie wohl so nicht einsetze:

Definition einer Shell, die über /etc/passwd angezogen wird:

Code: Alles auswählen

#!/bin/sh

echo Screen-Sitzungen
echo Screen-Sitzung starten: Enter drücken 
echo an Screen-Sitzung teilnehmen: Benutzername des Admins und dann Enter drücken 
read benutzer 

if [ "$benutzer" != "" ]
  then screen -x $benutzer/ 
    else screen su - 
    fi
und in ~/.screenrc

Code: Alles auswählen

defmonitor on
startup_message   off
hardstatus alwayslastline "\033[49m %w"
multiuser on
acladd benutzer1
acladd benutzer2
acladd benutzer3
screen -t root 0 su - 

Antworten