O que é um usuário


Uma conta de usuário fornece limites de segurança entre diferentes pessoas e programas que podem executar comandos.

Os usuários têm nomes de usuários para que usuários humanos possam identificá-los e para ser mais fácil de trabalhar com eles. Internamente, o sistema distingue as contas de usuários pelo número de identificação exclusivo, a ID do usuário ou UID, atribuído a elas. Na maioria dos cenários, se uma pessoa usar uma conta de usuário, o sistema atribuirá uma senha secreta ao usuário para provar que ele é o usuário autorizado a fazer login.

As contas de usuário são fundamentais para a segurança do sistema. Todo processo (programa em execução) no sistema é executado como um usuário particular. Todo arquivo tem um usuário específico como seu proprietário. Com a propriedade de arquivo, o sistema impõe o controle de acesso aos usuários dos arquivos. O usuário associado a um processo em execução determina os arquivos e diretórios acessíveis a esse processo.

As contas de usuário têm os três principais tipos superusuário, usuários do sistema e usuários regulares.

  • A conta de superusuário administra o sistema. O nome do superusuário é root e a conta tem uma UID de 0. O superusuário tem acesso total ao sistema.

  • As contas do usuário do sistema são usadas por processos que fornecem serviços de suporte. Esses processos (daemons) geralmente não precisam ser executados como superusuário. Eles são atribuídos a contas não privilegiadas para proteger os arquivos e outros recursos uns dos outros e de usuários regulares no sistema. Os usuários não fazem login interativamente com uma conta de usuário do sistema.

  • A maioria dos usuários tem conta de usuário regular para o seu trabalho diário. Como os usuários do sistema, os usuários regulares têm acesso limitado ao sistema.

Use o comando id para mostrar informações sobre o usuário conectado atualmente:

[user01@host ~]$ id
uid=1000(user01) gid=1000(user01) groups=1000(user01) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Para ver informações básicas sobre outro usuário, passe o nome de usuário para o comando id como um argumento:

[user01@host ~]$ id user02
uid=1002(user02) gid=1001(user02) groups=1001(user02) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Use o comando ls -l para ver o proprietário de um arquivo.

Use o comando ls -ld para visualizar o proprietário de um diretório, em vez do conteúdo desse diretório.

Na saída a seguir, a terceira coluna mostra o nome de usuário.

[user01@host ~]$ ls -l mytextfile.txt
-rw-rw-r--. 1 user01 user01 0 Feb  5 11:10 mytextfile.txt
[user01@host]$ ls -ld Documents
drwxrwxr-x. 2 user01 user01 6 Feb  5 11:10 Documents

Para ver informações de processos no shell atual, use o comando ps.

Adicione opção -a do comando ps para ver todos os processos em um terminal.

Use a opção -u do comando ps para ver o usuário que está associado a um processo.

Na saída a seguir, a primeira coluna mostra o nome de usuário.

[user01@host ~]$ ps -au
USER     PID %CPU %MEM    VSZ   RSS TTY    STAT START  TIME COMMAND
root    1690  0.0  0.0 220984  1052 ttyS0  Ss+  22:43  0:00 /sbin/agetty -o -p -- \u --keep-baud 1
user01  1769  0.0  0.1 377700  6844 tty2   Ssl+ 22:45  0:00 /usr/libexec/gdm-x-session --register-
user01  1773  1.3  1.3 528948 78356 tty2   Sl+  22:45  0:03 /usr/libexec/Xorg vt2 -displayfd 3 -au
user01  1800  0.0  0.3 521412 19824 tty2   Sl+  22:45  0:00 /usr/libexec/gnome-session-binary
user01  3072  0.0  0.0 224152  5756 pts/1  Ss   22:48  0:00 -bash
user01  3122  0.0  0.0 225556  3652 pts/1  R+   22:49  0:00 ps -au

A saída do comando anterior exibe os usuários por nome, mas o sistema operacional usa as UIDs para rastrear usuários internamente. O mapeamento de nomes de usuários para UIDs é definido em bancos de dados de informações de conta. Por padrão, os sistemas usam o arquivo simples /etc/passwd para armazenar informações sobre os usuários locais.

Cada linha no arquivo /etc/passwd contém informações sobre um usuário. O arquivo é dividido em sete campos separados por cores. Veja a seguir um exemplo de linha de /etc/passwd:

[user01@host ~]$ cat /etc/passwd
...output omitted...
user01:x:1000:1000:User One:/home/user01:/bin/bash

Considere cada parte do bloco de código, separada por dois pontos:

  • user01 : o nome de usuário para esse usuário.

  • x : a senha criptografada do usuário foi armazenada historicamente aqui, agora é um espaço reservado.

  • 1000 : o número da UID para essa conta de usuário.

  • 1000 : o número da GID para o grupo primário dessa conta de usuário. Os grupos serão discutidos mais adiante nesta seção.

  • User One : um breve comentário, uma descrição ou o nome real desse usuário.

  • /home/user01 : o diretório pessoal do usuário e o diretório de trabalho inicial quando o shell de login é iniciado.

  • /bin/bash : o programa de shell padrão para esse usuário que é executado no login. Algumas contas usam o shell /sbin/nologin para proibir logins interativos com essa conta.

Referências