system/passthru und sudo

Bash, Shell, PHP, Python, Perl, CGI
d3nation
Posts: 68
Joined: 2004-11-30 14:09

system/passthru und sudo

Post by d3nation » 2006-03-18 14:30

hi leute,

wie immer melde ich mich wenns ein problem gibt.
diesmal ist SUDO schuld daran.

problem: auf meinem server läuft suse mit apache. apache user ist 'http-www'. für ein administratives script ist es notwendig dass http-www user anlegen und deren passwort ändern kann, deshalb greife ich auf sudo zurück. der sudoers eintrag dazu schaut folgendermaßen aus:

Code: Select all

http-www ALL = NOPASSWD: /usr/sbin/useradd, /usr/bin/passwd [A-z]*, !/usr/bin/passwd root
dass ganze funktioniert auf der shell (mit als http-www connected) ziemlich gut. falls ich den befehl allerdings mit php ausführen will passiert nichts.
code:

Code: Select all

<?
        $command = 'sudo -u root /usr/sbin/useradd john-doe';
        $cmd = escapeshellcmd($command);
        system($cmd);
?>
sudo -u root /usr/sbin/useradd john-doe auf der shell funktioniert wie gesagt 1a.

okey problem 2: des script soll nach dem anlegen des users das passwort ändern. sprich sudo -u root /usr/bin/passwd john-doe. allerdings erwartet ja passwd eine (eigentlich 2..) eingabe/n. wie kann ich passwd dazu bringen mit nur einem befehl das passwort zu ändern?
eine möglichkeit währe "expect", damit hab ich früher mal gearbeitet, mit diesem tool kann man shellscripte schreiben die nach einer bestimmten ausgabe selbstständig weiterarbeiten.. allerdings bin ich trotzdem auf der suche nach alternativen.

hat jemand lösungen/vorschläge?

grüße und danke im vorraus

j.w.

eof__
Posts: 30
Joined: 2005-07-12 17:40

Re: system/passthru und sudo

Post by eof__ » 2006-04-05 14:58

d3nation wrote:hi leute,


okey problem 2: des script soll nach dem anlegen des users das passwort ändern. sprich sudo -u root /usr/bin/passwd john-doe. allerdings erwartet ja passwd eine (eigentlich 2..) eingabe/n. wie kann ich passwd dazu bringen mit nur einem befehl das passwort zu ändern?
eine möglichkeit währe "expect", damit hab ich früher mal gearbeitet, mit diesem tool kann man shellscripte schreiben die nach einer bestimmten ausgabe selbstständig weiterarbeiten.. allerdings bin ich trotzdem auf der suche nach alternativen.

hat jemand lösungen/vorschläge?

grüße und danke im vorraus

j.w.
Hi :wink: ,

Zu 2.)

Du kannst die Passwoerter doch mit perl aendern. Das setzt allerdings voraus, dass Du sie schon weisst. Dann aenderst Du
einfach den String in der shadow.

Evtl. moechtst du ja auch erstmal das Passwort fuer neue User
sperren, und sie eins generieren lassen, was spaeter eingesetzt
wird.

Grad gesehen: Bei OpenSSL generiert man etwa so ein MD5 Passwortstring fuer den user bar:
% sudo openssl passwd -1 -noverify -quiet bar
Password:
$1$WE1KMITa$qs.seOm9VLMQcybSNlPy6.
gruss
EOF