Ich versuche, mithilfe von Links, Bash-Skripten und SUID eingeschränkten Zugriff auf bestimmte Funktionen zu ermöglichen. SUID-Skripte laufen nicht mit Root-Zugriff

Ich versuche, mithilfe von Links, Bash-Skripten und SUID eingeschränkten Zugriff auf bestimmte Funktionen zu ermöglichen. SUID-Skripte laufen nicht mit Root-Zugriff

EDIT: diesSticky Bit aktiviert Skript kann nicht in eine Stammdatei schreibenscheint ein ähnliches Problem zu sein

BEARBEITEN:Wie kann ich SetUID in einem Shell-Skript verwenden, um es als Nicht-Root-Benutzer auszuführen?ist auch sehr ähnlich.

Ich habe ein Skript, nennen wir es read.sh. Ich habe eine Datei, nennen wir sie geheim.

# cd /home/normie
# echo "some stuff" > secret
# echo "#!/bin/bash" > read.sh
# echo "cat secret" >> read.sh
# chmod 600 secret
# chmod 4755 read.sh
# su normie
$ ./read.sh
<<Error about not having access to secret>>

Habe ich etwas übersehen? Ich dachte, das SUID-Bit würde das Skript als Eigentümer ausführen? Wenn ich das Folgende ausführe

# echo "touch newfile" > sumfile.sh
# chmod 4755 sumfile.sh
# su normie
$ ./sumfile.sh
$ ls -alh
<<newfile shows as owned by root>>

Was ist hier los und wie kann ich es so machen, wie ich es will? Ich will, dass normale Benutzer ein bestimmtes Skript mit vollem Root-Zugriff ausführen. (Ich dachte, das wäre es, was das Suid-Bit macht.)

Antwort1

Installieren Sie sudoapt install sudo

Machen Sie die relevanten Benutzer zu einem Teil einer Gruppegroupadd group && usermod -g group user

Fügen Sie Folgendes zu /etc/sudoers hinzu%group (ALL)=(root:root) NOPASSWD:/path/to/script.sh

Fügen Sie .bashrc einen Alias ​​hinzualias ALIAS='sudo /path/to/script.sh'" >> ~user/.bashrc

Alle Mitglieder der Gruppe können das betreffende Skript jetzt als Root ausführen.

Antwort schamlos geklaut vonWie kann ich SetUID in einem Shell-Skript verwenden, um es als Nicht-Root-Benutzer auszuführen?(Benutzer9517)

verwandte Informationen