Perl system ruft beim ausführen als anderer Benutzer mit sudo

Entwickelt ich ein perl-Skript, das bietet eine menügesteuerte Funktionen, um Benutzern zu erlauben die Durchführung ein paar einfache Aufgaben.

Muss ich die Benutzer in der Lage sein, Aufgaben wie das kopieren von Dateien (halten Sie das aktuelle Datum und Berechtigungen), laufen andere Programme (z.B. weniger oder vi) als ein anderer Benutzer. Das Skript verwendet eine Menge von Nutzung der Funktion system (). Ich will, dass die Benutzer das Menü durch Aufruf von:

sudo -u perluser /usr/bin/perl /data/perlscripts/scripta.pl

Dies sollte starten Sie das script als perl-Benutzer, die es tut, und führen Sie dann verschiedene Aufgaben, je nachdem, was der Benutzer auswählt. Das problem ist, dass immer wenn ich mit einem system-call, wie

system("clear");

Bekomme ich die folgende Fehlermeldung

Can't exec "clear": Permission denied at /data/perlscripts/scripta.pl line 3

Wenn ich das Skript ausführen, indem Sie die Anmeldung als perluser dann alles läuft erfolgreich.

Gibt es eine Möglichkeit, damit dies funktioniert? I nicht möchten, dass Benutzer in der Lage sein, sich als perluser, wie ich brauche, um zu kontrollieren, was Sie in der Lage sind zu laufen. Ich will aber auch nicht, um einen Befehl auszuführen wie

system("sudo -u perluser clear");

da würde ich dann benötigen Sie ein anderes team zu setzen, bis alle sudo-Befehle, die ich ausführen wollte (die Sie wahrscheinlich weigern, das zu tun) und dies würde nicht skalierbar, wenn ich haben, fügen Sie zusätzliche Befehle an somepoint.

Dank,

  • müssen Sie hinzufügen, sudo-Befehle an das Skript selbst statt? IE system("sudo -u peluser /bin/to/clear")
  • Dies ist, was ich nicht tun wollen, dies zu tun, ich legte extra Ressourcenbedarf auf dem linux-admins setzen sich die verschiedenen sudo-Befehle, die erforderlich wäre, und Sie werden wahrscheinlich nicht wollen, dies zu tun und würde auch änderungen mehr zu implementieren, wie ich requirested diese Arbeit abgeschlossen sein und das jedes mal.
InformationsquelleAutor s_od_85 | 2012-03-16
Schreibe einen Kommentar