Échec de l'ouverture de .rpm: autorisation refusée

10

Chaque fois que j'essaie d'installer un fichier .rpm que j'ai téléchargé, je reçois:

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

Il semble que le choix du régime n'a pas d'importance. J'ai d'abord modifié le .rpm (777) mais cela ne fait aucune différence. Qu'est-ce que je rate? L'utilisation rpm -i -vne révèle aucune information supplémentaire.

Le système est RHEL6 64 bits.

Chêne
la source
Pouvez-vous montrer la sortie desudo -l
Not Now
SELinux, peut-être?
derobert

Réponses:

11

Si votre fichier rpm se trouve dans votre répertoire personnel et que votre répertoire personnel se trouve sur NFS, root peut ne pas y avoir accès. C'est quelque peu inhabituel: normalement, root peut accéder à tous les fichiers. Mais dans la configuration courante, lorsque root accède à un répertoire monté sur NFS, les droits de l'utilisateur nobodysont utilisés à la place de l'utilisateur root. L'objectif principal est de s'assurer que root sur le client ne peut pas manipuler les fichiers en tant que root sur le serveur. Ceci est implémenté car "root n'a les permissions de personne" plutôt que "root peut avoir les permissions de n'importe qui sauf pour root" principalement parce que c'est plus facile (bien qu'il puisse y avoir d'autres raisons: certains serveurs NFS l'appliquent à des utilisateurs autres que root, afin de protéger tous les utilisateurs du système sur le serveur).

Si tel est le problème, vous devez rendre le fichier rpm et le répertoire contenant le fichier accessibles à root. Cela signifie les rendre accessibles à l'utilisateur nobody, et généralement la seule façon de le faire est de rendre le fichier et le répertoire lisibles par le monde. Plus précisément, les autorisations minimales sont

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

Vous pouvez également déplacer le fichier rpm vers un répertoire local.

mv something.rpm /tmp
sudo rpm -i /tmp/something.rpm
Gilles 'SO- arrête d'être méchant'
la source
1
Absolument précis, merci pour la réponse rapide.
Oak