Otwarcie .rpm nie powiodło się: Odmowa zezwolenia

10

Za każdym razem, gdy próbuję zainstalować pobrany plik .rpm, otrzymuję:

> sudo rpm -i something.rpm
error: open of something.rpm failed: Permission denied

Wygląda na to, że wybór rpm nie ma znaczenia. Najpierw chmodowałem plik .rpm (777), ale to nie robi różnicy. czego mi brakuje? Korzystanie rpm -i -vnie ujawnia żadnych dodatkowych informacji.

System jest 64-bitowy RHEL6.

Dąb
źródło
Czy możesz pokazać wynikisudo -l
Nie teraz
Może SELinux?
derobert

Odpowiedzi:

11

Jeśli plik rpm znajduje się w katalogu domowym, a katalog domowy w systemie plików NFS, root może nie mieć do niego dostępu. Jest to w jakiś sposób niezwykłe: zwykle root może uzyskać dostęp do każdego pliku. Ale w powszechnej konfiguracji, gdy użytkownik root uzyskuje dostęp do katalogu podłączonego przez NFS, nobodyzamiast użytkownika root są używane prawa użytkownika. Głównym celem jest upewnienie się, że root na kliencie nie może manipulować plikami jako root na serwerze. Jest to realizowane, ponieważ „root ma uprawnienia nikogo”, a nie „root może mieć uprawnienia do wykonania roota” przede wszystkim dlatego, że jest to łatwiejsze (chociaż mogą być inne powody: niektóre serwery NFS stosują to do użytkowników innych niż root, aby chroń wszystkich użytkowników systemu na serwerze).

Jeśli to jest problem, musisz udostępnić zarówno plik rpm, jak i katalog zawierający plik, aby można go było rootować. Oznacza to udostępnienie ich użytkownikowi nobodyi zwykle jedynym sposobem na to jest uczynienie pliku i katalogu czytelnym dla świata. Dokładniej mówiąc, minimalne uprawnienia to

chmod a+x .
chmod a+r something.rpm

Alternatywnie przenieś plik rpm do katalogu lokalnego.

mv something.rpm /tmp
sudo rpm -i /tmp/something.rpm
Gilles „SO- przestań być zły”
źródło
1
Absolutnie na miejscu, dziękuję za szybką odpowiedź.
Oak