Programm unter anderem Benutzer ausführen [gelöst]
Programm unter anderem Benutzer ausführen [gelöst]
Hi
Ich hab schon im Forum gewühlt...und das habe ich gefunden:
http://www.debianforum.de/forum/viewtop ... m+benutzer
Allerdings funktioniert das nicht so wirklich wie ich mir das vorgestellt habe...
Mein Script sieht ungefähr so aus...
su username
/blah/aufrufen start
Nach dem aufrufen wird eine neue Bash geladen (was nicht wirklich schlimm ist...) aber wenn ich mit ps -A oder mit ls -l /proc die laufenden Prozesse anzeigen lasse, wird das Programm nicht unter "username" ausgeführt sondern unter nobody. Des Weiteren hat er keinen Prozessnamen sondern nur eine Nummer?
Ich hab schon im Forum gewühlt...und das habe ich gefunden:
http://www.debianforum.de/forum/viewtop ... m+benutzer
Allerdings funktioniert das nicht so wirklich wie ich mir das vorgestellt habe...
Mein Script sieht ungefähr so aus...
su username
/blah/aufrufen start
Nach dem aufrufen wird eine neue Bash geladen (was nicht wirklich schlimm ist...) aber wenn ich mit ps -A oder mit ls -l /proc die laufenden Prozesse anzeigen lasse, wird das Programm nicht unter "username" ausgeführt sondern unter nobody. Des Weiteren hat er keinen Prozessnamen sondern nur eine Nummer?
Zuletzt geändert von flaffy am 12.09.2004 12:12:19, insgesamt 1-mal geändert.
Hier könnte IHRE Werbung stehen !!!
Also bei mir funktioniert das Einwandfrei.
Allerdings muss man auch auf die Syntax des Scripts achten.
stehen in einer Zeile, wenn man es in 2 Zeilen aufteilt klappt es nicht.
Des weiteren müssen die Rechte passen. Es nutzt ja nix wenn man nicht mal das Recht hat das Skript auszuführen, dann kommt man nie an den Inhalt.
Und das da ne neue bash geöffnet wird ist nicht weiter tragisch so wie du schreibst sondern technisch gesehen richtig. Wenn man ein Programm aufruft wird kopiert sich die bash und in diesem kindprozess wird das Programm ausgeführt.
Deshalb schreibt man an den Anfang eines Skripts auch welche Shell gestartet werden soll, zB.
Allerdings muss man auch auf die Syntax des Scripts achten.
Code: Alles auswählen
su [username] [Programm]
Des weiteren müssen die Rechte passen. Es nutzt ja nix wenn man nicht mal das Recht hat das Skript auszuführen, dann kommt man nie an den Inhalt.
Und das da ne neue bash geöffnet wird ist nicht weiter tragisch so wie du schreibst sondern technisch gesehen richtig. Wenn man ein Programm aufruft wird kopiert sich die bash und in diesem kindprozess wird das Programm ausgeführt.
Deshalb schreibt man an den Anfang eines Skripts auch welche Shell gestartet werden soll, zB
Code: Alles auswählen
#!/bin/bash
Cheers, Maikel
------------
BGLUG
------------
Linus Torvalds:
"Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it
"
------------
BGLUG
------------
Linus Torvalds:
"Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it

Danke für die schnelle Antwort 
Ja das wars ... ich hatte vergessen das dass alles in eine Zeile gehört
Und als Resultat erhalte ich:
h2101:/opt/apache# su apache "bin/apachectl start"
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

Kann es sein das "apache" (der User
) keine Rechte hat einen Socket zu öffnen?

Ja das wars ... ich hatte vergessen das dass alles in eine Zeile gehört

Und als Resultat erhalte ich:
h2101:/opt/apache# su apache "bin/apachectl start"
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

Kann es sein das "apache" (der User

Hier könnte IHRE Werbung stehen !!!
Aaaahhhhh ... stimmt das habe ich auch irgendwo gelesen glaube ich ... aber wie kann ich sonst mein System sichern? Ich möchte nicht wirklich das der Apache als "root" ausgeführt wird.
Vielleicht eine Art Nat? Das ich den Port intern von einem Port höher als 1024 auf 80 umleite oder sowas?
Vielleicht eine Art Nat? Das ich den Port intern von einem Port höher als 1024 auf 80 umleite oder sowas?
Hier könnte IHRE Werbung stehen !!!
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Warum benutzt Du einen selbstgebauten Apache, statt den Debian Paketen? Diese sind bereits weitestgehend abgesichert (User www-data)...
Nur so ein Gedanke...
Patrick
Nur so ein Gedanke...
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Ich mag es nicht wenn Programme automatisch installiert werden. Ich möchte des Weiteren die Programme von Grund auf verstehen. Von daher nehme ich mir einen Tag Zeit und wühle mich durch Dokumentationen wie man die Programme kompilieren kann, welche Optionen es gibt, wozu diese gut sind, etc. etc. Genau das hilft ein System sicherer zu machen. Wenn man keine "elementaren" Verständnisse der Programme besitzt kann man diese Programme nicht absichern bzw. sie an die Sicherheit des Systems anpassen.
Deswegen keine vordefinierten Packages sondern das umständliche rumgemache mit den Sourcen & Co.
Deswegen keine vordefinierten Packages sondern das umständliche rumgemache mit den Sourcen & Co.
Hier könnte IHRE Werbung stehen !!!
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Du umgehst damit den grössten Vorteil von Debian überhaupt: Das Paketsystem.Ich mag es nicht wenn Programme automatisch installiert werden
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Ja
Ich weiss ... apt-get ist wirklich ein Geschenk des Himmels ... wenn ich da an dieses rumgemache mit rpm, Suse, RedHat & Co denke
Ich benutz es auch gerne um kleinere Sachen zu updaten oder auf das System zu ziehen
(..ich sag nur wget ...wieviele Sachen ich da per Hand hätte manuell nachinstallieren müssen -> grausam)
Aber Programme wie Apache oder MySQL die auch mit dem Internet kommunizieren können möchte ich nicht mit Standardkonfigurationen versehen. Denn manche Sachen kann man z.B.nur über ./configure setzen ...



Aber Programme wie Apache oder MySQL die auch mit dem Internet kommunizieren können möchte ich nicht mit Standardkonfigurationen versehen. Denn manche Sachen kann man z.B.nur über ./configure setzen ...
Hier könnte IHRE Werbung stehen !!!
Nein
Weil ich nicht auf apt-get verzichten will
Glaub mir...nach diversen Kernel-Fehlschlägen wollte ich zu SuSe wechseln ... aber die Standardinstallation hatte soviele Ports offen und soviel Müll mitinstalliert das mir das dann ein bischen zu blöd war alles wieder "make suse clean" zu machen 
Außerdem bieten diverse Provider keine Server mit Gentoo an
Sondern höchstens SuSe oder Debian...



Außerdem bieten diverse Provider keine Server mit Gentoo an

Hier könnte IHRE Werbung stehen !!!