2025年10月27日 星期一

Debian 13 安裝 shc (Shell script compiler)

apt install -y gcc automake make git 
git clone https://github.com/neurobin/shc
cd shc
./configure && ./autogen.sh && make
cp src/shc /usr/local/bin

2025年10月3日 星期五

dnsmasq ipxe 設定筆記

dhcp-option=vendor:PXEClient,6,2b
#dhcp-option=vendor:HTTPClient,Arch,00016

dhcp-no-override
dhcp-match=set:ipxe-http,175,19
dhcp-match=set:ipxe-https,175,20
dhcp-match=set:ipxe-menu,175,39
dhcp-match=set:ipxe-pxe,175,33
dhcp-match=set:ipxe-bzimage,175,24
dhcp-match=set:ipxe-iscsi,175,17
dhcp-match=set:ipxe-efi,175,36

#pxe-service=0, "PXELINUX (0000-BIOS)", "bios/lpxelinux.0"
#pxe-service=1, "PXELINUX (0001-EFI)", "efi64/syslinux.efi"
#pxe-service=2, "PXELINUX (0002-EFI)", "efi64/syslinux.efi"
#pxe-service=3, "PXELINUX (0003-EFI)", "efi64/syslinux.efi"
#pxe-service=4, "PXELINUX (0004-EFI)", "efi64/syslinux.efi"
#pxe-service=5, "PXELINUX (0005-EFI)", "efi64/syslinux.efi"
#pxe-service=6, "PXELINUX (0006-EFI)", "efi64/syslinux.efi"
#pxe-service=7, "PXELINUX (0007-EFI)", ipxe.efi,192.168.9.240
#pxe-service=7, "PXELINUX (0007-EFI)", "autoexec.ipxe",,
#pxe-service=7, "PXELINUX (0007-EFI)", "ipxe.efi",,
#pxe-service=7, "PXELINUX (0007-EFI)", "grubx64.efi",,
#pxe-service=8, "PXELINUX (0008-EFI)", "efi64/syslinux.efi"
#pxe-service=9, "PXELINUX (0009-EFI)", "efi64/syslinux.efi"

tag-if=set:ipxe-ok,tag:ipxe-http,tag:ipxe-menu,tag:ipxe-iscsi,tag:ipxe-pxe,tag:ipxe-bzimage
tag-if=set:ipxe-ok,tag:ipxe-http,tag:ipxe-menu,tag:ipxe-iscsi,tag:ipxe-efi

pxe-service=tag:!ipxe-ok,X86PC,BIOS,undionly.kpxe,,
pxe-service=tag:!ipxe-ok,IA32_EFI,IA32_EFI,snponlyx32.efi,,
pxe-service=tag:!ipxe-ok,BC_EFI,BC_EFI,ipxe.efi,,
pxe-service=tag:!ipxe-ok,X86-64_EFI,EFI,ipxe.efi,,
pxe-service=tag:!ipxe-ok,X86-64_EFI,EFI0,ipxe.efi,,
pxe-prompt=EFI,0

#pxe-service=tag:!ipxe-ok,X86PC,BIOS,ipxe/undionly.kpxe,192.168.9.200
#pxe-service=tag:!ipxe-ok,IA32_EFI,IA32_EFI,ipxe/snponlyx32.efi,192.168.9.200
#pxe-service=tag:!ipxe-ok,BC_EFI,BC_EFI,ipxe/ipxe.efi,192.168.9.200
#pxe-service=tag:!ipxe-ok,X86-64_EFI,EFI,ipxe/ipxe.efi,192.168.9.200
#pxe-service=tag:!ipxe-ok,X86-64_EFI,EFI0,ipxe/ipxe.efi,192.168.9.200
#pxe-prompt=EFI,0
#pxe-service=0, "PXELINUX (0000-BIOS)", "bios/lpxelinux.0"
#pxe-service=1, "PXELINUX (0001-EFI)", "efi64/syslinux.efi"
#pxe-service=2, "PXELINUX (0002-EFI)", "efi64/syslinux.efi"
#pxe-service=3, "PXELINUX (0003-EFI)", "efi64/syslinux.efi"
#pxe-service=4, "PXELINUX (0004-EFI)", "efi64/syslinux.efi"
#pxe-service=5, "PXELINUX (0005-EFI)", "efi64/syslinux.efi"
#pxe-service=6, "PXELINUX (0006-EFI)", "efi64/syslinux.efi"
#pxe-service=7, "PXELINUX (0007-EFI)", ipxe/ipxe.efi,192.168.9.200
#pxe-service=8, "PXELINUX (0008-EFI)", "efi64/syslinux.efi"
#pxe-service=9, "PXELINUX (0009-EFI)", "efi64/syslinux.efi"

#dhcp-boot=tag:ipxe-ok,ipxe/i.ipxe,pxeserver,192.168.9.200
#dhcp-boot=tag:ipxe-ok,http://192.168.9.200/tftp/ipxe/i.ipxe,,
#dhcp-boot=tag:ipxe-ok,ipxe/aaaautoexec.ipxe,pxeserver,192.168.9.200
dhcp-boot=tag:ipxe-ok,autoexec.ipxe

2025年9月23日 星期二

Debian pam_exec.so 筆記

編輯 /etc/pam.d/common-auth
auth    [success=2 default=ignore]      pam_exec.so quiet debug expose_authtok log=/tmp/pam_exec.log /etc/libnss_shim/auth.sh
auth    [success=1 default=ignore]      pam_unix.so nullok try_first_pass
# here's the fallback if no module succeeds
auth    requisite                       pam_deny.so

編輯 /etc/libnss_shim/auth.sh
#!/bin/bash
set >/tmp/a
read pwd
echo pwd=$pwd PAM_USER=$PAM_USER >>/tmp/a
getent passwd -s files ${PAM_USER}>/dev/null && { echo local:${PAM_USER};exit 1; }

echo $PAM_USER login ok
exit 0;