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.