Ich möchte einen laufenden Prozess sudo Berechtigungen geben. Wie wenn ich Eclipse normal geöffnet habe. Nun, wenn ich meinen Server auf Eclipse starte, benötigt er die sudo-Berechtigung, aber dafür muss ich die Eclipse schließen und dann mit sudo eclipse öffnen, um die sudo-Berechtigung zu erhalten. Ich habe versucht, die setuid und setgid von/usr/bin/eclipse, aber das hat nicht funktioniert. Ich weiß nicht, warum es nicht funktioniert hat.wie laufender Prozess sudo Berechtigungen geben
Antwort
Setuid/setgid funktionierte nicht, da diese Dateimaskenbits vom Kernel verwendet werden, wenn der Prozess erstellt wird, um ihm die erhöhten Privilegien zu geben.
Ich glaube nicht, dass es möglich ist, ohne dem Kernel wesentliche Funktionen hinzuzufügen.
Ich denke, Sie meinen "Root-Berechtigungen". Es ist keine gute Idee, den SUID-Root auf der riesigen Masse des Codes namens "Eclipse" zu setzen.
Was Sie brauchen, ist ein SUID-Wrapper, der eine Binärdatei sein muss. Hm, das ist Sudo. Aber sudo fragt nach deinem Passwort. Sie müssen es mit der -A-Option ausführen und die SUDO_ASKPASS-Umgebungsvariable auf etwas wie/usr/bin/x11-ssh-askpass setzen. Dann erhalten Sie ein GUI-Popup, das nach Ihrem Passwort fragt, und dann wird das erzeugte Programm mit erhöhten Rechten ausgeführt.
Das ist anders als die Berechtigungen für einen bereits laufenden Prozess zu ändern, was Ihr Fragentitel impliziert. Das kannst du nicht, AFAIK.