Permissões inconsistentes para instalação do dnf

2

Por que eu não preciso instalar como root quando o shell "adivinha" o pacote que eu preciso para executar um comando?

Por exemplo:

(cseymour) : ~ $ dnf install rogue
Error: This command has to be run under the root user.
(cseymour) : ~ $ rogue
bash: rogue: command not found...
Install package 'rogue' to provide command 'rogue'? [N/y] y


 * Waiting in queue... 
The following packages have to be installed:
 rogue-5.4.5-19.fc24.x86_64 The original graphical adventure game
Proceed with changes? [N/y] y


 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 

e assim por diante, instalando com sucesso o pacote sem exigir senha root.

    
por csey 01.11.2016 / 19:05

1 resposta

0

Existe um pequeno pacote PackageKit-command-not-found instalado no Fedora, que faz isso acontecer. A política está configurada em /etc/PackageKit/CommandNotFound.conf .

A autenticação é feita usando o PolicyKit (através do barramento D), onde você já concedeu a instalação do novo pacote usando o PackageKit GUI. O arquivo respectivo é usr/share/polkit-1/rules.d/org.freedesktop.packagekit.rules permitindo a instalação de pacotes para usuários logados localmente em wheel group:

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.packagekit.package-install" &&
        subject.active == true && subject.local == true &&
        subject.isInGroup("wheel")) {
            return polkit.Result.YES;
    }
});

Se você não estiver satisfeito com este comportamento, poderá sempre desinstalar este pacote ( dnf remove PackageKit-command-not-found ) e os pacotes não serão instalados automaticamente.

    
por 01.11.2016 / 20:56