Sofern nicht ungewöhnlich konfiguriert, möchte sudo
Authentifizierung, wenn ausgeführt. Es ist normalerweise dazu gedacht, interaktiv ausgeführt zu werden.
Unter der Annahme, dass das Skript /glassfish3/bin/asadmin von root gehört, Sie die Dateiberechtigungen für 6755. festlegen Dies tut, was Sie wahrscheinlich sudo
bedeutete zu tun. Natürlich kann es auch gefährlich sein und ein Sicherheitsrisiko darstellen.
(@jcomeau_ictx stimmt übrigens sollten Sie Protokolle überprüfen, da schlägt er vor..)
-Update zugunsten von Archivalien: Die obige Antwort Glücklicherweise ist die OP unmittelbare Problem gelöst zu haben scheint, so wir Ich werde es dabei belassen. Da diese Antwort jedoch archiviert bleibt und andere später nachsehen, sollte ich mehr hinzufügen.
Ein kann ändern Sie die Dateiberechtigungen von jeder ausführbaren Datei 6757, aber das ist nicht immer eine gute Praxis. Die Wirkung solcher Berechtigungen besteht darin, (a) jedem die ausführbare Datei mit (b) den vollen Rechten des Eigentümers der ausführbaren Datei ausführen zu lassen. Manchmal ist dies genau das, was Sie wollen, aber sehen Sie: Im OP-Fall kann /glassfish3/bin/asadmin
mit solchen Berechtigungen jetzt von jedem mit beliebigen Argumenten mit vollen Root-Rechten aufgerufen werden. Wenn das nicht das ist, was Sie wollen, müssen Sie etwas mehr Sorgfalt walten lassen.
Es gibt mehrere Möglichkeiten zur zusätzlichen Pflege. Eins ist wie folgt.
- Lassen Sie die ausführbare Datei mit 755.
- Schreibberechtigungen und einen kleinen Wrapper kompilieren, ein Programm, das
execv()
von unistd.h verwendet die ausführbare Datei zu starten.
- Wenn möglich, lassen Sie den Wrapper keine Argumente annehmen; andernfalls sollten ihre Argumente so beschränkt und unflexibel sein, wie sie sein können. Lassen Sie den Wrapper streng die Argumente steuern, die an die ausführbare Datei übergeben werden.
- Lassen Sie den Wrapper im Besitz von root,, aber verwenden Sie
chown
, um es eine geeignete Gruppe zuweisen, deren Mitgliedschaft keine Benutzer enthält.Möglicherweise möchten Sie eine neue Gruppe zu diesem Zweck starten, aber wenn Sie die Datei /etc/group
auf Ihrem System scannen, ist es unwahrscheinlich, dass Sie eine bereits existierende Gruppe finden, die zu Ihnen passt. Zu Referenzzwecken können Sie Befehle, die bereits zu Spezialgruppen auf Ihrem System gehören, durch ls -l /bin /usr/bin | grep -vE '^([^[:space:]]+[[:space:]]+){2}(root[[:space:]]+){2}'
oder Ähnliches auflisten.
- Geben Sie der Wrapper-Datei die Berechtigungen 6754, so dass sie mit Ausnahme der betreffenden Gruppe nicht ausführbar ist. die aufrufende Skript-Dateiberechtigungen 2755.
Gib das aufrufende Skript zu der Gruppe, und geben Wenn die anrufende Skript zu einer Gruppe gehört bereits, können Sie wahrscheinlich verwenden Sie einfach die gleiche Gruppe im gesamten Gebäude. Es sind verschiedene Varianten der Technik möglich, und es ist unwahrscheinlich, dass Sie genau die oben angegebene verwenden, aber wenn Sie die Manpage und/oder den Infoeintrag auf dem Befehl chown
lesen und die Details der Dateiberechtigungen erfahren Wenn Sie etwas experimentieren, sollten Sie in der Lage sein, eine Lösung zu entwickeln, die für Sie funktioniert, ohne ein Sicherheitsrisiko darzustellen.
haben Sie überprüfen Ihre Protokolle in Benutzers festgelegt werden? nichts Interessantes? –
(Wenn Sie Debian oder Ubuntu verwenden, ist es am besten, dass Sie den Befehl 'update-rc.d' verwenden, um Skripte in */etc/init.d * zu installieren, anstatt es manuell zu tun.) – thb
@jcomeau_ictx Wo würden die Informationen gespeichert? –