Setuid, que significa definir o ID do usuário na execução, é um tipo especial de permissão de arquivo nos sistemas operacionais Unix e Unix, como Linux e BSD. É uma ferramenta de segurança que permite aos usuários executar determinados programas com privilégios escalados.
Quando a permissão setuid de um arquivo executável é definida, os usuários podem executar esse programa com um nível de acesso que corresponda ao usuário que possui o arquivo. Por exemplo, quando um usuário deseja alterar sua senha, ele executa o comando passwd. O programa passwd pertence à conta raiz e é marcado como setuid, portanto, o usuário recebe acesso root temporariamente para esse fim muito limitado.
Visualizando a permissão setuid de um arquivo
Ao visualizar as permissões de um arquivo com o comando ls -l, a permissão setuid é exibida como um "s" na posição de bit "user execute". Por exemplo:
ls -l / usr / bin / passwd
-rwsr-xr-x 1 root 54192 20 de novembro às 17:03 / usr / bin / passwd
Definindo a permissão setuid de um arquivo
Para definir a permissão setuid para um arquivo executável, use o identificador de permissão u + s com o comando chmod:
mymodile chmod u + s
Arquivos não executáveis podem ser marcados como setuid, mas não tem efeito; marcá-los como setuid não os torna executáveis automaticamente. Nesse caso, o bit de permissão aparece como um "S" maiúsculo. Por exemplo:
ls -l myfile
-rw-r - r-- 1 usuário 0 6 de mar 10:45 myfile
mymodile chmod u + s
ls -l myfile
-rwSr - r-- 1 usuário 0 6 de mar 10:45 myfile
No entanto, se você definir o arquivo como executável pelo usuário com a permissão u + x, a permissão setuid entrará em vigor. Será então representado na listagem com um "s" minúsculo:
chmod u + x meu arquivo
ls -l myfile
-rwsr - r-- 1 usuário 0 mar 6 10:45 myfile
Setgid
Setgid é o equivalente a setuid para grupos. Se o bit estiver definido, ele concede permissão ao grupo que possui o arquivo. Em uma listagem de arquivo, o caractere "s" (letras minúsculas) é listado na posição "execução do grupo" da sequência de permissões de arquivo. Se o bit setgid estiver definido, mas o grupo não tiver permissões de execução para o arquivo ou diretório, um "S" maiúsculo será exibido. Esse caractere maiúsculo indica que o bit está definido, mas não tem efeito.
Na saída de ls -l mostrada aqui, o "s" minúsculo indica que o bit setgid está definido para o arquivo listado. Qualquer usuário que acessar esse arquivo fará isso como se fosse um membro do grupo proprietário.
chmod g + s myfile2
ls -l myfile2
-rw-r-sr-- 1 usuário mygroup 0 6 mar 10:46 myfile2
Se o bit setgid estiver definido para um diretório, quaisquer novos arquivos criados nesse diretório pertencerão ao grupo proprietário do diretório, em vez do grupo do usuário. Os arquivos movidos ou copiados de outro local não terão seu ID de grupo modificado.