Setuid e Setgid são termos do Unix, abreviações para "Definir ID do usuário" e "Definir ID do grupo", respectivamente. Setuid, às vezes também chamado de "suid" e "setgid" são permissões de acesso que podem ser atribuídas a arquivos ou diretórios em um sistema operacional baseado em Unix. Eles são usados principalmente para permitir que os usuários do sistema executem temporariamente binários com privilégios elevados para realizar uma tarefa específica.
Essas permissões são as seguintes:
DEFINIR UID
definir ID do usuário na execuçãoPermite que, quando um arquivo é executado, seja feito sob os privilégios do proprietário. Por exemplo, se precisarmos exercer privilégios de root para poder acessar um determinado módulo, gravar em logs, ler / gravar dispositivos, etc.
SGID, set-group-ID-on-execution permite que, quando um arquivo é executado, seja feito com os privilégios do grupo que possui o arquivo.
Fazer SET UID e GID para arquivos e diretórios, geralmente para o último, permitirá uma "herança" de características do diretório anterior para o próximo, e todos os arquivos / diretórios que são gerados / criados / copiados nos diretórios SET GID terá as características do diretório pai.
GID é geralmente permitido para que os usuários de um grupo possam trabalhar com os arquivos do mesmo grupo, UID poderá alterar o proprietário do arquivo e as permissões para outra pessoa no GRUPO, se a opção "clicável" estiver ativa .
DEFINIR GID
SET GID é uma opção interessante se muitos usuários vão acessar um sistema de armazenamento comum, seja
- SAMBA
- FTP
- HTTP
- Bases de dados
Exemplo para implementar SET UID e GID
A partir do terminal, realizamos as seguintes tarefas:
Criamos um diretório de exemplo:
[root @ root] mkdir EXEMPLOListamos o diretório:
[root @ root] vdirMudamos as permissões do diretório para que apenas os usuários do grupo "programadores" possam acessar, as permissões são parâmetros do comando chmod e são os próximos
+ s: para ativar o modo suid
g + s: para ativar o modo sgid
[root @ root] # chown user.programmers
[root @ root] # chmod g + s EXEMPLO
[root @ root] # vdirListamos o diretório e veremos o conteúdo
4 programadores de usuário drwxrwxrwx 2 EXEMPLOPor padrão, nenhum usuário que não pertença ao grupo de "programadores" poderá trabalhar com os arquivos desse diretório. Por outro lado, os usuários do grupo poderão trabalhar com os arquivos dependendo dos atributos que os usuários possuem, caso possuam permissões somente de leitura ou escrita.
Alguns softwares e serviços como Samba, FTP, HTTPEles têm características especiais que não são regidas por essas regras e as complementam, enriquecendo-as.
Agora que criamos o SET UID e GID, se criarmos um arquivo ou diretório dentro do exemplo de qualquer usuário, ele herdará as características que definimos anteriormente, independentemente de quem o criou e das permissões que possui.
Como exemplo, podemos dizer que se criarmos um arquivo report.txt no diretório EXAMPLE e o usuário que o criou for root e, ainda assim, o grupo for de programadores, o grupo ao qual o arquivo pertencerá será de programadores.
Como o diretório EXAMPLE está com os atributos: drwxrwsrwx, indicando que o diretório é SET GID, todos os arquivos nele criados pertencerão ao usuário e ao grupo indicado pelo SET GID.
Se virmos uma lista com vários arquivos, ela ficaria assim:
4 drwxr-Sr-x 2 programadores jose 4096 home.html 4 drwxr-Sr-x 2 programadores carlos 4096 dependencies.txt 4 drwxr-Sr-x 2 programadores raiz 4096 report-project.odfEspero que este tutorial o ajude. Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo