X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=modules%2Fsmb_nis.mk;fp=modules%2Fsmb_nis.mk;h=a940d1de0737ed42dedefcb570cf9ce644b05fe2;hb=f9427bc88f337f8a43983326293ec391a136200d;hp=0000000000000000000000000000000000000000;hpb=8561374e037525101ba49997fbf0897b2948f2be;p=blast diff --git a/modules/smb_nis.mk b/modules/smb_nis.mk new file mode 100644 index 0000000..a940d1d --- /dev/null +++ b/modules/smb_nis.mk @@ -0,0 +1,61 @@ +PACKAGES += cifs-utils libpam-mount libpam-script lxdm nis nscd samba-common-bin usermode + +ifndef nis_server + nis_server := nismaster +endif + +define DEBCONF += + +nis nis/domain string .${nis_server} +endef + +export smb_nis_pamscript smb_nis_pammount + +define smb_nis_pamscript := +#!/bin/sh + +/bin/bash -c ' + printf "%s\n" "$$PAM_OLDAUTHTOK" "$$PAM_AUTHTOK" "$$PAM_AUTHTOK" \ + | smbpasswd -sr ${nis_server} -U "$$PAM_USER" +' + +exit $? + +endef + +define smb_nis_pammount := + + + + + + + + +endef + +.PHONY: _smb_nis +_config: _smb_nis + +_smb_nis: ${CFGROOT}/opt/pam_script/pam_script_passwd ${CFGROOT}/etc/security/pam_mount.conf.xml +_smb_nis: ${CFGROOT}/etc/yp.conf ${CFGROOT}/etc/defaultdomain + +_smb_nis: ${CFGROOT} + sed -Ei 's;^(passwd:|group:|shadow:|gshadow:) *;\1 nis ;' $${CFGROOT}/etc/nsswitch.conf + printf '\nauth optional pam_mount.so\n' >>$${CFGROOT}/etc/pam.d/common-auth + printf '\nsession optional pam_mount.so\n' >>$${CFGROOT}/etc/pam.d/common-session + printf '\npassword required pam_script.so dir=/opt/pam_script\n' >$${CFGROOT}/etc/pam.d/common-password + +${CFGROOT}/opt/pam_script/pam_script_passwd: ${CFGROOT} + mkdir -p "$(dir $@)" + printf '%s' "$${smb_nis_pamscript}" >"$@" + +${CFGROOT}/etc/security/pam_mount.conf.xml: ${CFGROOT} + mkdir -p "$(dir $@)" + printf '%s' "$${smb_nis_pammount}" >"$@" + +${CFGROOT}/etc/yp.conf: ${CFGROOT} + printf 'ypserver %s\n' "${nis_server}" >"$@" + +${CFGROOT}/etc/defaultdomain: ${CFGROOT} + printf '.%s\n' "${nis_server}" >"$@"