Als root kein Zugriff auf eigene Datei. Wieso?

Hallo ihr Spezialisten,

habe da mal eine Frage.
Ich bin als root eingelogt. Gehe dann in die Console. Gehe mittels CD in ein bestimmtes Verzeichnis. Nun versuche ich ein Programm aufzurufen das auch als ausführbar gekennzeichnet ist und bekomme dann folgende Meldung : Datei nicht gefunden. Die Datei ist doch da, Eigentümer ist root, angemeldet bin ich als root. Wo ist das Problem?

System :UBUNTU 11.04 / Natty auf 2Kerner AMD64 neu aufgesetzt und aktualisiert.
Anschließend Installation der folgenden SW: TKsuite Server von AGFEO wobei ich nicht davon ausgehe das der Fehler in SW liegt. Ich vermute ein UBUNTU-Fehler oder habe ich ein „Brett vorm Kopf“ das ich nicht selbst auf den Fehler komme?

Auszug Inhaltsverzeichnis:

root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server# ls -la
… # diverse Dateien
-rwxr-xr-x 1 root steffanh 9192 2012-02-20 11:29 tkmedia
… # diverse weitere Dateien
-rw-r–r-- 1 root steffanh 5097 2012-02-20 11:29 tkset_nl.lng
-rw-r–r-- 1 root steffanh 5207 2012-02-20 11:29 tkset_pt.lng
-rwxr-xr-x 1 root steffanh 2534500 2012-02-20 11:29 tksock
-rw-r–r-- 1 root steffanh 44 2012-02-20 11:29 tksock.aut
-rw-r–r-- 1 root steffanh 17641 2012-02-20 11:29 tksock.cfg
root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server#

root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server# ./tksock
bash: ./tksock: Datei oder Verzeichnis nicht gefunden
root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server# tksock
tksock: Befehl nicht gefunden

root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server# tkmedia
tkmedia: Befehl nicht gefunden
root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server# ./tkmedia
bash: ./tkmedia: Datei oder Verzeichnis nicht gefunden

Bin für alle Ratschläge offen und jeden brauchbaren Tipp dankbar.
Zu meiner Person: Habe vor ca. 20 Jahren mal UNIX SystemV gelernt. Bin also kein blutiger Linux-Laie, nur etwas eingerostet.

MfG Steffan

ich vermute, dass tksock ein shellscript ist oder ein anderes skript und schlicht der intrepreter nicht gefunden wird.

mach mal ein

head tksock

das zeigt die die ersten zeilen an, die erste ist die shebang.
dort steht bei skripten z.b.
#!/bin/sh
oder
#!/usr/bin/perl

wenn da bei dir ein pfad drinsteht, der nicht existiert oder ein pfad zu einem nicht ausführbaren programm, dann geht das schief.

Ich hab keine Ahnung, wie ein 32-bit-Binary auf einem dafür nicht vorbereiteten 64-bit-System reagiert, daher ein reiner Schuss ins Blaue: Hast du die ia32-libs installiert?

Gruß

Hallo Steffan

Ich bin als root eingelogt. Gehe dann in die Console. Gehe
mittels CD in ein bestimmtes Verzeichnis. Nun versuche ich ein
Programm aufzurufen das auch als ausführbar gekennzeichnet ist
und bekomme dann folgende Meldung : Datei nicht gefunden.

wie Tina vermute ich auch, daß dein Programm (ein Skript oder was?) nicht im Pfad liegt. Also probiere es mal, in dem Verzeichnis wo es liegt, mit

./skriptname

aufzurufen.

Anschließend Installation der folgenden SW: TKsuite Server von
AGFEO

Das hat jetzt aber mit dem vorhergehenden Problem nichts zu tun, oder?

Auszug Inhaltsverzeichnis:

root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server# ls
-la

preformatiert wäre das besser lesbar, aber das nur nebenbei.

… # diverse Dateien
-rwxr-xr-x 1 root steffanh 9192 2012-02-20 11:29 tkmedia
… # diverse weitere Dateien
-rw-r–r-- 1 root steffanh 5097 2012-02-20 11:29
tkset_nl.lng

Dieses Paket ist auch richtig installiert? Ich frage deshalb, weil es an einem sehr unorthodoxen Ort liegt.

bash: ./tksock: Datei oder Verzeichnis nicht gefunden
root@Spiel-Ubuntu:/AGFEO/tksuite_server_4/tksuite_server#
tksock
tksock: Befehl nicht gefunden

Der gleiche Tipp wie Tina. Als Zusatz nur noch, wie lautet dein Pfad? Also poste mal die Ausgabe von

echo $PATH

Und dann: Machst Du eigentlich immer alles als root?

Viele Grüße
Marvin

Praktische Versuche
Hallo Steffan,
habe jetzt mal das getan, was ich eigentlich schon vor meiner ersten Antwort hätte tun sollen, einfach das Programm installiert. Hier meine Ergebnisse:
Unter Ubuntu kann ich mit

sudo tksock

