Linux - Permissões de acesso especiais

O controle de acesso em arquivos e diretórios é a segurança fundamental para qualquer sistema multi-usuário. Os sistemas de arquivos nativos do Linux implementam controle de acesso utilizando algumas propriedades dos arquivos/diretórios.

[ Hits: 173.464 ]

Por: Roberto Rodrigues da Silva em 17/11/2006


SUID (Set User ID)



A propriedade SUID é somente para arquivos executáveis e não tem efeito em diretórios.

Nas permissões básicas, o usuário que executou o programa é dono do processo. Mas em arquivo executável com a propriedade SUID aplicada, o programa rodará com o ID do dono do arquivo, não com o ID do usuário que executou o programa.

Normalmente o usuário dono do programa executável é também dono do processo sendo executado. Ou seja, quando um arquivo/programa executável tem o controle de acesso SUID, ele é executado como se ele estivesse iniciado pelo dono do arquivo/programa.

A permissão de acesso especial SUID pode aparecer somente no campo Dono.

Exemplo:
Um exemplo para arquivo executável com a propriedade SUID é o arquivo /usr/bin/passwd. Ou seja, quando executamos o comando passwd com qualquer usuário normal, o processo é executado com ID do usuário root (como se o usuário root tivesse executado o comando passwd), pois somente o usuário root tem permissão para alterar o arquivo /etc/passwd.

# ls -lah /usr/bin/passwd
-rwsr-xr-x 1 root root 27K 2006-04-03 10:37 /usr/bin/passwd

Comandos:

Aplicando SUID:

Aplicando a propriedade SUID em um arquivo executável utilizando formato simbólico (s):

# chmod u+s programa.sh
# ls -lah programa.sh

-rwsr-xr-x 1 root roberto 0 2006-09-26 22:57 programa.sh

Aplicando a propriedade SUID em um arquivo executável utilizando formato octal (4):

# chmod 4750 programa.sh
# ls -lah programa.sh

-rwsr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh

Retirando SUID:

# chmod u-s programa.sh
# ls -lah programa.sh

-rwxr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh

Procurando SUID:

Procurando a propriedade SUID em um arquivo executável utilizando formato simbólico (s):

# find /home/roberto -perm u=s
/home/roberto/programa.sh

Procurando a propriedade SUID em um arquivo executável utilizando formato octal (4):

# find /home/roberto -perm -4000
/home/roberto/programa.sh

Página anterior     Próxima página

Páginas do artigo
   1. Lembrando como as permissões básicas funcionam
   2. Permissões de acesso especiais
   3. SUID (Set User ID)
   4. SGID (Set Group ID)
   5. Sticky (Sticky bit)
Outros artigos deste autor

Linux - Manipulando partições de disco

Verificando e marcando badblocks

Linux - Quota de disco

Python - Brincando com arquivos

Linux - Sistema de arquivos

Leitura recomendada

As melhores ferramentas de segurança pra Linux

Biometria - Reconhecimento Facial

MaraDNS: Simples - Seguro - Robusto (parte 3)

Jogando pesado na segurança de seu SSH

Exploração de Falhas em Servidores FTP

  
Comentários
[1] Comentário enviado por removido em 17/11/2006 - 09:35h

Parabéns... Belo artigo e indispensável.

:::... Viva o Linux ...:::

[2] Comentário enviado por removido em 17/11/2006 - 09:44h

Ah cara valeu, sempre tinha dúvida quanto a isso. Abraços.

[3] Comentário enviado por Raptor em 18/11/2006 - 16:13h

Parabéns pelo artigo.

[4] Comentário enviado por tenchi em 19/11/2006 - 12:02h

Artigo muito esclarecedor... Com ele resolvi alguns problemas com permissões aki...

[5] Comentário enviado por lulu.campos em 19/11/2006 - 16:15h

gostei. vai me ajuda muito. parabens.

[6] Comentário enviado por rick2600 em 20/11/2006 - 01:39h

rpz... ja sabia sobre permissões, e aqui no vol ja tem varios textos sobre isso, mas esse ta muito bom mesmo...bem legal e de facil compreensão

[7] Comentário enviado por removido em 20/11/2006 - 11:31h

Este artigo entra na lista dos "Indispensáveis"..
ótimo artigo

[8] Comentário enviado por enzo em 20/11/2006 - 12:10h


Simples, Direto e Objetivo, como deve ser todo arquigo. Para ficar completo só falta uma abordagem sobre ACL aplicada na FileSystem.

Parabéns pelo empenho.

[9] Comentário enviado por fabricio.passos em 20/11/2006 - 20:38h

Muito bem escrito o artigo,informa o que realmente e necessario

[10] Comentário enviado por segundow em 20/11/2006 - 21:36h

Artigo muito interessante. A sua explicação está bem simples. Meus parabéns, continue contribuindo amigo.

Abraços

Segundow

[11] Comentário enviado por andre_mantovani em 20/11/2006 - 21:41h

Cara este artigo está muito fera parabens............ Simples e direto ......


Abraços...


Andre Mantovani

[12] Comentário enviado por memaster em 21/11/2006 - 06:46h

Parabéns pelo artigo..... está mesmo nota 10..
Mas preciso de ajuda.. tenho um server com Red Hat 9 rodando o sendmail, o mesmo está pedindo senha no outlook dos clientes, mesmo a senha de usuário estando correta ele não loga... descobri nos logs que na verdade estou com problemas de permissão na pasta /tmp a mesma esta com as seguintes permissões:

drwxrwxrwt 2 root root 4096 Nov 17 17:53 tmp

mesmo assim nem mesmo root pode criar qualquer arquivo ou diretório dentro de /tmp e nem alterar suas permissões pois recebe permissão nagada para isso, alguém jah viu algo parecido?

[13] Comentário enviado por memaster em 23/11/2006 - 07:21h

bom eu mesmo consegui resolver o meu problema de permissões na pasta /tmp, a mesma estava travada, pra quem não conhece:

chattr -i <diretorio/arquivo> : Desbloqueia diretório ou arquivo.

chattr +i <diretorio/arquivo> : Bloqueia diretório ou arquivo (ateh mesmo para o root).

mais valeu de qualquer forma..

[14] Comentário enviado por jpassos em 07/04/2008 - 10:18h

Salvo meu dia, Parabéns e Obrigado!

[15] Comentário enviado por eowyn_k_tonks em 01/03/2010 - 09:00h

muito bom, vlw

[16] Comentário enviado por IltonJunior em 21/07/2015 - 09:24h

Parabéns! Li agora o melhor artigo do VOL!!

[17] Comentário enviado por cainf em 06/08/2015 - 12:21h

Amigo segui a risca mas nao esta 100% os usuários não conseguem deletar só o dono porem eu quero que as pessoas possam alterar o conteúdo do arquivo como planilhas e documentos não sei o que fazer :(

[18] Comentário enviado por leandrothadeu em 02/09/2021 - 23:02h

Como faço para criar um arquivo dentro do diretório o mesmo vim com as mesmas opcoes do diretório.



Leandro Thadeu


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts