Innhold
En liste over de installerte filene, sammen med korte beskrivelser, finner du på lfs.freding.no/lfs/multilib.html/chapter08/shadow.html#contents-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.
Installasjonskommandoene som vises nedenfor er for installasjoner der Linux-PAM er installert og Shadow installeres på nytt for å støtte Linux-PAM installasjonen.
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
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.
/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 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:
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 -vDm644 /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, 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:
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 -vDm644 /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
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.
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
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 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.
En liste over de installerte filene, sammen med korte beskrivelser, finner du på lfs.freding.no/lfs/multilib.html/chapter08/shadow.html#contents-shadow.