8.30. Shadow-4.20.2

O pacote Shadow contém aplicativos para manusear senhas de uma maneira segura.

Tempo aproximado de construção: 0,1 UPC
Espaço em disco exigido: 112 MB

8.30.1. Instalação do Shadow

[Importante]

Importante

Se você tiver instalado o Linux-PAM, você deveria seguir as instruções do BLFS em vez desta página para construir, reconstruir, atualizar shadow.

Impeça a instalação de páginas de manual que já foram instaladas no Seção 8.3, “Man-pages-6.18”:

find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \;

Em vez de usar o método padrão SHA512, use o método mais seguro YESCRYPT de encriptação de senha. Também é necessário mudar o local obsoleto /var/spool/mail para caixas de correio de usante que Shadow usa por padrão para o local /var/mail usado atualmente. E, remova /bin e /sbin do PATH, pois eles são simplesmente linques simbólicos para as contrapartes deles em /usr.

[Atenção]

Atenção

Incluir /bin e (ou) /sbin na variável PATH pode fazer com que alguns pacotes do BLFS falhem para construir, de forma que não faça isso no arquivo .bashrc ou em qualquer outro lugar.

sed -e 's:#ENCRYPT_METHOD SHA512:ENCRYPT_METHOD YESCRYPT:' \
    -e 's:/var/spool/mail:/var/mail:'                      \
    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                     \
    -i etc/login.defs

Prepare o Shadow para compilação:

touch /usr/bin/passwd
./configure --sysconfdir=/etc   \
            --disable-static    \
            --with-{b,yes}crypt \
            --without-libbsd    \
            --disable-logind    \
            --with-group-name-max-length=32

O significado das novas opções de configuração:

touch /usr/bin/passwd

O arquivo /usr/bin/passwd precisa existir, pois o local dele é codificado rigidamente em alguns aplicativos; se ele já não existir, [então] o conjunto de comandos sequenciais de instalação o criará no lugar errado.

--with-{b,yes}crypt

O shell expande isso para duas chaves, --with-bcrypt e --with-yescrypt. Elas permitem que o shadow use os algoritmos Bcrypt e Yescrypt implementados pelo Libxcrypt para resumir senhas. Esses algoritmos são mais seguros (em particular, muito mais resistentes a ataques baseados em GPU) que os algoritmos SHA tradicionais.

--with-group-name-max-length=32

O nome de usante mais longo permissível é o de trinta e dois (32) caracteres. Torne o comprimento máximo de um nome de grupo o mesmo.

--disable-logind

Essa opção faz com que o Shadow (especificamente, os programas login e who) use o arquivo /run/utmp em vez do logind para rastrear as sessões ativas de login, pois o logind ainda não está disponível no sistema LFS incompleto. Mas como nós discutimos em Seção 7.6, “Criando Arquivos Essenciais e Linques Simbólicos”, o formato de arquivo /run/utmp estará completamente quebrado depois do ano 2038. Os(As) editores(as) do LFS tentarão resolver o problema antes desse ano.

--without-libbsd

Não use a função "readpassphrase" originária da "libbsd" a qual não está no LFS. Use a cópia interna.

Compile o pacote:

make

Esse pacote não vem com uma suíte de teste.

Instale o pacote:

make exec_prefix=/usr install
make -C man install-man

8.30.2. Configurando o Shadow

Esse pacote contém utilitários para adicionar, modificar e deletar usantes e grupos; configurar e mudar as senhas deles(as); e realizar outras tarefas administrativas. Para uma explicação completa do que sombreamento de senha significa, veja-se o arquivo doc/HOWTO dentro da árvore desempacotada do fonte.

Habilite senhas sombreadas:

pwconv

Habilite senhas sombreadas de grupo também:

grpconv

A configuração padrão do Shadow para o utilitário useradd precisa de alguma explicação. Primeiro, a ação padrão para o utilitário useradd é a de criar o(a) usante e um grupo com o mesmo nome que o(a) usante. Por padrão, os números de ID de usante (UID) e de ID de grupo (GID) iniciarão em 1000. Isso significa que, se você não passar parâmetros extras para useradd, cada usante será um(a) membro(a) de um grupo único no sistema. Se esse comportamento for indesejável, você precisará passar ou o parâmetro -g ou o -N para useradd, ou, do contrário, mudar a configuração de USERGROUPS_ENAB em /etc/login.defs. Veja-se useradd(8) para mais informação.

Segundo, para mudar os parâmetros padrão, o arquivo /etc/default/useradd precisa ser criado e adaptado para se adequar às tuas necessidades particulares. Crie-o com:

mkdir -p /etc/default
useradd -D --gid 999

Explicações do parâmetro do /etc/default/useradd

GROUP=999

