Strona 1 z 1

root widzi komendę a user nie

: 29 sierpnia 2014, 00:20
autor: Pad19
Witam,

jest ffmpeg skompilowany ze źródeł. Nie znajduje sie w /usr/bin i nie wiem dokładnie gdzie się znajduje :) problem obecnie dotyczy ffmpeg and pytanie zadam ogóle.
Jeśli wykonuję polecenie np: ffmpeg i działa ono jako root a jako użytkownik pokazuje sie:
ffmpeg: command not found

Co należało by sprawdzić poprawić w systemie? Gdzie jest zapisana informacja o komendach np: ffmpeg

: 29 sierpnia 2014, 02:13
autor: Rafal_F
Po wydaniu polecenia w poszukiwaniu programu sprawdzane są katalogi zawarte w zmiennej PATH, możesz wyświetlić jej zawartość wykonując polecenie:

Kod: Zaznacz cały

echo $PATH
Zmienna ta przyjmuje różne wartości dla roota i dla zwykłego użytkownika. Zmienna PATH dla roota zawiera 3 dodatkowe katalogi:

Kod: Zaznacz cały

/usr/local/sbin
/usr/sbin
/sbin
W tych lokalizacjach zawarte są programy służące do uruchomienia lub zmiany konfiguracji systemu. Do poprawnego działania wymagają uprawnień root'a, więc zwykłemu użytkownikowi i tak się nie przydadzą.
Programy instalowane ze źródeł poleceniem:

Kod: Zaznacz cały

make install
zazwyczaj (to zależy od autora źródeł, developerzy Debiana nie wiele mają tu do powiedzenia) instalowane są w drzewie:

Kod: Zaznacz cały

/usr/local
W związku z tym poszukiwania programu zacząłbym w katalogach:

Kod: Zaznacz cały

/usr/local/bin
/usr/local/sbin
W tym przypadku najbardziej poprawny jest ten pierwszy. Jak widać powodów problemu może być kilka (przynajmniej 2). Zacznij od zlokalizowania programu, powinien znajdować się w /usr/local/bin. Jeżeli tam jest to sprawdź swoją zmienną PATH, wcześniej napisałem jak sprawdzić jej zawartość. Jeżeli jakimś cudem brakuje Ci tam /usr/local/bin, to edytuj plik:

Kod: Zaznacz cały

/etc/profile
i zmień odpowiednią linijkę. U mnie jest to linia 7:

Kod: Zaznacz cały

PATH="[B]/usr/local/bin[/B]:/usr/bin:/bin:/usr/local/games:/usr/games"
To krótki plik, jak go przejrzysz powinieneś połapać się co i jak. Jeżeli program zainstalował się gdzieś indziej, to albo go przeinstaluj (tutaj napisane jak zmienić katalog instalacyjny: http://trac.ffmpeg.org/wiki/CompilationGuide/Generic niestety trzeba to zrobić na poziomie configure), albo dodaj katalog gdzie zainstalowany jest program do zmiennej PATH, wyżej napisałem co i jak.

: 29 sierpnia 2014, 07:11
autor: pabliszer
Można również użyć polecenia whereis

Kod: Zaznacz cały

whereis [color=#333333]ffmpeg[/color] 

: 29 sierpnia 2014, 14:54
autor: LordRuthwen
Generalnie do tego służy polecenie

Kod: Zaznacz cały

type

Kod: Zaznacz cały

 type avconv
avconv jest /usr/bin/avconv
Przyczyną tego, że root widzi a użytkownik nie tost pewnie to, że plik znajduje się w sbin a nie w bin, czyli wymaga podniesienia uprawnień do wykonania.

: 29 sierpnia 2014, 15:37
autor: Yampress
jeśli wiesz gdzie jestr dany program np w sbin, a root go widzi a TY nie to możesz spróbować zastartować go z pełną ścieżką = tam gdzie się on znajduje...

Kod: Zaznacz cały

$/sbin/program
Co nie oznacza, że będzie pracował tak jak spod roota. Bo część programów wymaga roota aby działało z racji że wywołują pewne funkcje.