Os usuários do Linux
Este é um artigo simples onde tento mostrar como o Linux trabalha com usuários e grupos, visto que essa é uma dúvida bem comum dentre as pessoas que costumam aparecer no canal de IRC #Vivaolinux.
Parte 2: Como funciona o /etc/passwd?
As principais informações sobre todos os usuários em uma máquina Linux
são armazenadas no arquivo /etc/passwd. Vejamos um exemplo desse
arquivo:
root:elEjdRjdkoFpef:0:0:root:/root:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
lp:*:4:7:lp:/var/spool/lpd:
adm:*:4:adm:/var/adm:
mail:*:8:12:mail:/var/spool/mail:
sync:*:5:0:sync:/sbin:/bin/sync
news:*:9:13:new:/var/spool/news:
uucp:*:10:14:uucp:/var/spool/uucp:
gopher:*14:31:gopher:/usr/lib/gopher-data:
ftp:*:13:30:FTP User:/home/ftp:
nobody:*:99:99:Nobody:/:
xfs:*:100:101:X Font Server:/etc/X11/fs:/bin/false
juniox:4fT3cjM3zieSd:500:100:JuNiOx:/home/juniox:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
lp:*:4:7:lp:/var/spool/lpd:
adm:*:4:adm:/var/adm:
mail:*:8:12:mail:/var/spool/mail:
sync:*:5:0:sync:/sbin:/bin/sync
news:*:9:13:new:/var/spool/news:
uucp:*:10:14:uucp:/var/spool/uucp:
gopher:*14:31:gopher:/usr/lib/gopher-data:
ftp:*:13:30:FTP User:/home/ftp:
nobody:*:99:99:Nobody:/:
xfs:*:100:101:X Font Server:/etc/X11/fs:/bin/false
juniox:4fT3cjM3zieSd:500:100:JuNiOx:/home/juniox:/bin/bash
Cada linha desse arquivo é o registro de um usuário da máquina. Por exemplo, vamos verificar a linha contendo informações do juniox (última linha).
juniox:4fT3cjM3zieSd:500:100:JuNiOx:/home/juniox:/bin/bash
Verifique que essa linha contém vários campos separados por dois pontos (:). Vamos estudar um por um.
- juniox - nome do usuário na máquina, deve ser único;
- 4fT3cjM3zieSd - a senha criptografada;
- 500 - número de identificação do usuário (assim como o nome do usuário, deve ser único, ou seja, não pode haver repetições). O sistema operacional usa esse número para manter os registros dos arquivos que "juniox" possui ou pode acessar;
- 100 - número de identificação do grupo do usuário. Similar ao número do usuário, porém identifica o grupo, que pode conter vários usuários com as mesmas características de permissão e acesso. (mais detalhado no próximo ítem);
- JuNiOx - é o comentário sobre o usuário. Pode ser qualquer string, mas geralmente usa-se colocar o nome próprio da pessoa;
- /home/juniox - diretório base do usuário. É nesse diretório onde o usuário pode armazenar arquivos pessoais. Após conectado ao sistema operacional, o usuário chegará a esse diretório;
- /bin/bash - shell padrão. É esse o programa que aceitará e executará os comandos digitados pelo usuário.
Para isso é só modificar sua shell para /bin/false, como no exemplo:
xfs:*:100:101:X Font Server:/etc/X11/fs:/bin/false
Isso é bastante usado em provedores onde uma conta de usuário pode ser utilizada para leitura de e-mails,por exemplo, mas não é interessante que ela possa fazer o login no sistema.