Esse parâmetro configura o início dos números de grupo usados no arquivo /etc/group. O valor específico 999 vem do parâmetro --gid acima. Você possivelmente o configure para qualquer valor desejado. Observe que useradd nunca reusará um UID ou um GID. Se o número identificado nesse parâmetro estiver usado, ele usará o próximo número disponível. Observe também que, se você não tiver um grupo com um ID igual a esse número em teu sistema, então na primeira vez que você usar o useradd sem o parâmetro -g, uma mensagem de erro será gerada—useradd: unknown GID 999, ainda que a conta tenha sido criada corretamente. Esse é o motivo pelo qual nós criamos o grupo users com esse ID de grupo no Seção 7.6, “Criando Arquivos Essenciais e Linques Simbólicos.”

CREATE_MAIL_SPOOL=yes

Esse parâmetro faz com que o useradd crie um arquivo de caixa de correio para cada novo(a) usante. useradd atribuirá a titularidade de propriedade de grupo desse arquivo para o grupo mail com permissões 0660. Se você, em vez disso, não quisesse criar esses arquivos, emita o seguinte comando:

sed -i '/MAIL/s/yes/no/' /etc/default/useradd

Finalmente, crie os arquivos vazios /etc/subuid e /etc/subgid:

touch /etc/sub{u,g}id

O conteúdo desses arquivos será atualizado automaticamente por alguns utilitários fornecidos pelo Shadow para alocar IDs de usante e de grupo subordinados. Leiam-se as páginas de manual subuid(5) e subgid(5) para os detalhes acerca dos IDs subordinados.

8.30.3. Configurando a Senha do(a) Root

Escolha uma senha para o(a) usante root e configure-a executando:

passwd root

8.30.4. Conteúdo do Shadow

Programas instalados: chage, chfn, chgpasswd, chpasswd, chsh, faillog, getsubids, gpasswd, groupadd, groupdel, groupmod, grpck, grpconv, grpunconv, login, newgidmap, newgrp, newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (linque para newgrp), su, useradd, userdel, usermod, vigr (linque para vipw) e vipw
Bibliotecas instaladas: libsubid.so
Diretórios instalados: /etc/default e /usr/include/shadow

Descrições Curtas

chage

Usado para mudar o número máximo de dias entre mudanças obrigatórias de senha

chfn

Usado para mudar um nome completo do(a) usante e outras informações

chgpasswd

Usado para atualizar senhas de grupo em modo de lote

chpasswd

Usado para atualizar senhas de usante em modo de lote

chsh

Usado para mudar um shell de login padrão do(a) usante

faillog

É Usado para examinar o registro de falhas de login, configurar um número máximo de falhas antes que uma conta seja bloqueada ou zerar a contagem de falhas

getsubids

É usado para listar os intervalos subordinados de id para um(a) usante

gpasswd

É usado para adicionar e deletar membros(as) e administradores(as) a grupos

groupadd

Cria um grupo com o nome dado

groupdel

Deleta o grupo com o nome dado

groupmod

É usado para modificar o nome ou GID do grupo dado

grpck

Verifica a integridade dos arquivos de grupo /etc/group e /etc/gshadow

grpconv

Cria ou atualiza o arquivo de grupo de sombra a partir do arquivo de grupo normal

grpunconv

Atualiza /etc/group a partir de /etc/gshadow e então deleta o último

login

É usado pelo sistema para permitir usantes logar

newgidmap

É usado para configurar o mapeamento de gid de um espaço de nomes de usante

newgrp

É usado para mudar o GID atual durante uma sessão de login

newuidmap

É usado para configurar o mapeamento de uid de um espaço de nomes de usante

newusers

É usado para criar ou atualizar uma série inteira de contas de usantes

nologin

Exibe uma mensagem dizendo que uma conta não está disponível; é projetado para ser usado como o shell padrão para contas desabilitadas

passwd

É usado para mudar a senha para uma conta de usante ou de grupo

pwck

Verifica a integridade dos arquivos de senha /etc/passwd e /etc/shadow

pwconv

Cria ou atualiza o arquivo de senha de sombra a partir do arquivo de senha normal

pwunconv

Atualiza /etc/passwd a partir de /etc/shadow e então deleta o último

sg

Executa um comando dado enquanto o GID do(a) usante estiver configurado para aquele do grupo dado

su

Executa um shell com IDs substitutos de usante e de grupo

useradd

Cria um(a) usante novo(a) com o nome dado ou atualiza a informação padrão de novo(a) usante

userdel

Deleta a conta especificada de usante

usermod

É usado para modificar o nome de login, identificação de usante (UID), shell, grupo inicial, diretório inicial, entre outras coisas, do(a) usante fornecido(a).

vigr

Edita os arquivos /etc/group ou /etc/gshadow

vipw

Edita os arquivos /etc/passwd ou /etc/shadow

libsubid

biblioteca para lidar com intervalos subordinados de id para usantes e grupos