Shadow-4.16.0

Introduksjon til Shadow

Shadow ble faktisk installert i LFS og det er det ingen grunn til å installere den på nytt med mindre du har installert CrackLib eller Linux-PAM etter at LFS systemet ditt ble fullført. Hvis du har installert CrackLib etter LFS, så å installere Shadow på nytt vil aktivere sterkt passord brukerstøtte. Hvis du har installert Linux-PAM, installere Shadow på nytt vil tillate programmer som f.eks login og su å bruke PAM.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

Shadow Avhengigheter

Påkrevd

Linux-PAM-1.6.1 eller CrackLib-2.10.2

Valgfri

libbsd og tcb

Installasjon av Shadow

[Viktig]

Viktig

Installasjonskommandoene vist nedenfor er for installasjoner hvor Linux-PAM er installert og Shadow blir reinstallert for å støtte Linux-PAM installasjon.

Hvis du installerer Shadow på nytt for å gi sterk passordstøtte ved å bruke CrackLib biblioteket uten å bruke Linux-PAM, forsikre deg å legge til --with-libcrack parameteren til configure skriptet nedenfor og kjør også følgende kommando:

sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' etc/login.defs
[Advarsel]

Advarsel

Hvis du installerer shadow på nytt for en versjonsoppdatering, sørg for å gjenoppnå Linux-PAM konfigurasjonen nedenfor. 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

Denne pakken kommer ikke med en testpakke.

Nå, som root bruker:

make exec_prefix=/usr pamddir= install

Mansidene ble installert i LFS, men hvis ominstallering er ønsket, kjør (som root bruker):

make -C man install-man

Parameterforklaringer

sed -i 's/groups$(EXEEXT) //' src/Makefile.in: Denne sed brukes til å undertrykke installasjonen av groups programmet ettersom versjonen fra Coreutils pakken installert under LFS foretrekkes.

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

sed -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD YESCRYPT@' -e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@' -e 's@/var/spool/mail@/var/mail@' -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' -i etc/login.defs: I stedet for å bruke standard 'DES' metoden, endrer denne kommandoen installasjonen til å bruke den mye mer sikre 'YESCRYPT' metode for hashing passord, som også tillater passord lengre enn åtte tegn. Kommandoen endrer også utdaterte /var/spool/mail plasseringen for brukerpostkasser som Shadow bruker som standard til /var/mail plasseringen. Det endrer også standardbanen for å være i samsvar med det satt i LFS.

--without-libbsd: Hindrer å lete etter readpassphrase funksjon, som bare finnes i libbsd, som vi ikke har i BLFS. En intern implementasjon av readpassphrase brukes i stedet.

pamddir=: Hindrer installasjon av de leverte PAM konfigurasjonsfiler til /etc/pam.d. Den sendte konfigurasjonen fungerer ikke med BLFS PAM konfigurasjonen og vi vil opprette disse konfigurasjonsfilene eksplisitt.

Konfigurere Linux-PAM til å fungere med Shadow

[Notat]

Notat

Resten av denne siden er viet til å konfigurere Shadow å virke skikkelig med Linux-PAM. Hvis du ikke har Linux-PAM installert, og du installerte Shadow på nytt for å støtte sterke passord via CrackLib biblioteket, ingen ytterligere konfigurasjon er nødvendig.

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 vil gi et grunnleggende oppsett sånn at Shadow sin innlogging og passord funksjonalitet vil fungere effektivt med Linux-PAM. Se gjennom informasjonen og lenkene på Linux-PAM-1.6.1 side for videre konfigurasjons informasjon. For informasjon spesifikk for å integrere 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 modulene skal håndtere. Følgende sed kommandoen vil kommentere ut passende linjer i /etc/login.defs, og stoppe login fra å utføre disse funksjonene (en sikkerhetskopi fil navngitt /etc/login.defs.orig er også opprettet for å bevare originalfilens innhold). Kjø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/ Files

Som nevnt tidligere i Linux-PAM instruksjonene, Linux-PAM har støtte for to metoder for konfigurasjon. Kommandoene nedenfor antar at du har valgt å bruke en mappebasert konfigurasjon, hvor hvert program har sin egen konfigurasjonsfil. Du kan valgfritt bruke en singel /etc/pam.conf konfigurasjonsfilen ved å bruke tekst fra filene nedenfor, og oppgi programnavnet som en ekstra første felt for hver linje.

Som root bruker, opprett følgende Linux-PAM konfigurasjonsfiler i /etc/pam.d/ mappen (eller legg til innholdet i /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 på som root, og kjør så login og logg inn som en annen bruker. Hvis du ikke ser noen feil, så er alt bra 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 å legge til --without-libpam bryteren til configure kommandoen i instruksjonene ovenfor (flytt også /etc/login.defs.orig sikkerhetskopifil til /etc/login.defs). Hvis du ikke klarer å gjøre dette og feilene gjenstår, vil du ikke kunne logge inn på ditt system.

Konfigurere Innloggings Adgang

I stedet for å bruke /etc/login.access filen for å kontrollere tilgangen 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 hjelp av 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 påloggingsmulighetene til systemet før du logger ut. Feil i konfigurasjonen kan forårsake en permanent utestengelse som krever oppstart fra en ekstern kilde for å korrigere problemet.

Innhold

En liste over de installerte filene, sammen med deres korte beskrivelser kan bli funnet på ../../../../lfs/view/development/chapter08/shadow.html#contents-shadow.