ubuntuusers.de

Skript als anderer User ausführen

Status: Ungelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

Goodness

Avatar von Goodness

Anmeldungsdatum:
1. Juli 2006

Beiträge: Zähle...

Wohnort: Fränkische Schweiz

Hallo,

ich habe seit längerem ein Problem bei dem ich immer noch nicht weiter gekommen bin.

Ich rufe per PHP und User "www-data" ein Skript auf welches expliziet nur von dessen Eigentümer "user1" genutzt werden darf weil nur dieser dafür die Rechte besitzt und haben darf.

Ich habe also in PHP den Aufruf mit Pfad zu diesem Skript hinterlegt, nur wie stelle ich das an damit dies auch ausgeführt wird als "user1"?

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Der befehl "sudo" ist verwantwortlich das Benutzer manche Befehle unter anderen Namen ausführen kann und das auch ohne Passwort etc.

http://www.sudo.ws/sudo/man/sudo.html
http://www.sudo.ws/sudo/man/sudoers.html

Gombi

Avatar von Gombi

Anmeldungsdatum:
29. Mai 2007

Beiträge: 448

Wohnort: /dev/mem

Etwa so:

 sudo -u user1 -c skript

Das SUID-Bit scheidet aus da es bei Skripten nicht funktioniert.

Goodness

(Themenstarter)
Avatar von Goodness

Anmeldungsdatum:
1. Juli 2006

Beiträge: 184

Wohnort: Fränkische Schweiz

In der Richtung "sudo" bin ich schon unterwegs 😉

Wie müßte bei meinem Fall ein Eintrag nach Eurer Meinung in der /etc/sudoers aussehen?

Ich habe hier schon verschiedene Optionen probiert wo nicht funktioniert haben wegen den Rechten.

Also das "www-data" ein Skript als "user1" ausführt, das Skript liegt im HOME Verzeichnis von "user1".

Goodness

(Themenstarter)
Avatar von Goodness

Anmeldungsdatum:
1. Juli 2006

Beiträge: 184

Wohnort: Fränkische Schweiz

Wenn ich das per Root-Konsole teste kommt

sudo -u user1 -c /home/user1/.skript.sh      

kommt

usage: sudo [-n] -h | -K | -k | -L | -V | -v
usage: sudo -l[l] [-AnS] [-g groupname|#gid] [-U username] [-u username|#uid] [-g
            groupname|#gid] [command]
usage: sudo [-AbEHnPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] [-g
            groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AnS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] file ...

Der Indianer hat folgendes im Error.log

sudo: no tty present and no askpass program specified

Gombi

Avatar von Gombi

Anmeldungsdatum:
29. Mai 2007

Beiträge: 448

Wohnort: /dev/mem

Mein Befehl mit sudo funktioniert doch so nicht. Siehe man pages sudo.

   -c   Class, run the specified command with resources limited by
        the specified login class. The class argument can be either a
        class name as defined in /etc/login.conf, or a single '-' character.
        Specifying a class of -indicates that the command should be run
        restricted by the default login capabilities for the user the
        command is run as. If the class argument specifies an existing user
        class, the command must be run as root, or the sudo command must be
        run from a shell that is already root.
        This option is only available on systems with BSD login classes
        where sudo has been configured with the --with-logincap option.

Also bei mir klappt zB:

# su -c vlc foo

So wird vlc als user foo ausgefuehrt.

Versuchs mal so.

LG

Goodness

(Themenstarter)
Avatar von Goodness

Anmeldungsdatum:
1. Juli 2006

Beiträge: 184

Wohnort: Fränkische Schweiz

Wenn ich den Befehl als www-data über die Website anstoße kommt:

su: must be run from a terminal

Der PHP Aufruf

echo(shell_exec("su -c /home/user1/.skript.sh user1 | cat")); 

Goodness

(Themenstarter)
Avatar von Goodness

Anmeldungsdatum:
1. Juli 2006

Beiträge: 184

Wohnort: Fränkische Schweiz

Es scheint mir so dass das Problem nicht zu lösen ist wie es aussieht ☹

Von Eurer Seite kam noch nicht DER TIPP und ich habe auch schon vieles versucht.

Team-Lab22.de

Avatar von Team-Lab22.de

Anmeldungsdatum:
9. Mai 2007

Beiträge: 620

Wohnort: Gurlach

Also ich verstehe richtig das dein webserver als www-data läuft, du aber möchtest das deine php skirpte z.B. als user1 ausgeführt werden?

dann brauchst du "suphp" ☺

http://www.suphp.org/

Antworten |