Wie kann ich Sicherheitsrichtlinienprüfungen vorübergehend aussetzen / oder Root-Zugriff vorübergehend gewähren?

-1

Hinweis: Bitte zögern Sie nicht, die Frage zu bearbeiten - es fällt mir schwer, sie auszudrücken!

Frage:

Wie kann man sich als normaler Benutzer ausgeben und gleichzeitig die Administrator- / Root-Rechte behalten, um einen Befehl für diesen Zielbenutzer auszuführen?

Ein Mechanismus, um:

  1. Ermöglicht dem vollständigen Root- / Administrator-Zugriff die Ausführung von Befehlen.
  2. Ermöglicht die Angabe einiger "Zielgruppen";
  3. Ermöglicht die Angabe eines bestimmten "Zielbenutzers".
  4. Und stellt sicher, dass alle Befehle, Skripte usw. im Namen dieses Benutzers / dieser Gruppe ausgeführt werden - wobei "Zielbenutzer" und "Zielgruppe" als Eigentümer festgelegt werden ...

Diese Beispiele zeigen, wie pkexecund / oder sudomüssen für jeden einzelnen Befehl angegeben werden - das ist, was ich zu vermeiden versuche, zu tun:

pkexec:

FAIL: Der Administrator muss ein Präfix mit sudound setzen pkexec.

  1. sudo pkexec -u TestUser mkdir /home/TestUser/NewFolder

    • Erfolg: Erstellt einen Ordner und weist die richtigen Berechtigungen zu
  2. sudo pkexec -u btsync mkdir /opt/btsync

    • FEHLER: Funktioniert nicht für Dienstkonten ohne Basisordner:Error changing to home directory /home/btsync: No such file or directory

sudo:

FAIL: Erfordert, dass der Administrator das Präfix "" verwendet sudo.

1 sudo pkexec -u btsync mkdir /opt/btsync

  • FEHLER: Ordner wird erstellt, aber der Stammbesitzer wird zugewiesen.
  • FEHLER: Erfordert später das Korrigieren von Berechtigungen, wobei die Anzahl der manchmal um x3 eingegebenen Befehle erhöht wird.

Gewünschte Funktionalität am Beispiel von BTSync:

  • root@localhost > enterElevatedShell -u btsync
  • btsync@localhost > nano /etc/asound.conf
  • viele Befehle manuell eingegeben.
  • btsync@localhost > exit
  • root@localhost >

oder:

  • root@localhost > stopauthorizationModules
  • root@localhost > sudo -i btsync
  • btsync@localhost > nano /etc/asound.conf
  • viele Befehle manuell eingegeben.
  • btsync@localhost > exit
  • root@localhost >

oder:

  • root@localhost > sudo --setUmask=0222 --setTargetUser=btsync
  • root@localhost > sudo -E mkdir /opt/btsync

Häufige Szenarien:

Hinweis: Dies erfolgt im Rahmen der manuellen Systemadministration.

Mit Root-Zugriff:

  1. Erstellen Sie / home / [Benutzername] / Unterordner | w / [Benutzername] als Eigentümer
  2. Create / opt / [serviceAccount] Service | w / [serviceAccount] als Eigentümer
  3. Erstellen / Ändern / etc / service / [someconfig] | w / [serviceAccount] als Eigentümer

Im Allgemeinen führe ich viele, viele Befehle aus, und es ist mühsam, nicht konsistent und eine Sicherheitsanfälligkeit, die durch Administratorvergesslichkeit oder Typ-OS entsteht, zurück zu kehren.

hd kohen
quelle
Welchen Service Account haben Sie im Sinn? Einige von ihnen benötigen bestimmte Selinux-Kontexte für ihre Dateien, daher wird der Fehler "Berechtigung verweigert" angezeigt. under root sudo -u user mkdir foldersollte für normale Benutzer funktionieren.
Azad
@ Azad Danke Azad. Zum Beispiel möchte ich ein btsync-Dienstkonto erstellen und dann manuell eine Reihe von Ordnern und Konfigurationsdateien erstellen, die ausführbare Datei verschieben usw. - und dabei die entsprechenden Berechtigungen zuweisen, ohne explizit zurückzugehen und dies zu tun.
hd kohen

Antworten:

0

So erstellen Sie ein Verzeichnis und legen den Eigentümer sofort fest:

sudo install -d -o owner -g group -m 755 /path/to/dir

Sie müssen hierfür install verwenden, wenn das übergeordnete Verzeichnis nicht wie für "owner" beschrieben werden kann /home.

Zum Erstellen von Dateien verwenden Sie einfach sudo

sudo -u owner touch /path/to/file

Oder vi oder was auch immer.

Wenn Sie eine Datei haben, die Sie kopieren und den Eigentümer festlegen möchten, können Sie install erneut verwenden. Es funktioniert wie CP mit zusätzlichen Optionen

sudo install -o owner -g group -m 640 file /path/to/file

Wenn Sie eine große Anzahl von Dateien, Benutzern und Verzeichnissen usw. erstellen müssen und sich Gedanken über die Konsistenz machen, sollten Sie sich auch ein Konfigurationsmanagementsystem wie Puppet, Chef, Ansible oder ähnliches ansehen. Das Einrichten ist etwas aufwändiger, hat aber den Vorteil, dass es wiederverwendet werden kann.

Bram
quelle
Bram, danke. Dies funktioniert, aber selbst wenn dies der Fall wäre - es wäre unglaublich mühsam, dies zu verwenden, um manuell viele Ordner zu erstellen, Dateien zu kopieren usw. für allgemeine Konfigurationsaufgaben. sudo -u btsync mkdir btsyncErgebnisse in „nicht erstellen Verzeichnis‚btsync‘: Erlaubnis verweigert.
hd kohen
Ich habe meine Antwort aktualisiert, um dies zu beheben. Mkdir erfordert Schreibzugriff auf das übergeordnete Verzeichnis.
Bram
- Bram. Danke noch einmal. sudo pkexec -u TestUser mkdir /home/TestUser/NewFoldererfordert keinen Schreibzugriff auf den übergeordneten Ordner. - Damit ist das Problem immer noch nicht gelöst, und Sie müssen nicht mehr für jeden Befehl "sudo" oder "pkexec" eingeben.
hd kohen