web-dev-qa-db-ja.com

.rpmのオープンに失敗しました:権限が拒否されました

ダウンロードした.rpmをインストールしようとすると、いつでも次のようになります。

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

Rpmの選択は重要ではないようです。最初に.rpm(777)をchmodしましたが、違いはありません。何が欠けていますか? rpm -i -vを使用しても、追加情報は表示されません。

システムはRHEL6 64ビットです。

10
Oak

Rpmファイルがホームディレクトリにあり、ホームディレクトリがNFS上にある場合、rootはそれにアクセスできない可能性があります。これはどういうわけか異常です:通常、rootはすべてのファイルにアクセスできます。ただし、一般的なセットアップでは、NFSを介してマウントされたディレクトリにrootがアクセスすると、rootユーザーの代わりにユーザーnobodyの権限が使用されます。主な目的は、クライアントのルートがサーバーのルートとしてファイルを操作できないようにすることです。これは、「ルートは誰の権限も持つことができる」ではなく、「ルートはだれの権限も実行できる」として実装されています。サーバー上のすべてのシステムユーザーを保護します)。

これが問題である場合は、rpmファイルと、ファイルを含むディレクトリの両方をrootがアクセスできるようにする必要があります。これは、ユーザーがnobodyにアクセスできるようにすることを意味します。通常、これを行う唯一の方法は、ファイルとディレクトリを誰でも読み取り可能にすることです。より正確には、最小限の権限は

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

または、rpmファイルをローカルディレクトリに移動します。

mv something.rpm /tmp
Sudo rpm -i /tmp/something.rpm