Como usar permissões especiais O setuid, setgid e bits pegajosos

Como usar permissões especiais O setuid, setgid e bits pegajosos

Objetivo

Saber como as permissões especiais funcionam, como identificá -las e defini -las.

Requisitos

  • Conhecimento do sistema de permissões UNIX/Linux padrão

Dificuldade

FÁCIL

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios de raiz também
    diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Introdução

Normalmente, em um sistema operacional do tipo UNIX, a propriedade de arquivos e diretórios é baseada no padrão uid (ID do usuário) e Gid (grupo-id) do usuário que os criou. O mesmo acontece quando um processo é lançado: ele é executado com o usuário eficaz e o grupo de grupo do usuário que o iniciaram e com os privilégios correspondentes correspondentes. Este comportamento pode ser modificado usando permissões especiais.

O bit setuid

Quando o setuid Bit é usado, o comportamento descrito acima é modificado para que, quando um executável seja lançado, ele não é executado com os privilégios do usuário que o lançaram, mas com o do proprietário do arquivo em vez. Então, por exemplo, se um executável tiver o setuid Bit definido nele, e é de propriedade da raiz, quando lançado por um usuário normal, ele será executado com privilégios root. Deve ficar claro por que isso representa um risco potencial de segurança, se não for usado corretamente.

Um exemplo de um executável com o conjunto de permissão setuid é Passwd, O utilitário que podemos usar para alterar nossa senha de login. Podemos verificar isso usando o ls comando:

ls -l /bin /passwd -rwsr -xr -x. 1 raiz raiz 27768 11 de fevereiro de 2017 /bin /passwd 

Como identificar o setuid pedaço? Como você certamente percebeu olhando para a saída do comando acima, o setuid Bit é representado por um s no lugar do x da parte executável. O s implica que o bit executável está definido, caso contrário, você verá um capital S. Isso acontece quando o setuid ou setGid bits estão definidos, mas o bit executável não é, mostrando ao usuário uma inconsistência: o setuid e setGit bits não têm efeito se o bit executável não estiver definido. O bit setuid não tem efeito nos diretórios.



O bit setgid

Ao contrário do setuid Bit, o setGid Bit tem efeito nos arquivos e diretórios. No primeiro caso, o arquivo que tem o setGid Bit Set, quando executado, em vez de correr com os privilégios do grupo do usuário que o iniciou, é executado com os do grupo que possui o arquivo: em outras palavras, o ID do grupo do processo será o mesmo do de o arquivo.

Quando usado em um diretório, em vez disso, o setGid Bit altera o comportamento padrão para que o grupo dos arquivos criados dentro do referido diretório não seja o do usuário que os criou, mas o do próprio diretório pai. Isso é frequentemente usado para facilitar o compartilhamento de arquivos (os arquivos serão modificáveis ​​por todos os usuários que fazem parte desse grupo). Assim como o setuid, o bit Setgid pode ser facilmente visto (neste caso em um diretório de teste):

LS -LD TEST DRWXRWSR -X. 2 EGDOC EGDOC 4096 de novembro 17:25 Teste 

Desta vez o s está presente no lugar do bit executável no setor de grupo.

A parte pegajosa

O bit pegajoso funciona de uma maneira diferente: embora não tenha efeito nos arquivos, quando usado em um diretório, todos os arquivos no referido diretório serão modificáveis ​​apenas por seus proprietários. Um caso típico em que é usado, envolve o /tmp diretório. Normalmente, este diretório é gravável por todos os usuários do sistema; portanto, para impossibilitar um usuário para excluir os arquivos de outro, o bit pegajoso é definido:

$ ls -ld /tmp drwxrwxrwt. 14 raiz raiz 300 de novembro 16:48 /tmp 

Nesse caso, o proprietário, o grupo e todos os outros usuários têm permissões completas no diretório (leia, escreva e execute). A parte pegajosa é identificável por um t que é relatado onde normalmente o executável x Bit é mostrado, na seção "Outro". Novamente, um minúsculo t implica que o bit executável também está presente, caso contrário, você verá um capital T.

Como definir bits especiais

Assim como permissões normais, os bits especiais podem ser atribuídos com o chmod comando, usando o numérico ou o ugo/rwx formatar. No primeiro caso setuid, setGid, e pegajoso bits são representados respectivamente por um valor de 4, 2 e 1. Por exemplo, se queremos definir o setGid Bit em um diretório que executaríamos:

$ chmod 2775 teste

Com este comando, definimos o setGid Bit no diretório (identificado pelo primeiro dos quatro números), e deu privilégios completos a seu proprietário e ao usuário que são membros do grupo ao qual o diretório pertence, além de ler e executar permissão para todos os outros usuários (Lembre -se de que o bit de execução em um diretório significa que um usuário é capaz de cd nele ou use ls para listar seu conteúdo).

A outra maneira de definir os bits de permissões especiais é usar a sintaxe UGO/RWX:

$ chmod g+s teste

Para aplicar o setuid Bit em um arquivo, teríamos executado:

$ chmod u+s arquivo

Enquanto aplica a parte pegajosa:

$ chmod o+t teste

O uso de permissões especiais pode ser muito útil em algumas situações, mas se não for usado corretamente, pode introduzir vulnerabilidades sérias, então pense duas vezes antes de usá -las.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Crie e configure diretórios SetGid para colaboração -…
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como criar a conta Modificar e Excluir usuários no Linux
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Linux pode obter vírus? Explorando a vulnerabilidade do Linux…
  • Download do Linux
  • Como fazer bota dupla kali linux e windows 10