Restricted-Shell, .bash_profile, .bashrc und scp
Restricted-Shell, .bash_profile, .bashrc und scp
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
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
Ich verstehe noch nicht ganz was du da versuchst zu machen.
Du kannst jederzeit dem scp Befehl die Ausführungsberechtigung für "other" entziehen.
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.
Du kannst jederzeit dem scp Befehl die Ausführungsberechtigung für "other" entziehen.
Code: Alles auswählen
chmod o-rwx /usr/local/bin/scp
Ach ja, und nix schrotten.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.
Ich verstehe auch nicht ganz, was du willst.
SCP kann man übrigens hervorragend durchersetzen.
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 -"
Hi,
ich werde eben beschreiben, was ich machen möchte.
Ich wollte gerne NUR die Befehle:
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:
- zweiter Admin:
(entsprechende Berechtigungen in /etc/sudoers)
ich werde eben beschreiben, was ich machen möchte.
Ich wollte gerne NUR die Befehle:
Code: Alles auswählen
tty
chmod
sudo
screen
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 -
Code: Alles auswählen
chmod 777 `tty`
sudo -u <anderer-benutzer> screen -x
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!
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!
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
möglich wird. Kann ich evtl. statt /bin/bash bzw. /bin/rbash auch nur ein Script erlauben?
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
Re: Restricted-Shell, .bash_profile, .bashrc und scp
Hi,
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.
dafuer haette ich vielleicht einen.nil hat geschrieben:1.) wie schaffe ich es, dass nur /etc/profile angezogen wird und nicht .bash_profile und .bashrc ?
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"
"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"
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:
und in ~/.screenrc
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
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 -