Como usar permissões especiais O setuid, setgid e bits pegajosos
- 747
- 54
- Mr. Mitchell Hansen
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 desudo
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
- « Como executar automaticamente o script de shell na inicialização inicial no Systemd Linux
- Como atualizar o Debian 8 Jessie para o Debian 9 Alongamento »