Instalação do ntp
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano "ntpd" depois que ele for
iniciado. Emita os seguintes comandos como o(a) usuário(a)
"root
":
groupadd -g 87 ntp &&
useradd -c "Protocolo de horário da rede de intercomunicação" -d /var/lib/ntp -u 87 \
-g ntp -s /bin/false ntp
O comando "update-leap" precisa ser
corrigido para a finalidade de funcionar corretamente:
sed -e 's/"(\\S+)"/"?([^\\s"]+)"?/' \
-i scripts/update-leap/update-leap.in
Agora corrija um problema introduzido com a "glibc-2.34":
sed -e 's/#ifndef __sun/#if !defined(__sun) \&\& !defined(__GLIBC__)/' \
-i libntp/work_thread.c
Instale o "ntp" executando os
seguintes comandos:
./configure --prefix=/usr \
--bindir=/usr/sbin \
--sysconfdir=/etc \
--enable-linuxcaps \
--with-lineeditlibs=readline \
--docdir=/usr/share/doc/ntp-4.2.8p15 &&
make
A suíte de teste desse pacote está quebrada com o "GCC" 10 ou
posterior.
Agora, como o(a) usuário(a) "root
":
make install &&
install -v -o ntp -g ntp -d /var/lib/ntp
Explicações do Comando
CFLAGS="-O2 -g -fPIC"
: Essa variável de
ambiente é necessária para gerar Código Independente de Posição
necessário para uso nas bibliotecas de pacotes.
--bindir=/usr/sbin
: Esse
parâmetro coloca os aplicativos administrativos em "/usr/sbin
".
--enable-linuxcaps
: O
"ntpd" é executado como usuário(a) "ntp", de forma que use os
recursos do "Linux" para controle de relógio não raiz.
--with-lineeditlibs=readline
: Essa
chave habilita o suporte "Readline" para os aplicativos "ntpdc" e "ntpq". Se omitido, [então]
"libedit" será usada se instalada;
caso contrário, nenhum recurso do "Readline" será compilado.
Configurando o ntp
Arquivos de Configuração
/etc/ntp.conf
Informação de Configuração
O arquivo de configuração a seguir primeiro define vários
servidores "NTP" com acesso aberto a partir de diferentes
continentes. Segundo, ele cria um arquivo de mudança gradual onde
o "ntpd" armazena o
deslocamento de frequência e um arquivo "PID" para armazenar o
"ID" do processo do "ntpd". Terceiro, ele define o
local para o arquivo de definição do segundo bissexto
"/etc/ntp.leapseconds
", que o
conjunto de comandos sequenciais "update-leap" verifica e
atualiza, quando necessário. Esse conjunto de comandos
sequenciais pode ser executado como uma tarefa do "Cron" e os
desenvolvedores do "ntp"
recomendam uma frequência de cerca de três semanas para as
atualizações. Como a documentação incluída no pacote é escassa,
visite o sítio da "web" do "NTP" em https://www.ntp.org/ e https://www.ntppool.org/ para mais
informações.
cat > /etc/ntp.conf << "EOF"
# Ásia
server 0.asia.pool.ntp.org
# Austrália
server 0.oceania.pool.ntp.org
# Europa
server 0.europe.pool.ntp.org
# América do Norte
server 0.north-america.pool.ntp.org
# América do Sul
server 2.south-america.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
pidfile /run/ntpd.pid
leapfile /var/lib/ntp/ntp.leapseconds
EOF
Você possivelmente deseje adicionar uma “seção de Segurança”.
Para explicações, veja-se
https://www.eecis.udel.edu/~mills/ntp/html/accopt.html#restrict.
cat >> /etc/ntp.conf << "EOF"
# Seção de segurança
restrict default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
EOF
Sincronizando a Hora
Existem duas opções. A primeira opção é a de executar o
"ntpd"
continuamente e permitir que ele sincronize a hora de maneira
gradual. A outra opção é a de executar o "ntpd" periodicamente (usando o
"Cron") e atualizar a hora cada vez que o "ntpd" estiver agendado.
Se você escolher a opção um, então instale o
conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/ntp
" incluso no pacote
"blfs-bootscripts-20230101"
"".
make install-ntpd
Se você preferir executar o "ntpd" periodicamente, [então]
adicione o seguinte comando ao "crontab
" do(a) "root
":
ntpd -q
Execute o seguinte comando se desejar configurar o relógio do
"hardware" para a hora atual do sistema no desligamento e
reinicialização:
ln -v -sf ../init.d/setclock /etc/rc.d/rc0.d/K46setclock &&
ln -v -sf ../init.d/setclock /etc/rc.d/rc6.d/K46setclock
O contrário já está configurado pelo LFS.