error de apertura de .rpm: permiso denegado

10

Cada vez que intento instalar algunos archivos .rpm que descargué, obtengo:

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

Parece que la elección de rpm no importa. Primero modifiqué el .rpm (777) pero no hace la diferencia. ¿Qué me estoy perdiendo? El uso rpm -i -vno revela ninguna información adicional.

El sistema es RHEL6 de 64 bits.

Roble
fuente
¿Puede mostrar la salida desudo -l
No ahora
SELinux, tal vez?
derobert

Respuestas:

11

Si el archivo rpm está en su directorio de inicio y su directorio de inicio está en NFS, la raíz puede no tener acceso a él. Esto es algo inusual: normalmente, la raíz puede acceder a todos los archivos. Pero en la configuración común, cuando la raíz accede a un directorio que está montado sobre NFS, nobodyse utilizan los derechos del usuario en lugar del usuario raíz. El objetivo principal es garantizar que la raíz del cliente no pueda manipular archivos como raíz en el servidor. Esto se implementa como "root tiene los permisos de nadie" en lugar de "root puede tener los permisos de cualquiera execpt root" principalmente porque esto es más fácil (aunque puede haber otras razones: algunos servidores NFS aplican esto a los usuarios que no sean root, para proteger a todos los usuarios del sistema en el servidor).

Si este es el problema, debe hacer que tanto el archivo rpm como el directorio que contiene el archivo sean accesibles para la raíz. Eso significa hacerlos accesibles para el usuario nobody, y generalmente la única forma de hacerlo es hacer que el archivo y el directorio sean legibles en todo el mundo. Más precisamente, los permisos mínimos son

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

Alternativamente, mueva el archivo rpm a un directorio local.

mv something.rpm /tmp
sudo rpm -i /tmp/something.rpm
Gilles 'SO- deja de ser malvado'
fuente
1
Absolutamente perfecto, gracias por la rápida respuesta.
Roble