Mailinglisten-Archive |
Hallo Christoph, > Wenn ich exec('su '.$username) ausführe, kommt ja die passwortfrage. > Habe alles probiert > > - Anhängen per exec('su '.$username .';' .$password); > - Zeilenumbruch exec('su '.$username ."\n" .$password); > - sequenziell > exec('su '.$username'); > exec($password); > > mit whoami bekome ich aber immer nur wwwdata zurück (den Webserver-User) > > Gruppenrechte müsste man per SSH stellen, teilweise gibts diese > Möglichkeit aber für die Admins nicht (sag nix, wir raten grundsätzlich > von solchen Accounts ab...). Soweit ich weiss macht su eine neue Shell auf, an die du aber nicht rankommst. Du kannst höchstends mal versuchen gleich den entsprechenden Befehl (bzw. Skript) mitzugeben. Z.B.: /etc$ cat shadow cat: shadow: Keine Berechtigung /etc$ su -c "cat shadow" Password: root:... /etc$ _ Ich weiß allerdings nicht, ob du die interaktive Passworteingabe über das exec() hinbekommst. Eine Möglichkeit wäre vielleicht noch zu versuchen das ganze als Socket zu machen und das STDIN auf deinen Eingabestrom zu hängen. Ich weiß allerdings nicht, ob und wie das geht bzw. ob das aus Sicherheitsgründen überhaupt zulässig ist... Eine weitere Möglichkeit wäre noch das Login per Zertifikat - da entfällt dann die Passworteingabe. Die beiden Ansätze sind allerdings eher speziell und werden daher nicht auf jedem x-beliebigen System funktionieren. Ich denke mal, dass eine Lösung per sudo übersichtlicher, verbreiteter, verständlicher und wartbarer ist. Jetzt musst du dir nur noch die Möglichkeit versorgen sudo zu konfigurieren :-D Was spricht eigentlich dagegen, die Schreibrechte der zu updatenden Dateien entsprechend aufzubohren (ssh, sftp, ftp), sodass auch der wwwrun schreiben darf und die Updates dann ganz easy mit PHP drauf zu bügeln? Man kann das ganze auch temporär machen, indem man den wwwrun als Eigentümer der Dateien setzt und dann zur Laufzeit des Skrits erst die Rechte (zeitweise) etwas offenherziger setzt. (fileperms, clearstatcache) HTH, Niels
php::bar PHP Wiki - Listenarchive