das Programm starten. Ausdrücklich als root angemeldet, habe ich die gleiche Fehlermeldung wie Du.
Unter Debian Squeeze funktioniert es auch als root:

root@sirius:/home/kb/Downloads/tksuite\_agfeo\_3.3.20\_linux-x86/tksuite\_server# ./tksock 
TK-Suite-Server (c) 2007 AGFEO GmbH & Co. KG Version 3.3.20
This product uses parts of the SFL package
Copyright (c) 1996-2000 iMatix Corporation
1991-2000 iMatix Corporation .
This product uses parts of the SMT Kernel
Copyright (c) 1991-2000 iMatix Corporation
This program uses SQLite 
This program uses technology developed by saltation 
libcapi20.so.2: cannot open shared object file: No such file or directory
^Cshutting down...
tkmedia finished!

Daß es den shared object file nicht finden kann ist ein anderes Bier, schliesslich habe ich keine Telefonanlage…
Meine Vermutung, es liegt an der Spezialität von Ubuntu, das ja eigentlich keinen root mehr hat (ist vielleicht etwas ungenau formuliert, aber wer mit Ubuntu arbeitet, weiß auch so was ich meine), sondern alle root-Angelegenheiten über sudo erledigt haben will. Das war es übrigens, was ich mit meiner etwas ungeschickten Anfrage, ob Du alles als root machst, andeuten wollte.
Soweit, so gut, aber:
Nach Durchlesen der Installationsanleitung ist mir noch unklarer, was Du eigentlich möchtest? Du hast das Paket ausgepackt, und willst tksock „von Hand“ starten, aber warum so?
Als erstes sollte das Ding doch installiert werden, wozu extra das Skript install.sh da ist, das auch wunderbar funktioniert, den Verzeichnisbaum einrichtet /usr/local/tksuite_server/ und auch die Dienste zum automatischen Starten gut in /etc/init.d usw. integriert.
Also warum nicht diesen Installationsweg und dann weitersehen?

Viele Grüße
Marvin

Unter Ubuntu kann ich mit

sudo tksock

das Programm starten. Ausdrücklich als root angemeldet, habe
ich die gleiche Fehlermeldung wie Du.

Kann es sein, dass SELinux oder AppArmor da seine Finger im Spiel hat?

Gruß

Hallo Herrmann,

Kann es sein, dass SELinux oder AppArmor da seine Finger im
Spiel hat?

Kann sein, aber zumindest bei meinem Ubuntu nicht. SELinux ist nicht installiert, es ist bei Ubuntu auch nicht defaultmäßig dabei
https://wiki.ubuntu.com/Security/Features
AppArmor schon, aber ohne Profile:

ubuntu@ubuntu:~$ sudo aa-status
apparmor module is loaded.
0 profiles are loaded.
0 profiles are in enforce mode.
0 profiles are in complain mode.
0 processes have profiles defined.
0 processes are in enforce mode :
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Kann natürlich bei Steffan anders sein, aber er brauchte ja nur mal zur Probe das Kernelmodul apparmor entladen.

Aber ich halte den Zeitpunkt für solche Überlegungen für verfrüht, weil ich immer noch nicht einzusehen vermag, warum man vor der Installation ein Programm starten sollte (sorry Steffan). Läuft es nach der Installation immer noch nicht, na gut, dann kann man weitersehen.

Viele Grüße
Marvin

1 Like

Gelöst
Hallo Tina, Marvin und Hermann,

  1. Ich arbeite ungern als root, der Gefahr ins Auge sehen ist nicht so mein Ding. Gehe eigentlich eher immer auf Nummer sicher. Es war, was Du Marvin sicher auch gelesen hast, so im readme beschrieben. Das dies in Ubuntu ein Fehler ist konnte ich vorher leider nicht ahnen. Hatte auch vorher schon versucht das install-script aus meinem Std-Konto aufzurufen was aber auch nicht funktionierte.

  2. Aua ! Da war es wieder das Brett vorm Kopf. Danke Herrmann. Hatte zwar die ia32-lib installiert, aber irgendwie hat mein System die Rechte-Vergabe nach dem letzten Ubuntu-update etwas durcheinander gebracht und einigen Verzeichnissen eingeschränkte Rechte verpasst, darunter auch die ia32. (/tmp nur mit root-Rechten und weitere Scherze.). Nun habe ich alles wieder gerichtet (Hoffe ich jedenfalls.)

  3. Der direkte Aufruf der tksock kam dadurch zustande das ich das install-script sehr wohl ausgeführt hatte, tksock sich aber mit der eingangs beschrieben Fehlermeldung zurückmeldete. Daraufhin hatte ich dann den direkten Aufruf versucht. Der Tipp von Tina mit head brachte mich dann auf die richtige Spur und so ich fand die ia32 mit den schon oben erwähnten eingeschränkten Rechten.

Nun funktioniert alles so wie es soll. Vielen Dank Euch dreien. Würde mich bei Gelegenheit gerne revanchieren.

VG
Steffan