Shadow-4.18.0

Introduksjon til Shadow

Shadow ble faktisk installert i LFS, og det er ingen grunn til å installere det på nytt med mindre du installerte Linux-PAM etter at LFS-systemet ditt var ferdig. Hvis du har installert Linux-PAM, vil det å installere Shadow på nytt tillate programmer som login og su å bruke PAM.

Shadow Avhengigheter

Påkrevd

Linux-PAM-1.7.1

Installasjon av Shadow

[Viktig]

Viktig

Installasjonskommandoene som vises nedenfor er for installasjoner der Linux-PAM er installert og Shadow installeres på nytt for å støtte Linux-PAM installasjonen.

[Advarsel]

Advarsel

Hvis du installerer shadow på nytt for en versjonsoppdatering, må du sørge for å fullføre Linux-PAM konfigurasjonen nedenfor på nytt. Installasjonen av shadow overskriver mange av filene i /etc/pam.d/.

Installer Shadow på nytt ved å kjøre følgende kommandoer:

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 / /'   {} \; &&

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                                   &&

./configure --sysconfdir=/etc   \
            --disable-static    \
            --without-libbsd    \
            --with-{b,yes}crypt &&
make

Nå, som root bruker:

make exec_prefix=/usr pamddir= install

Manualsidene ble installert i LFS, men hvis ny installasjon er ønskelig, kjør (som root bruker):

make -C man install-man

Parameterforklaringer

[Notat]

Notat

Kjør ./configure --help for en fullstendig liste over alternativer.

sed -i 's/groups$(EXEEXT) //' src/Makefile.in: Denne sed brukes til å undertrykke installasjonen av groups siden programversjonen fra Coreutils pakken som ble installert under LFS er å foretrekke.

find man -name Makefile.in -exec ... {} \;: Den første kommandoen brukes til å undertrykke installasjonen av groups manualsider slik at de eksisterende som er installert fra Coreutils pakken ikke erstattes. De to andre kommandoene forhindrer installasjon av manualsider som allerede er installert av i LFS.

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: I stedet for å bruke standardmetoden «DES» endrer denne kommandoen installasjonen til å bruke den mye sikrere «YESCRYPT» metoden for hashing av passord, som også tillater passord som er lengre enn åtte tegn. Kommandoen endrer også den foreldede /var/spool/mail location for brukerpostbokser som Shadow bruker som standard til /var/mail plassering. Den endrer også standardbanen slik at den er i samsvar med den som er angitt i LFS.

--without-libbsd: Hindrer å lete etter readpassphrase funksjon, som bare finnes i libbsd, som ikke er i GLFS. En intern implementering av readpassphrase brukes i stedet.

pamddir=: Forhindrer installasjon av de medfølgende PAM konfigurasjonsfilene i /etc/pam.d. Den leverte konfigurasjonen fungerer ikke med GLFS PAM konfigurasjonen, og vi vil opprette disse konfigurasjonsfilene eksplisitt.

Konfigurere Linux-PAM til å fungere med Shadow

Konfigurasjonsfiler

/etc/pam.d/* eller alternativt /etc/pam.conf, /etc/login.defs og /etc/security/*

Konfigurasjonsinformasjon

Å konfigurere systemet ditt til å bruke Linux-PAM kan være en kompleks oppgave. Informasjonen nedenfor gir et grunnleggende oppsett slik at Shadows påloggings og passord funksjonalitet fungerer effektivt med Linux-PAM. Se gjennom informasjonen og lenkene på Linux-PAM-1.7.1 side for ytterligere konfigurasjonsinformasjon informasjon. For informasjon spesifikk for integrering av Shadow, Linux-PAM og libpwquality, kan du besøke følgende lenke:

Konfigurere /etc/login.defs

login programmet utfører for tiden mange funksjoner som Linux-PAM-moduler nå skal håndtere. Følgende sed kommando vil kommentere ut de aktuelle linjene i /etc/login.defs, og stoppe login fra å utføre disse funksjonene (en sikkerhetskopifil med navnet /etc/login.defs.orig opprettes også for å bevare innholdet i den opprinnelige filen). Utfør følgende kommandoer som root bruker:

install -v -m644 /etc/login.defs /etc/login.defs.orig &&
for FUNCTION in FAIL_DELAY               \
                FAILLOG_ENAB             \
                LASTLOG_ENAB             \
                MAIL_CHECK_ENAB          \
                OBSCURE_CHECKS_ENAB      \
                PORTTIME_CHECKS_ENAB     \
                QUOTAS_ENAB              \
                CONSOLE MOTD_FILE        \
                FTMP_FILE NOLOGINS_FILE  \
                ENV_HZ PASS_MIN_LEN      \
                SU_WHEEL_ONLY            \
                CRACKLIB_DICTPATH        \
                PASS_CHANGE_TRIES        \
                PASS_ALWAYS_WARN         \
                CHFN_AUTH ENCRYPT_METHOD \
                ENVIRON_FILE
do
    sed -i "s/^${FUNCTION}/# &/" /etc/login.defs
done
Konfigurere /etc/pam.d/ Filen

Som nevnt tidligere i Linux-PAM instruksjonene, har Linux-PAM to støttede metoder for konfigurasjon. Kommandoene nedenfor forutsetter at du har valgt å bruke en mappebasert konfigurasjon, der hvert program har sin egen konfigurasjonsfil. Du kan eventuelt bruke en enkelt /etc/pam.conf konfigurasjonsfil ved å bruke teksten fra filene nedenfor, og oppgi programnavnet som et ekstra første felt for hver linje.

Som root bruker, opprett følgende Linux-PAM konfigurasjonsfiler i /etc/pam.d/ mappen (eller legg innholdet til /etc/pam.conf filen) ved å bruke følgende kommandoer:

'login'
cat > /etc/pam.d/login << "EOF"
# Begin /etc/pam.d/login

# Set failure delay before next prompt to 3 seconds
auth      optional    pam_faildelay.so  delay=3000000

# Check to make sure that the user is allowed to login
auth      requisite   pam_nologin.so

# Check to make sure that root is allowed to login
# Disabled by default. You will need to create /etc/securetty
# file for this module to function. See man 5 securetty.
#auth      required    pam_securetty.so

# Additional group memberships - disabled by default
#auth      optional    pam_group.so

# include system auth settings
auth      include     system-auth

# check access for the user
account   required    pam_access.so

# include system account settings
account   include     system-account

# Set default environment variables for the user
session   required    pam_env.so

# Set resource limits for the user
session   required    pam_limits.so

# Display the message of the day - Disabled by default
#session   optional    pam_motd.so

# Check user's mail - Disabled by default
#session   optional    pam_mail.so      standard quiet

# include system session and password settings
session   include     system-session
password  include     system-password

# End /etc/pam.d/login
EOF
'passwd'
cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd

password  include     system-password

# End /etc/pam.d/passwd
EOF
'su'
cat > /etc/pam.d/su << "EOF"
# Begin /etc/pam.d/su

# always allow root
auth      sufficient  pam_rootok.so

# Allow users in the wheel group to execute su without a password
# disabled by default
#auth      sufficient  pam_wheel.so trust use_uid

# include system auth settings
auth      include     system-auth

# limit su to users in the wheel group
# disabled by default
#auth      required    pam_wheel.so use_uid

# include system account settings
account   include     system-account

# Set default environment variables for the service user
session   required    pam_env.so

# include system session settings
session   include     system-session

# End /etc/pam.d/su
EOF
'chpasswd' og 'newusers'
cat > /etc/pam.d/chpasswd << "EOF"
# Begin /etc/pam.d/chpasswd

# always allow root
auth      sufficient  pam_rootok.so

# include system auth and account settings
auth      include     system-auth
account   include     system-account
password  include     system-password

# End /etc/pam.d/chpasswd
EOF

sed -e s/chpasswd/newusers/ /etc/pam.d/chpasswd >/etc/pam.d/newusers
'chage'
cat > /etc/pam.d/chage << "EOF"
# Begin /etc/pam.d/chage

# always allow root
auth      sufficient  pam_rootok.so

# include system auth and account settings
auth      include     system-auth
account   include     system-account

# End /etc/pam.d/chage
EOF
Andre shadow verktøy
for PROGRAM in chfn chgpasswd chsh groupadd groupdel \
               groupmems groupmod useradd userdel usermod
do
    install -v -m644 /etc/pam.d/chage /etc/pam.d/${PROGRAM}
    sed -i "s/chage/$PROGRAM/" /etc/pam.d/${PROGRAM}
done
[Advarsel]

Advarsel

På dette tidspunktet bør du gjøre en enkel test for å se om Shadow fungerer som forventet. Åpne en annen terminal og logg inn som root, og så kjør login og logg inn som en annen bruker. Hvis du ikke ser noen feil, er alt i orden, og du bør fortsette med resten av konfigurasjonen. Hvis du fikk feil, stopp nå og dobbeltsjekk konfigurasjonsfilene ovenfor manuelt. Enhver feil er et tegn på en feil i prosedyren ovenfor. Du kan også kjøre testpakken fra Linux-PAM pakken for å hjelpe deg med å finne problemet. Hvis du ikke finner og fikser feilen, bør du kompilere Shadow på nytt ved å legge til --without-libpam bryteren til configure kommandoen i instruksjonene ovenfor (flytt også /etc/login.defs.orig sikkerhetskopi filen til /etc/login.defs). Hvis du ikke gjør dette og feilmeldingene vedvarer, vil du ikke kunne logge deg på systemet ditt.

Konfigurere Innloggingstilgang

I stedet for å bruke /etc/login.access filen for å kontrollere tilgang til systemet, Linux-PAM bruker pam_access.so modulen sammen med /etc/security/access.conf filen. Gi nytt navn til /etc/login.access filen ved å bruke følgende kommando:

if [ -f /etc/login.access ]; then mv -v /etc/login.access{,.NOUSE}; fi
Konfigurere ressursgrenser

I stedet for å bruke /etc/limits filen for å begrense bruken av systemressurser, Linux-PAM bruker pam_limits.so modulen sammen med /etc/security/limits.conf filen. Gi nytt navn til /etc/limits filen ved å bruke følgende kommando:

if [ -f /etc/limits ]; then mv -v /etc/limits{,.NOUSE}; fi
[Obs]

Obs

Sørg for å teste systemets påloggingsmuligheter før du logger ut. Feil i konfigurasjonen kan forårsake permanent utlåsing som krever oppstart fra en ekstern kilde for å rette problemet.

Innhold

En liste over de installerte filene, sammen med korte beskrivelser, finner du på https://www.linuxfromscratch.org/~thomas/multilib-systemd-m32/chapter08/shadow.html#contents-shadow.