8.25. Shadow-4.13

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

Tempo aproximado de construção: 0.1 SBU
Espaço em disco exigido: 46 MB

8.25.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/11.3/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.03”:

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 mais seguro SHA-512 de encriptação de senha, o qual também permite senhas maiores que oito (08) caracteres. Além disso, configure o número de voltas para 500.000, em vez do padrão 5.000, o qual é baixo demais para evitar ataques de força bruta a senha. É também necessário mudar o local obsoleto /var/spool/mail para caixas de correio de usuária(o) que o Shadow usa por padrão para o local /var/mail usado atualmente. E, remova /bin e /sbin do PATH, uma vez que eles simplesmente são links simbólicos para os homônimos deles em /usr.

[Nota]

Nota

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

sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
    -e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@'       \
    -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 Shadow para compilação:

touch /usr/bin/passwd
./configure --sysconfdir=/etc \
            --disable-static  \
            --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 script de instalação o criará no lugar errado.

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

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

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

Esse pacote contém utilitários para adicionar, modificar e deletar usuárias(os) e grupos; configura e modifica as senhas delas(es); e realiza 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, daemons pop3, etc.) precisam ser conformes com o Shadow. Isto é, eles precisam ser capazes de trabalhar 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 a(o) usuária(o) e um grupo com o mesmo nome que a(o) usuária(o). Por padrão, os números de ID de usuária(o) (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ária(o) 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 suas 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 seu 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.25.3. Configurando a Senha do(a) Root

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

passwd root

8.25.4. Conteúdo do Shadow

Aplicativos instalados: chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, lastlog, 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 da(o) usuária(o) 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 da(o) usuária(o)

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

lastlog

Informa o login mais recente de todas(os) as(os) usuárias(os) ou de um(a) usuário(a) dado(a)

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 da(o) usuária(o) 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 da(o) usuária(o) 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