Hinzufügen erhöhter Berechtigungen zu Skripten in einem Verzeichnis

Hinzufügen erhöhter Berechtigungen zu Skripten in einem Verzeichnis

Ich habe ein Verzeichnis mit einigen Skripten, die ich über eine Webanforderung aufrufen muss. Die Skripte benötigen erhöhte Berechtigungen, um ausgeführt zu werden.

Derzeit denke ich daran, die folgenden Zeilen hinzuzufügen /etc/sudoers:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts
www-data ALL=(ALL) NOPASSWD: WEB_COMMANDS

Ist dies der richtige Ansatz für dieses Problem? Oder verursache ich dadurch eine potenzielle Sicherheitslücke?

Ich verwende CentOS 7, falls das einen Unterschied macht.

Antwort1

Alles ist ein potenzielles Sicherheitsrisiko. Zwei Dinge:

Sind SieSicheres braucht Root? Warum? Kann man das stattdessen mit Fähigkeiten machen? (Das kann man wahrscheinlich.)

Allerdings trifft Ihr Beispiel fast genau zu. Fügen Sie nach dem Pfad ein Sternchen hinzu:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts/*

Und jetzt funktioniert es. Aber Vorsicht, wenn eines dieser Skripte von einem Angreifer geändert werden kann, erhält der AngreiferVOLLSTÄNDIGER ROOT-ZUGRIFF. Sie können einfach exec('/bin/bash')eine Shell haben. Gehen Sie auf jeden Fall den Weg der Fähigkeiten per Skript, wenn möglich, und sperren Sie das Skriptverzeichnis auf jeden Fall in jedem Fall. Siehediese unix.se-Antwortfür Informationen zum Verwalten von Funktionen mit Skripts.

verwandte Informationen