Historicamente, o Linux manteve uma lista dos sistemas de arquivos
montados no arquivo /etc/mtab
. Os
Núcleos modernos mantém essa lista internamente e a expõem para o(a)
usuário(a) via sistema de arquivos /proc
. Para satisfazer utilitários que esperam
encontrar o /etc/mtab
, crie o seguinte
link simbólico:
ln -sv /proc/self/mounts /etc/mtab
Crie um arquivo /etc/hosts
básico para
ser referenciado em algumas suítes de teste e em um dos arquivos de
configuração do Perl também:
cat > /etc/hosts << EOF
127.0.0.1 localhost $(hostname)
::1 localhost
EOF
Para que o(a) usuário(a) root
seja
capaz de logar e para que o nome “root” seja reconhecido, precisam existir
entradas relevantes nos arquivos /etc/passwd
e /etc/group
.
Crie o arquivo /etc/passwd
executando o
seguinte comando:
cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/usr/bin/false
daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false
systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false
systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false
systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false
systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false
systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false
systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false
nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false
EOF
A senha atual para root
será
configurada posteriormente.
Crie o arquivo /etc/group
executando o
seguinte comando:
cat > /etc/group << "EOF"
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
systemd-journal:x:23:
input:x:24:
mail:x:34:
kvm:x:61:
systemd-journal-gateway:x:73:
systemd-journal-remote:x:74:
systemd-journal-upload:x:75:
systemd-network:x:76:
systemd-resolve:x:77:
systemd-timesync:x:78:
systemd-coredump:x:79:
uuidd:x:80:
systemd-oom:x:81:
wheel:x:97:
users:x:999:
nogroup:x:65534:
EOF
Os grupos criados não são parte de nenhum padrão—eles são grupos
decididos em parte pelas exigências da configuração do Udev no
Capítulo 9 e em parte pelas convenções comuns empregadas por um
número de distribuições Linux existentes. Adicionalmente, algumas
suítes de teste dependem de usuárias(os) ou grupos específicas(os). A
Linux Standard Base (LSB, disponível em http://refspecs.linuxfoundation.org/lsb.shtml)
somente recomenda que, além do grupo root
com um ID de Grupo (GID) de 0, um grupo
bin
com um GID de 1 esteja presente.
O GID de 5 é amplamente usado para o grupo tty
e o número 5 também é usado no systemd para o sistema de arquivos devpts
. Todos os outros nomes de grupo e GIDs
podem ser escolhidos livremente pelo(a) administrador(a) do sistema,
uma vez que aplicativos bem escritos não dependem de números de GID,
mas sim usam o nome do grupo.
O ID 65534 é usado pelo núcleo para NFS e espaços de nome de
usuário(a) separados para usuários(as) e grupos não mapeados(as)
(aqueles(as) existem no servidor NFS ou no espaço de nome de usuário
pai, porém “não
existem” na máquina local ou no espaço de nome
separado). Nós atribuímos nobody
e
nogroup
para evitar um ID não
nomeado. Porém, outras distribuições possivelmente tratem esse ID
diferentemente, de forma que qualquer aplicativo portável não deveria
depender dessa atribuição.
Alguns pacotes precisam de um código de idioma.
localedef -i C -f UTF-8 C.UTF-8
Alguns testes no Capítulo 8 precisam de um(a) usuário(a) regular. Nós adicionamos esse(a) usuário(a) aqui e deletamos essa conta ao final daquele capítulo.
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd echo "tester:x:101:" >> /etc/group install -o tester -d /home/tester
Para remover o prompt “I have
no name!”, inicie um novo shell. Uma vez que os
arquivos /etc/passwd
e /etc/group
tenham sido criados, a resolução de nome
de usuária(o) e nome de grupo agora funcionará:
exec /usr/bin/bash --login
Os aplicativos login, agetty e init (e outros) usam um número de arquivos de registro para registrar informação, tais como quem esteve logada(o) no sistema e quando. Entretanto, esses aplicativos não escreverão nos arquivos de registro se eles já não existirem. Inicialize os arquivos de registro e dê a eles permissões adequadas:
touch /var/log/{btmp,lastlog,faillog,wtmp} chgrp -v utmp /var/log/lastlog chmod -v 664 /var/log/lastlog chmod -v 600 /var/log/btmp
O arquivo /var/log/wtmp
registra todos
os logins e logouts. O arquivo /var/log/lastlog
registra quando cada usuária(o) se
logou pela última vez. O arquivo /var/log/faillog
registra tentativas de login
falhas. O arquivo /var/log/btmp
registra tentativas de login inválidas.
Os arquivos wtmp
, btmp
e lastlog
usam
números inteiros de 32 bits para carimbo de tempo e eles serão
fundamentalmente quebrados depois do ano 2038. Muitos pacotes
pararam de usá-los e outros pacotes pararão de usá-los. Não confie
no conteúdo deles para nada. Provavelmente é melhor considerá-los
obsoletos.