mirror of
https://github.com/parchlinux/calamares.git
synced 2025-06-27 09:25:36 -04:00
Only add wheel to sudoers if a wheel group is defined in conf.
This commit is contained in:
parent
ad68ce0187
commit
9e84581354
3 changed files with 26 additions and 11 deletions
|
@ -57,20 +57,27 @@ CreateUserJob::exec()
|
||||||
{
|
{
|
||||||
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||||
QDir destDir( gs->value( "rootMountPoint" ).toString() );
|
QDir destDir( gs->value( "rootMountPoint" ).toString() );
|
||||||
QFileInfo sudoersFi( destDir.absoluteFilePath( "etc/sudoers.d/10-installer" ) );
|
|
||||||
|
|
||||||
if ( !sudoersFi.absoluteDir().exists() )
|
if ( gs->contains( "sudoersGroup" ) &&
|
||||||
return Calamares::JobResult::error( tr( "Sudoers dir is not writable." ) );
|
!gs->value( "sudoersGroup" ).toString().isEmpty() )
|
||||||
|
{
|
||||||
|
QFileInfo sudoersFi( destDir.absoluteFilePath( "etc/sudoers.d/10-installer" ) );
|
||||||
|
|
||||||
QFile sudoersFile( sudoersFi.absoluteFilePath() );
|
if ( !sudoersFi.absoluteDir().exists() )
|
||||||
if (!sudoersFile.open( QIODevice::WriteOnly | QIODevice::Text ) )
|
return Calamares::JobResult::error( tr( "Sudoers dir is not writable." ) );
|
||||||
return Calamares::JobResult::error( tr( "Cannot create sudoers file for writing." ) );
|
|
||||||
|
|
||||||
QTextStream sudoersOut( &sudoersFile );
|
QFile sudoersFile( sudoersFi.absoluteFilePath() );
|
||||||
sudoersOut << QString( "%1 ALL=(ALL) ALL\n" ).arg( m_userName );
|
if (!sudoersFile.open( QIODevice::WriteOnly | QIODevice::Text ) )
|
||||||
|
return Calamares::JobResult::error( tr( "Cannot create sudoers file for writing." ) );
|
||||||
|
|
||||||
if ( QProcess::execute( "chmod", { "440", sudoersFi.absoluteFilePath() } ) )
|
QString sudoersGroup = gs->value( "sudoersGroup" ).toString();
|
||||||
return Calamares::JobResult::error( tr( "Cannot chmod sudoers file." ) );
|
|
||||||
|
QTextStream sudoersOut( &sudoersFile );
|
||||||
|
sudoersOut << QString( "%%1 ALL=(ALL) ALL\n" ).arg( sudoersGroup );
|
||||||
|
|
||||||
|
if ( QProcess::execute( "chmod", { "440", sudoersFi.absoluteFilePath() } ) )
|
||||||
|
return Calamares::JobResult::error( tr( "Cannot chmod sudoers file." ) );
|
||||||
|
}
|
||||||
|
|
||||||
QFileInfo groupsFi( destDir.absoluteFilePath( "etc/group" ) );
|
QFileInfo groupsFi( destDir.absoluteFilePath( "etc/group" ) );
|
||||||
QFile groupsFile( groupsFi.absoluteFilePath() );
|
QFile groupsFile( groupsFi.absoluteFilePath() );
|
||||||
|
|
|
@ -130,5 +130,12 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
||||||
Calamares::JobQueue::instance()->globalStorage()->insert( "autologinGroup",
|
Calamares::JobQueue::instance()->globalStorage()->insert( "autologinGroup",
|
||||||
configurationMap.value( "autologinGroup" ).toString() );
|
configurationMap.value( "autologinGroup" ).toString() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( configurationMap.contains( "sudoersGroup" ) &&
|
||||||
|
configurationMap.value( "sudoersGroup" ).type() == QVariant::String )
|
||||||
|
{
|
||||||
|
Calamares::JobQueue::instance()->globalStorage()->insert( "sudoersGroup",
|
||||||
|
configurationMap.value( "sudoersGroup" ).toString() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,4 +7,5 @@ defaultGroups:
|
||||||
- storage
|
- storage
|
||||||
- wheel
|
- wheel
|
||||||
- audio
|
- audio
|
||||||
autologinGroup: autologin
|
autologinGroup: autologin
|
||||||
|
sudoersGroup: wheel
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue