[initcpio] Improve security by making initramfs files not world-readable
This commit is contained in:
parent
1a85435372
commit
5f6efd2822
@ -23,6 +23,9 @@
|
|||||||
#include "utils/UMask.h"
|
#include "utils/UMask.h"
|
||||||
#include "utils/Variant.h"
|
#include "utils/Variant.h"
|
||||||
|
|
||||||
|
#include <QDir>
|
||||||
|
#include <QFile>
|
||||||
|
|
||||||
InitcpioJob::InitcpioJob( QObject* parent )
|
InitcpioJob::InitcpioJob( QObject* parent )
|
||||||
: Calamares::CppJob( parent )
|
: Calamares::CppJob( parent )
|
||||||
{
|
{
|
||||||
@ -37,12 +40,31 @@ InitcpioJob::prettyName() const
|
|||||||
return tr( "Creating initramfs with mkinitcpio." );
|
return tr( "Creating initramfs with mkinitcpio." );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
fixPermissions( const QDir& d )
|
||||||
|
{
|
||||||
|
for ( const auto& fi : d.entryInfoList( { "initramfs*" }, QDir::Files ) )
|
||||||
|
{
|
||||||
|
QFile f( fi.absoluteFilePath() );
|
||||||
|
if ( f.exists() )
|
||||||
|
{
|
||||||
|
cDebug() << "initcpio fixing permissions for" << f.fileName();
|
||||||
|
f.setPermissions( QFileDevice::ReadOwner | QFileDevice::WriteOwner );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Calamares::JobResult
|
Calamares::JobResult
|
||||||
InitcpioJob::exec()
|
InitcpioJob::exec()
|
||||||
{
|
{
|
||||||
CalamaresUtils::UMask m( CalamaresUtils::UMask::Safe );
|
CalamaresUtils::UMask m( CalamaresUtils::UMask::Safe );
|
||||||
|
|
||||||
|
QDir d( CalamaresUtils::System::instance()->targetPath( "/boot" ) );
|
||||||
|
if ( d.exists() )
|
||||||
|
{
|
||||||
|
fixPermissions( d );
|
||||||
|
}
|
||||||
|
|
||||||
cDebug() << "Updating initramfs with kernel" << m_kernel;
|
cDebug() << "Updating initramfs with kernel" << m_kernel;
|
||||||
auto r = CalamaresUtils::System::instance()->targetEnvCommand(
|
auto r = CalamaresUtils::System::instance()->targetEnvCommand(
|
||||||
{ "mkinitcpio", "-p", m_kernel }, QString(), QString(), 0 );
|
{ "mkinitcpio", "-p", m_kernel }, QString(), QString(), 0 );
|
||||||
|
Loading…
Reference in New Issue
Block a user