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.
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 -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, 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 -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
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å https://www.linuxfromscratch.org/~thomas/multilib-systemd-m32/chapter08/shadow.html#contents-shadow.