Eu tenho um instalador (um extrator de tarja glorificado) que extrai um monte de pacotes personalizados para um cartão SD (para um dispositivo incorporado). O instalador chama chmod
para definir 4755
em alguns arquivos; a função returns 0
(sucesso), mas o arquivo não obtém o conjunto de bits suid. Então lembrei que existe algo como nosuid
. Eu remontado ( mount -o remount,...
) o dispositivo sem nosuid e reran o instalador, mas ele ainda retornou 0 (sucesso) sem configurar o bit de permissão suid. (O instalador é executado através de sudo
).
Estou pensando:
nosuid
significa simplesmente filtrar silenciosamente o bit suid em vez de realmente negar a operação (ou seja, retornar um erro)? chmod 4755:ed
um arquivo [de um shell de root] no cartão SD e funcionou. Existe algo acontecendo porque estou executando o instalador através de sudo
, o que faz com que a configuração suid
não tenha nenhum efeito? Especificamente em relação a essa última pergunta; Eu tenho que admitir que eu nunca entendi completamente a semântica do id do usuário eficaz vs real . Isso poderia estar relacionado ao que estou vendo?
(Eu sei sobre as questões de segurança relacionadas à permissão de suid em dispositivos removíveis; este é um sistema de desenvolvimento literalmente [*] armazenado em um cofre para permitir o acesso a apenas algumas pessoas autorizadas; é por isso que eu posso viver com permanentemente desabilitar nosuid montagens para dispositivos removíveis).
[*] Sim, no sentido correto da palavra. :)
Tags permissions linux ubuntu