User identifier

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Sistemas operacionais baseados em Unix identificam os usuários dentro do kernel por um valor inteiro sem sinal chamado de user identifier (em português identificador de usuário, ou ainda, número de identificação do usuário), muitas vezes abreviado para UID ou User ID. O intervalo de valores de UID varia entre sistemas diferentes.1 2 No mínimo, um UID representa um número inteiro de 15 bits, variando entre 0 e 32767, com as seguintes restrições:

  • O superusuário deve sempre ter um UID zero (0).
  • O usuário "nobody" tradicionalmente tem o maior UID possível (como o oposto do superusuário): 32767. Mais recentemente, os sistemas têm atribuído ao usuário um UID na faixa do sistema (1-100, ver abaixo) ou no intervalo 65530-65535.
  • A convenção reserva os UIDs de 1 a 100 para uso do sistema. Alguns manuais recomendam reservar UIDs de 101 até 499 (Red Hat Enterprise Linux), ou mesmo até 999 (Debian).

O valor do UID referencia usuários no arquivo /etc/passwd. Arquivos de contra-senha e o Network Information Service também se referem a UIDs numéricos. O identificador do usuário tornou-se um componente necessário dos processos e sistemas de arquivos do Unix. Alguns sistemas operacionais suportam UIDs de 16 bits, permitindo 65536 IDs únicos possíveis. Um sistema moderno, com UIDs de 32 bits irá, potencialmente, permitir 4.294.967.296 (232) valores distintos disponíveis.

Em ambientes complacentes POSIX o o comando id fornece o número do UID do usuário, bem como mais informações sobre sua conta, como o nome de usuário, grupo de usuário primário e identificador de grupo (GID).

ID de usuário efetivo[editar | editar código-fonte]

O effective UID (euid), em português UID efetivo, e o effective GID (egid), em português GID efetivo, afetam a criação e o acesso de arquivos. Durante a criação do arquivo, o kernel define os atributos do proprietário do arquivo para o UID efetivo e o GID efetivo do processo de criação. Durante o acesso ao arquivo, o kernel usa o UID efetivo e o GID efetivo do processo para determinar se ele pode acessar o arquivo.

ID de usuário salvo[editar | editar código-fonte]

O saved user ID (suid), em português ID de usuário salvo, é usado quando um programa em execução com privilégios elevados precisa temporariamente fazer algum trabalho sem privilégios: ele muda o seu ID de usuário efetivo a partir de um valor privilegiado (geralmente root) para algum sem privilégios, e isso desencadeia uma cópia do ID de usuário privilegiado para o slot de ID de usuário salvo. Posteriormente, ele pode retornar ao seu ID de usuário efetivo para o ID de usuário salvo (um processo não privilegiado só pode definir o seu ID de usuário efetivo para três valores: o seu ID de usuário real, seu ID de usuário salvo e seu ID de usuário efetivo, ou seja, sem alterações) para retomar seus privilégios.

ID de usuário do sistema de arquivos[editar | editar código-fonte]

O Linux também tem um arquivo de ID de usuário do sistema de arquivos ou file system user ID (fsuid) que é usado explicitamente para controlar o acesso ao sistema de arquivos. Ele corresponde ao euid a menos que explicitamente defina o contrário. Pode ser ID do usuário do root somente se o ruid, o suid ou o euid seja o root. Sempre que o euid é alterado, a alteração é propagada para o fsuid.

O objetivo do fsuid é permitir que programas (por exemplo, o servidor NFS) se limitem aos direitos de sistema de arquivos de alguns uid fornecidos sem dar essa permissão de uid para enviá-los sinais.

ID de usuário real[editar | editar código-fonte]

O real UID (ruid), ou em português UID real, e o real GID (rgid), ou em português GID real, identificam o verdadeiro dono do processo e afetam as permissões para o envio de sinais. Um processo sem privilégio de superusuário pode sinalizar outro processo apenas se UID real do remetente corresponde com o UID real do receptor. Como os processos filho herdam as credenciais do pai, eles podem sinalizar um ao outro.

Ver também[editar | editar código-fonte]

Referências

  1. Pritchard, Steven & Pessanha, Bruno (2007), "Certificação Linux LPI - Nível 1 - Exames 101-102" ISBN 9788576081661
  2. Pritchard, Steven & Pessanha, Bruno (2007), "Certificação Linux LPI - Nível 2 - Exames 201-202" ISBN 9788576081425