permissions - ¿Qué significa% defattr en los archivos de especificaciones de RPM?
rpm-spec specfiles (2)
El modo que ha especificado no es válido. % defattr toma cuatro argumentos
La Directiva% defattr
La directiva% defattr permite configurar atributos predeterminados para archivos y directivas. El% defattr tiene un formato similar a la directiva% attr:
Los permisos por defecto, o "modo" para archivos.
El ID de usuario predeterminado.
El ID de grupo predeterminado.
Los permisos por defecto, o "modo" para directorios.
La directiva% attr tiene el siguiente formato:
% defattr (modo de archivo, usuario, grupo, modo dir)
Al igual que con% attr si no es necesario especificar un atributo en particular (generalmente porque el archivo se instala con ese atributo configurado correctamente), ese atributo puede reemplazarse con un guión. Además, el modo de directorio puede ser omitido. % defattr tiende a usarse en la parte superior de% files.
Al crear RPM, los archivos de especificaciones de RPM tienen una directiva %defattr
. Sé que define los atributos predeterminados para los archivos que son instalados por ese RPM. Si escribo el %defattr
como se muestra a continuación, ¿qué significa?
%defattr(-testuser, testuser)
Para establecer los permisos y las propiedades en un archivo de especificaciones, trate el directorio como un archivo de esta manera ...% defattr establecerá todos los archivos sin% attr (en este caso, el propietario de apache rache apache del grupo rww y establecerá los directorios en 755).
%files
#%attr(<mode>, <user>, <group>) file
%defattr(644,apache,apache,755)
%attr(-,apache,apache) /var/www/coolapp
%attr(-,apache,apache) /var/www/coolapp/js
%attr(-,apache,apache) /var/www/coolapp/static
/var/www/coolapp/index.html
/var/www/coolapp/__init__.py
/var/www/coolapp/settings.py
/var/www/coolapp/urls.py
/var/www/coolapp/wsgi.py