O que você quer fazer não é possível. O pam_cap
não só manipula os recursos herdáveis (por isso, ele não concede nenhum recurso permitido / efetivo), mas também lida apenas com usuários e não com grupos (nem mesmo com grupos primários).
Eu fui inspirado a começar a brincar com os recursos do Linux novamente, meu projeto favorito é substituir o setuid em muitos dos binários e fornecer acesso a utilitários privilegiados adicionais para usuários não-root. Fazendo isso adicionando os recursos relevantes ( +ei
, o problema é discutível com +ep
) via setcap
e configure minha conta de usuário pessoal ( jdavis4
) para ter esses recursos atribuídos à sua sessão no login via pam_cap.so
e está indo sensivelmente. Eu posso dar aos usuários individuais o acesso a "ping" e "kill" via capability.conf
O problema que estou tendo, no entanto, é que me ocorreu que se este fosse um sistema de produção, um administrador provavelmente desejaria atribuir recursos por algum tipo de unidade agregada, para que eles não tivessem que fazer isso para cada usuário individual toda vez que fizer um. Dessa forma, um usuário pode ser adicionado ao grupo "filesystemAdmin" e obter itens como CAP_DAC_OVERRIDE
ou adicionado a "ProcessManagement" e obter itens como CAP_SYS_NICE
e CAP_SYS_KILL
.
Isso é possível atualmente?
Não há documentação que eu possa encontrar para afirmar que o capability.conf pode ser atribuído diretamente a um grupo.
Isto parece ser um produto da necessidade de pam_cap 'tirar' os privilégios do processo de autenticação, que provavelmente tem 'todos' capacidade, ou o suficiente para se tornar tal. Isso cria uma propensão onde parece insensato ter mapeamentos aditivos cumulativos, já que isso poderia rapidamente se tornar uma 'estrutura não verificável'. Assim, atribuições através de capability.conf não são cumulativas. Se você acertar uma partida, é isso que você recebe. Não mais nem menos.
Com isso dito:
é possível configurar o pam_cap para carregar recursos de um arquivo arbitrário no formato de /etc/security/capability.conf
é possível usar scripts em uma configuração pam. Seria razoavelmente trivial gerar um arquivo capability.conf por usuário para o usuário autenticado, com base em suas associações de grupo e alimentá-lo para o módulo pam_cap.
Não é 'elegante' ou 'ideal', mas para uma grande base de usuários ldap-ish é provavelmente mais verificável do que 'sincronizar através da camada 8 jellyware' entre usuários válidos e uma entrada de texto completo por usuário em um único /etc/security/capability.conf.
Tags security linux capabilities