8.27. Shadow-4.14.5

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: 49 MB

8.27.1. Instalação do Shadow

[Nota]

Nota

Se você gostaria de reforçar o uso de senhas fortes, [então] recorra a https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cracklib.html para instalar o CrackLib antes de construir o Shadow. Então adicione --with-libcrack ao comando configure abaixo.

Desabilite a instalação do aplicativo groups e as páginas de manual dele, uma vez que o Coreutils fornece uma versão melhor. Também, impeça a instalação de páginas de manual que já foram instaladas no Seção 8.3, “Man-pages-6.06”:

sed -i 's/groups$(EXEEXT) //' src/Makefile.in
find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \;
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 crypt, use o método muito mais seguro YESCRYPT de encriptação de senha, que também permite senhas com mais de oito (08) caracteres. Também é necessário mudar o local obsoleto /var/spool/mail para as caixas de correio de usuário(a) que o Shadow usa por padrão para o local /var/mail usado atualmente. E, remova /bin e /sbin do PATH, pois eles são simplesmente links simbólicos para seus contrapartes em /usr.

[Nota]

Nota

Se você deseja incluir /bin e (ou) /sbin no PATH por alguma razão, [então] modifique a PATH no .bashrc depois que o LFS tiver sido construído.

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

Nota

Se você escolher construir o Shadow com suporte a CrackLib, [então] emita este comando:

sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs

Prepare o Shadow para compilação:

touch /usr/bin/passwd
./configure --sysconfdir=/etc  \
            --disable-static    \
            --with-{b,yes}crypt \
            --without-libbsd    \
            --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 usuário(a) mais longo permissível é o de trinta e dois (32) caracteres. Torne o comprimento máximo de um nome de grupo o mesmo.

--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.27.2. Configurando o Shadow

Esse pacote contém utilitários para adicionar, modificar e deletar usuários(as) e grupos; configurar e modificar 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. Se usar suporte ao Shadow, [então] tenha na mente que aplicativos que necessitem verificar senhas (gerenciadores de tela, aplicativos de FTP, processos de segundo plano pop3, etc.) precisam ser conformantes com o Shadow. Isto é, eles precisam ser capazes de funcionar com senhas sombreadas.

Para habilitar senhas sombreadas, execute o seguinte comando:

pwconv

Para habilitar senhas sombreadas de grupo, execute:

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) usuário(a) e um grupo com o mesmo nome que o(a) usuário(a). Por padrão, os números de "ID" de usuário(a) ("UID") e "ID" de grupo ("GID") iniciarão em 1000. Isso significa que, se você não passar parâmetros extras para o "useradd", [então] cada usuário(a) será um(a) membro(a) de um grupo único no sistema. Se esse comportamento for indesejável, [então] você precisará passar, ou o parâmetro "-g", ou o "-N" para o "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 o useradd nunca reusará um UID ou um GID. Se o número identificado nesse parâmetro estiver usado, [então] 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 Links 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) usuário(a). O useradd atribuirá a propriedade de grupo desse arquivo para o grupo mail com permissões 0660. Se você, em vez disso, não quisesse criar esses arquivos, [então] emita o seguinte comando:

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

8.27.3. Configurando a Senha do(a) Root

Escolha uma senha para o(a) usuário(a) root e configure-a executando:

passwd root

8.27.4. Conteúdo do Shadow

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

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) usuário(a) e outra informação

chgpasswd

Usado para atualizar senhas de grupo em modo de lote

chpasswd

Usado para atualizar senhas de usuária(o) em modo de lote

chsh

Usado para mudar um shell de login padrão do(a) usuário(a)

expiry

Verifica e reforça a política atual de expiração de senha

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) usuário(a)

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

groupmems

Permite que um(a) usuário(a) administre a própria lista de filiação de grupo dele/dela sem a exigência de privilégios de superusuário(a).

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 usuárias(os) logar

logoutd

É um processo em segundo plano usado para reforçar restrições sobre horário de logon e portas

newgidmap

É usado para configurar o mapeamento gid de um espaço de nome de usuária(o)

newgrp

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

newuidmap

É usado para configurar o mapeamento uid de um espaço de nome de usuária(o)

newusers

É usado para criar ou atualizar uma série inteira de contas de usuárias(os)

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 usuária(o) ou 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) usuário(a) estiver configurado para aquele do grupo dado

su

Executa um shell com IDs de usuária(o) e grupo substitutos

useradd

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

userdel

Deleta a conta de usuária(o) especificada

usermod

É usado para modificar o nome de login do(a) usuário(a) dada(o), identificação de usuária(o) (UID), shell, grupo inicial, diretório home, etc.

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 usuárias(os) e grupos