Loading AI tools
Da Wikipédia, a enciclopédia livre
setuid e setgid (abreviações de "set user ID upon execution" e "set group ID upon execution", que significam, respectivamente, "definir ID de usuário sob execução" e "definir ID de grupo sob execução") são sinalizadores de direitos de acesso do Unix que permitem que usuários rodem um executável com as permissões do dono ou grupo do executável,[1] respectivamente, e alterem o comportamento em diretórios.[2]
Eles são frequentemente utilizados para permitir que usuários, em um sistema de computador, executem programas com privilégios elevados temporariamente a fim de realizar uma tarefa específica. Enquanto que os privilégios assumidos de id de usuário ou id de grupo fornecidos não são sempre elevados, no mínimo eles são específicos.
setuid
e setgid
são necessários para tarefas que requerem privilégios mais elevados que aqueles os quais usuários comuns, tais como mudança de sua senha de login.[3] Algumas das tarefas que exigem privilégios elevados podem não ser imediatamente óbvias, entretanto - tais como o comando ping
, que tem que enviar e escutar pacotes de controle em uma interface de rede.
Os sinalizadores setuid e o setgid possuem um significado inteiramente diferente dependendo se eles são definidos para um arquivo ou para um diretório.
Quando os atributos setuid e setgid são definidos em um arquivo executável, então quaisquer usuários capazes de executar o arquivo executarão automaticamente o arquivo com os privilégios do proprietário do arquivo (normalmente o root) e/ou do grupo do arquivo, dependendo dos sinalizadores definidos.[3] Isso permite que o designer do sistema permita que programas confiáveis sejam executados, o que, de outra forma, o usuário não teria permissão para executar. Isto pode nem sempre ser óbvio. Por exemplo, o comando ping pode precisar de acesso a privilégios de rede que um usuário normal não pode acessar, portanto, pode receber o sinalizador setuid para garantir que um usuário que precise fazer ping em outro sistema possa fazê-lo, mesmo que sua própria conta não tenha o privilégio necessário para enviar pacotes.
Por motivos de segurança, o usuário invocador é geralmente proibido pelo sistema de alterar o novo processo por quaisquer meios, como por meio do uso do ptrace, LD_LIBRARY_PATH ou enviando sinais para ele, para explorar o privilégio elevado, embora os sinais do terminal ainda sejam aceitos.
Os bits setuid e setgid são normalmente configurados com o comando chmod definindo o dígito octal de alta ordem para 4 para setuid ou 2 para setgid. "chmod 6711 arquivo" definirá os bits setuid e setgid (4 + 2 = 6), tornando o arquivo com permissões de leitura / gravação / execução para o proprietário (7), e executável pelo grupo (primeiro 1) e outros (segundo 1 ). Quando um usuário diferente do proprietário executa o arquivo, o processo será executado com permissões de usuário e grupo definidos pelo seu proprietário. Por exemplo, se o arquivo pertencer ao usuário root e ao grupo wheel, ele será executado como root:wheel, independentemente de quem executar o arquivo.
A maioria das implementações do comando chmod também suporta argumentos simbólicos mais refinados para definir esses bits. A maneira numérica de definir essas permissões como usadas acima "chmod 6711 arquivo" não permite retirar essas mesmas permissões como seria de esperar com "chmod 0711 arquivo". O modo de granulação mais fina é mostrado na demonstração abaixo como "chmod ug + s".
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.