"dhcpcd" é uma implementação do cliente "DHCP" especificado na "RFC2131". Um cliente "DHCP" é útil para conectar seu computador a uma rede de intercomunicação que usa "DHCP" para atribuir endereços de rede de intercomunicação. O "dhcpcd" se esforça para ser um cliente "DHCP" completo, mas muito leve.
Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.
Transferência (HTTP): https://roy.marples.name/downloads/dhcpcd/dhcpcd-9.4.1.tar.xz
Soma de verificação MD5 da transferência: 2b2f46648bc96979f96127f0e0e07d9b
Tamanho da transferência: 251 KB
Espaço em disco estimado exigido: 3,6 MB (com os testes)
Tempo de construção estimado: menos que 0,1 UPC (com os testes)
LLVM-15.0.7 (com "Clang"), ntp-4.2.8p15, chronyd e ypbind
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dhcpcd
Lançamentos recentes do "dhcpcd" suportam opcionalmente a separação de privilégios. Como os benefícios práticos de segurança disso não são claros para um aplicativo como o "dhcpcd" e a configuração é mais complicada, o livro atualmente usa como padrão desativá-lo.
No entanto, se você quiser usar a separação de privilégios, [então]
etapas adicionais de instalação são necessárias para configurar o
ambiente adequado. Emita os seguintes comandos como o(a) usuário(a)
"root
":
install -v -m700 -d /var/lib/dhcpcd && groupadd -g 52 dhcpcd && useradd -c 'Separação de privilégios do dhcpcd' \ -d /var/lib/dhcpcd \ -g dhcpcd \ -s /bin/false \ -u 52 dhcpcd && chown -v dhcpcd:dhcpcd /var/lib/dhcpcd
Corrija um erro de tempo de execução causado por uma mudança na "glibc-2.36":
sed '/Deny everything else/i SECCOMP_ALLOW(__NR_getrandom),' \ -i src/privsep-linux.c
Construa o "dhcpcd" sem separação de privilégios executando o seguinte comando:
./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/dhcpcd \ --dbdir=/var/lib/dhcpcd \ --runstatedir=/run \ --disable-privsep && make
Construa o "dhcpcd" com separação de privilégios executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/dhcpcd \ --dbdir=/var/lib/dhcpcd \ --runstatedir=/run \ --privsepuser=dhcpcd && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) "root
":
make install
--libexecdir=/usr/lib/dhcpcd
:
Configura um local mais adequado para bibliotecas internas do
"dhcpcd".
--dbdir=/var/lib/dhcpcd
: O
"/var/db
" padrão não é compatível com
a "FHS"
--runstatedir=/run
: O
"/var/run
" padrão é um link simbólico
para "/run
".
--with-hook=...
: Opcionalmente, você
pode instalar mais ganchos, por exemplo, para instalar alguns
arquivos de configuração como "ntp.conf
". O conjunto de ganchos está no
diretório "dhcpcd-hooks
" na árvore de
construção.
--disable-privsep
: Não use
a separação de privilégios, que é o padrão.
--privsepuser=dhcpcd
: Use
esse(a) usuário(a) sem privilégios em uma configuração de separação
de privilégios.
--with-hook=...
: Opcionalmente, você
pode instalar mais ganchos, por exemplo, para instalar alguns
arquivos de configuração como "ntp.conf
". O conjunto de ganchos está no
diretório "dhcpcd-hooks
" na árvore de
construção.
Se você quiser configurar interfaces de rede de intercomunicação
na inicialização usando o "dhcpcd", [então] você precisa
instalar a unidade "systemd" incluída no pacote "blfs-systemd-units-20220720"
executando o seguinte comando como o(a) usuário(a) "root
":
make install-dhcpcd
O
comportamento padrão do "dhcpcd" é o de configurar o
nome do dispositivo e o "MTU". Ele também sobrescreve
"/etc/resolv.conf
" e
"/etc/ntp.conf
". Essas
modificações nos arquivos de configuração do sistema são feitas
por ganchos que estão armazenados em "/lib/dhcpcd/dhcpcd-hooks
". Configure o
"dhcpcd"
removendo ou adicionando ganchos de/para esse diretório. A
execução de ganchos consegue ser desabilitada usando-se a opção
de linha de comando "--nohook
"
("-C
") ou pela opção "nohook
" no arquivo "/etc/dhcpcd.conf
".
Certifique-se de desabilitar o serviço "systemd-networkd" ou configurá-lo para não gerenciar as interfaces que você quer gerenciar com o "dhcpcd".
Neste ponto você consegue testar se o "dhcpcd" está se comportando
conforme esperado executando o seguinte comando como o(a)
usuário(a) "root
":
systemctl start dhcpcd@eth0
Para iniciar o "dhcpcd" em uma interface
específica na inicialização, habilite a unidade "systemd"
instalada anteriormente executando o seguinte comando como o(a)
usuário(a) "root
":
systemctl enable dhcpcd@eth0
Substitua "eth0
" pelo
nome real da interface.