PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : /etc/sudoers = keine echten root-Rechte?



opa-rudi
19.02.19, 21:37
Hallo Forum,

ich habe einen Systembenutzer (BACKUPUSER) in die /etc/sudoers eingetragen, um diesem Benutzer root-Rechte zu übertragen.


BACKUPUSER ALL=(root) NOPASSWD: /usr/bin/rsync

Nun habe ich jedoch das Problem, dass ich mit diesem BACKUPUSER nicht auf ein Verzeichnis/Datei (ANDERER_BENUTZER, ANDERE_GRUPPE, 770) lesen/schreiben kann. Dies geht ausschließlich mit dem normalen root-Benutzer. Wie schaffe ich es nun, damit ich mit BACKUPUSER auch dieses Verzeichnis lesen kann?

Hintergrund ist, dass ich auf einem Backupserver mittels SSH (normale Systembenutzer beiderseits) auch die Dateien einlesen kann, welche auf dem zu sichernden System nicht lesbar für world sind und andere Eigentümer und Gruppen als BENUTZER haben.

nopes
19.02.19, 22:43
https://linux.die.net/man/1/rsync


...
--rsync-path=PROGRAM
Use this to specify what program is to be run on the remote machine to start-up rsync. Often used when rsync is not in the default remote-shell's path (e.g. --rsync-path=/usr/local/bin/rsync). Note that PROGRAM is run with the help of a shell, so it can be any program, script, or command sequence you'd care to run, so long as it does not corrupt the standard-in & standard-out that rsync is using to communicate.
One tricky example is to set a different default directory on the remote
machine for use with the --relative option. For instance:
CW rsync -avR --rsync-path="cd /a/b && rsync" host:c/d /e/


Ein weiterer Trick, sudo davor schreiben, falls das nicht reicht, zeige mal deinen rsync Befehl.

opa-rudi
20.02.19, 21:16
Also es funktioniert jetzt. Jedoch bleibt das Problem, dass die Eigentümerinfos nicht erhalten bleiben, sondern mit dem Benutzer, welcher rsnapshot/rsync ausführt, überschrieben werden.

Ich nutze den rsync-Befehl, ausgeführt von BACKUPUSER auf dem Backuprechner:


rsync -a -e "ssh" --rsync-path="sudo rsync" --numeric-ids BACKUPUSER@DOMAIN:/var/www/ backup/

Anschließend haben alle Dateien auf dem Backuprechner den Eigentümer BACKUPUSER und nicht die ursprünglichen Besitzer-Id´s.

nihili
20.02.19, 23:02
Also es funktioniert jetzt. Jedoch bleibt das Problem, dass die Eigentümerinfos nicht erhalten bleiben, sondern mit dem Benutzer, welcher rsnapshot/rsync ausführt, überschrieben werden.

-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
# weiter sehe ich:
-o, --owner preserve owner (super-user only)ich nehme also an dass dein BACKUPUSER keine wirklichen über-user-rechte hat.
Ich weiss nicht genau was da schief gegangen ist; ich hätte es nie so gemacht sondern ganz normal mit sudo, ohne speziell einen neuen benutzer zu kreieren.

Wie hast du den BACKUPUSER denn kreiert, und warum, und wie gibst du im supersuer rechte?
was du in sudoers einträgst kann keine bedeutung haben wenn du nicht sudo benutzt.

nopes
20.02.19, 23:28
Man macht das, weil viele Rechner ein direktes anmelden als Root über ssh nicht erlauben. Aber es stimmt muss als Root laufen. In Beispielen wird das oft durch # und $ markiert, # = führe das danach als Root aus, $ =führe das danach als einfacher User aus. Also:


$ sudo -s
# rsync -a -e "ssh" --rsync-path="sudo rsync" --numeric-ids BACKUPUSER@DOMAIN:/var/www/ backup/

opa-rudi
21.02.19, 09:52
Mit root als ausführendem Benutzer klappt es jetzt. Zwar ist nun ein root-login per ssh möglich, aber per rsa-key-login sollte es hoffentlich keine Sicherheitsprobleme geben. Danke nochmals.

nopes
21.02.19, 15:38
Eigentlich sollte es ohne root ssh login gehen, dafür ja der Umweg über sudo.