Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Programm unter anderem Benutzer ausführen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.02.2003, 13:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,
wie kann ich ein Programm mit einem anderen benutzer ausführen?

mit su kann ich ja in superuser status wechslen, nur wie macht man sowas umgekehrt?
ich möchte ein Programm beim Systemstart starten nur dort startet er die programme als root und das mag das programm nicht! wie starte ich ein programm mit einem anderen benutzer?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.02.2003, 14:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Hi,

hilft es dir vielleicht weiter, daß Programm mit S Bits auszuführen. Vorgehensweise: Das Programm wird mittels chown dem User geschenkt, unter dessen ID es ausgeführt werden soll und dann das S-Bit für User setzen; also:

Code:
chown benutzer programm
chmod u+s programm


Lass mal folgendes Programm unter root laufen; einmal vor der Behandung wie oben beschrieben; und einmal danach. Du wirst sehen, daß sich die effektive benutzerkennung ändert.

C++:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <grp.h>

int main()
{
        uid_t user_id;
        uid_t effective_user_id;
        gid_t group_id;
        gid_t effective_group_id;
        struct group* grent;
        struct passwd* pwent;

        /*
         * Get all my IDs
         */

        user_id = getuid();
        effective_user_id = geteuid();
        group_id = getgid();
        effective_group_id = getegid();

        /*
         * Print the stuff
         */

        pwent = getpwuid(user_id);
        printf("User ID           : %s (%d)\n", pwent? pwent->pw_name:"***UNKNOWN***", user_id);
        pwent = getpwuid(effective_user_id);
        printf("Effective User ID : %s (%d)\n", pwent? pwent->pw_name:"***UNKNOWN***", effective_user_id);
        grent = getgrgid(group_id);
        printf("Group ID          : %s (%d)\n", grent? grent->gr_name:"***UNKNOWN***", group_id);
        grent = getgrgid(effective_group_id);
        printf("Effective Group ID: %s (%d)\n", grent? grent->gr_name:"***UNKNOWN***", effective_group_id);
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 11.02.2003 um 14:40 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.02.2003, 19:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja habs mit dem befehl startproc gelöst, aber das mit dem s bit muss ich ausprobieren
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.02.2003, 12:32 Uhr
~Frank
Gast


Du könntest das Programm doch einfach als Root per Script starten, in dem steht:

su deinUserName
./deinprogramm

Frank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.02.2003, 12:47 Uhr
~0xdeadbeef
Gast


Ich denke, es geht darum, das Programm ohne root-Rechte zu starten, dann macht es kaum einen Sinn, das suid-bit zu setzen. Zu su: mit su kannst du nicht nur in den Superuser-Modus wechseln. Zum Beispiel

Code:
anonymous@host:/home/horst> su horst
password:
horst@host:~>


root wird nicht nach einem Passwort gefragt. Für genauere Info schau in die manpage. Ansonsten - für die init-scripts bist du mit startproc wohl recht gut bedient.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.02.2003, 15:22 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
~0xdeadbeef postete
Ich denke, es geht darum, das Programm ohne root-Rechte zu starten, dann macht es kaum einen Sinn, das suid-bit zu setzen.

Wieso: kommt doch einfach nur drauf an, wem Das Program gehört, wenn das S Bit gesetzt ist. Kann auch User beefie sein...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.02.2003, 07:20 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hat mit dem s-bit funktioniert! trotzdem danke!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: