Wie kann ich einen Benutzer mit Lesezugriff auf alle Dateien erstellen? (dh root ohne Schreibrechte)

26232
Mononofu

Um mein Server zu sichern, möchte ich aus der Ferne via SSH darauf zugreifen. Um alle Risiken zu minimieren, möchten Sie einen Benutzer verwenden, der nur lesenden Zugriff hat, aber auf alle Dateien, genau wie root. Er sollte jedoch keine Schreibrechte besitzen.

Irgendwelche Ideen, wie man das erreichen kann?

9
Verwandte: [Dateisystemberechtigungen: Benutzer, der alle Dateien sichern kann] (http://unix.stackexchange.com/q/267908/80216). G-Man vor 8 Jahren 0

3 Antworten auf die Frage

7
Darren Hall

Ich würde vielleicht eine andere Methode vorschlagen, um Ihr Problem zu lösen, die weniger wartungsintensiv ist.

Sie können SSH-Schlüssel erstellen, die nur eingeschränkten Zugriff auf bestimmte Programme haben. Ich mag es nicht, root uneingeschränkten Zugriff zu gewähren, aber manchmal müssen bestimmte Befehle per Remote ausgeführt werden. Mit den ssh-Schlüsseln können Sie Ihr Sicherungsprogramm über den Befehl ssh ausführen lassen.

Schauen Sie sich den Abschnitt "AUTHORIZED_KEYS FILE FORMAT" auf Ihrer sshd-Manpage an (ich nehme an, Sie verwenden OpenSSH).

http://man.openbsd.org/OpenBSD-current/man8/sshd.8

Ich mag die Idee. Für das einfache * Ziehen * der Dateien über `rsync` sollten alle` no- * `-Optionen, wie sie im * man * angegeben sind, sicher sein. Insbesondere * no-pty * in Kombination mit * from * ist ein guter Start, um die Sicherheit zu erhöhen. Beispiel: `from =" the_pulling_hostname_or_IP ", no-pty, ...` user569825 vor 12 Jahren 1
1
Kim

Sie können dies mit ACLs erreichen. Sie benötigen immer noch ein Skript, das als Root ausgeführt wird und die Berechtigungen für jede Datei ändert. Lesen Sie die Manpages zu ACL, setfacl und getfacl, wenn Sie interessiert sind.

1
t0mm13b

Es gibt eine andere Möglichkeit, dies ohne ACLs zu erstellen. Aber hier muss man vorsichtig sein. Erstellen Sie zunächst eine Gruppe, die zum Beispiel roroot (readonly root) heißt. Wenden Sie dann diese Gruppen-ID auf alle Verzeichnisse an. Legen Sie die Berechtigungen für die Gruppenbits auf r-- oder 400 Oktal fest. Dann können Sie ein Benutzerkonto wie einen normalen Benutzer erstellen, z Wenn Sie nur Mitglied einer Gruppe sind, machen Sie es nicht zu Rad, Lagerplatz usw., je nachdem, was Ihre Gruppen in Ihrer Installation sind. Das nächste bisschen wird kludgy sein. Öffnen Sie die Datei / etc / passwd mit vim / nano / emacs / joe / dem Editor, der Ihr Boot bewegt, und suchen Sie nach der ID, die Sie gerade erstellt haben. rorootusr, die passwd-Datei wird so aussehen

root: x: 0: 0 :: / root: / bin / sh 

Beim Lesen von links nach rechts, getrennt durch Doppelpunkte, stehen Benutzername, Kennwort (verschlüsselt + gespiegelt), Benutzer-ID, Gruppen-ID, Kommentar, Ausgangsverzeichnis und Shell zur Verfügung. Aus dem obigen Beispiel

rorootusr: x: 512: 450: Root-Benutzer-RO: / home / rorootusr: / bin / bash 

Es ist das dritte Feld (512), in dem Sie es in 0 ändern. 450 wäre die Gruppen-ID für roroot. Speichern Sie die Editiersitzung und Sie sind fertig. Jetzt hat rorootusr root-Zugriff, ist aber nur Mitglied der Gruppe roroot und hat schreibgeschützten Zugriff auf das System.

Ich hoffe, das hilft, Viele Grüße, Tom.