init.d script als bestimmten user

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
hexley
Beiträge: 38
Registriert: 27.04.2004 23:56:41

init.d script als bestimmten user

Beitrag von hexley » 05.12.2004 21:32:28

Hi Leute

Meine frage ist ganz kurz und knapp:

gibt es eine Möglichkeit, ein init.d script auszuführen, dass ein Programm als einen bestimmten User startet, also in prinzip sowas wie, was aber kein Passwort abfrägt

Code: Alles auswählen

su hexley
meinskript
exit
(mein Skript generiert über xmltv das Tagesprogramm als pdf Datei, und ich will das nicht als root machen)

Gruß

Hexley

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 05.12.2004 22:11:49

Mit su sollte das eigntlich gehen da die init Scripte ja alle als root ausgefueht werden.
Fuer daemons wird normalerweise start-stop-daemon genommen, da kann man den user als Option angeben.

by, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 05.12.2004 22:13:22

dazu kannst du

Code: Alles auswählen

su - <user> -c "<kommando>"
verwenden.

Da diese scripts als root laufen, wird auch beim userwechsel kein passwort abgefragt

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Re: init.d script als bestimmten user

Beitrag von eagle » 05.12.2004 22:45:41

hexley hat geschrieben:(mein Skript generiert über xmltv das Tagesprogramm als pdf Datei, und ich will das nicht als root machen)
Das ist doch eher etwas für ein crontab Skript :roll:.

eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Benutzeravatar
hexley
Beiträge: 38
Registriert: 27.04.2004 23:56:41

Beitrag von hexley » 06.12.2004 01:35:10

Okay, habs so gemacht, wie gms gesagt hat. thx.

noch eine generelle Frage, wenn ich

Code: Alles auswählen

 update-rc.d meinskript defaults
ausführe, werden die skripte auch beim Shutdown ausgeführt.
Was muss ich machen, wenn das Skript nur beim Hochfahren ausgeführt werden soll?

Danke für den Tipp mit crontab, werde mich allerdings frühestens nächstes Wochendende da reinarbeiten können.

Gruß

Hexley[/code]

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 06.12.2004 10:03:54

Ein "standard" init-Script verwendet folgendes Grundgerüst:

Code: Alles auswählen

case "$1" in
    start)
        echo "Starting $0"
        ;;
    stop)
        echo "Stopping $0"
        ;;
    reload)
        echo "Reload $0"
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|reload|restart}"
        exit 1
        ;;
esac

D.h. wenn du hier nur die Funktion "start" implementierst, brauchst du dich nicht weiter zu kümmern, ob dieses Script auch beim Shutdown aufgerufen wird.

Du kannst mit update-rc.d aber auch nur "start"-Links anlegen oder dein Script von /etc/inittab aus aufrufen

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.12.2004 17:39:14

Ein "standard" init-Script verwendet folgendes Grundgerüst:
Alternativ liegt in /etc/init.d/skeleton ein fertiges Grundgerüst herum...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten