Innhold
En liste over de installerte filene, sammen med deres korte beskrivelser kan bli funnet på ../../../../lfs/view/development/chapter08/shadow.html#contents-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.
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.
Nedlasting (HTTP): https://github.com/shadow-maint/shadow/releases/download/4.16.0/shadow-4.16.0.tar.xz
Nedlasting MD5 sum: eb70bad3316d08f0d3bb3d4bbeccb3b4
Nedlastingsstørrelse: 2.1 MB
Estimert diskplass som kreves: 100 MB
Estimert byggetid: 0.2 SBU
Linux-PAM-1.6.1 eller CrackLib-2.10.2
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
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
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.
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.
/etc/pam.d/*
eller alternativt
/etc/pam.conf
, /etc/login.defs
og /etc/security/*
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:
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
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:
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
cat > /etc/pam.d/passwd << "EOF"
# Begin /etc/pam.d/passwd
password include system-password
# End /etc/pam.d/passwd
EOF
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
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
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
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
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.
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
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
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.
En liste over de installerte filene, sammen med deres korte beskrivelser kan bli funnet på ../../../../lfs/view/development/chapter08/shadow.html#contents-shadow.