Como ajustar a elevação de usuários do Gnome no RHEL / CentOS

5

Portanto, estou tentando ajustar a maneira como o GNOME autentica um usuário de desktop para aplicativos privilegiados. Fora da caixa, ele pede a senha root . Para minha implantação, isso é indesejável e eu quero que ele solicite novamente ao usuário a senha deles e permita que eles acessem apenas se estiverem em um determinado grupo ( wheel ).

Eu fiz algum progresso. Se houver um arquivo em /etc/security/console.apps com o nome do serviço que está tentando ser executado (por exemplo, pirut o gerenciador de pacotes), o GNOME pedirá uma senha e elevará o programa. Aqui está o arquivo pirut :

USER=root
PROGRAM=/usr/sbin/pirut
SESSION=true
KEEP_ENV_VARS=http_proxy,ftp_proxy

Se eu comentar / remover a linha USER=root , ser-me-á perguntado pelo usuário no qual estou logado no momento, que é o que desejo. O problema é que, desde que o usuário saiba sua senha, ela será iniciada, de modo que até mesmo os usuários que não estão no meu grupo possam iniciar aplicativos privilegiados.

Um man console.apps é relevante; no entanto inútil:

The /etc/security/console.apps/ directory should contain one file per application that wishes to allow access to console users. The filename should be the same as the servicename, and the contents are irrelevant; the file may be a zero-length file. The application that the file is used by is free to specify the contents in any way that is useful for it.

Minha pergunta: como eu digo ao GNOME / ConsoleHelper que o usuário também deve estar em um específico para permitir a execução?

    
por ErebusBat 24.11.2010 / 16:37

1 resposta

5

O que você quer fazer para o consolehelper é colocar UGROUPS=wheel nos arquivos console.apps. (Você não precisa alterar o que já está lá, e geralmente não deveria.) Em seguida, adicione os usuários correspondentes ao grupo wheel. Em seguida, os membros desse grupo serão solicitados a auth-as-self, enquanto outros usuários ainda serão auth-as-root. (Um tempo atrás, eu precisava dessa mesma funcionalidade, então eu escrevi e recebi o patch upstreamed. O código aberto é incrível.)

Isso está documentado em man userhelper .

Em distribuições mais recentes - o Fedora e o RHEL6 - o consolehelper atual está sendo desativado em favor do PolicyKit (também conhecido como polkit ). Isso tem um esquema de configuração diferente, mas também pode fazer a mesma coisa. Veja man pklocalauthority para detalhes, mas o resumo é: coloque arquivos em /etc/polkit-1/localauthority/50-local.d com conteúdo como:

[Wheel-Group Permissions]
Identity=unix-group:wheel
Action=org.something.seedocs.*;more.actions.*;whatever.you.want.*
ResultAny=auth_self

E, finalmente, você pode descomentar a linha %wheel ALL=(ALL) ALL em /etc/sudoers . (Isso pode se tornar o padrão no Fedora 15).

    
por 24.11.2010 / 17:03