7 # if cryptsetup is not installed, then we cannot support encrypted devices.
8 require_binaries cryptsetup
|| return 1
12 for _fs
in "${host_fs_types[@]}"; do
13 # include when a crypto_LUKS fs is present
14 [[ $_fs = "crypto_LUKS" ]] && return 0
17 # include if required by other module
27 # depend on crypt for /etc/crypttab
28 # depend on systemd-networkd for rd.neednet=1
29 echo crypt systemd
-networkd
38 for _fs
in "${host_fs_types[@]}"; do
39 if [[ "$_fs" == "crypto_LUKS" ]]; then
40 #XXX we used to include ip=dhcp as well (replaced by systemd-networkd configuration)
41 printf "%s" " rd.neednet=1"
49 local _ihttpdconf
=$(cmdline)
51 #XXX: rd.neednet=1 is mandatory to have active network in initrd
52 [[ $_ihttpdconf ]] && printf "%s\n" "$_ihttpdconf" >> "${initdir}/etc/cmdline.d/99ihttpd.conf"
54 # Install required dirs
57 /etc
/pki
/tls
/private \
58 /etc
/systemd
/network \
59 $systemdsystemunitdir/ihttpd.service.wants \
60 $systemdsystemunitdir/sysinit.target.wants \
64 #XXX: force cryptsetup install until systemd-cryptsetup implement a method that don't rely on password ending with \0
70 /etc
/pki
/tls
/certs
/ihttpd.pem \
71 /etc
/pki
/tls
/private
/ihttpd.pem \
72 $systemdsystemunitdir/systemd
-networkd.service \
79 inst_simple
-o /var
/www
/html
/favicon.ico
81 # Include all ihttpd deps
101 "libnss_myhostname.so.*" \
102 {"tls/$_arch/",tls
/,"$_arch/",}"libssl.so.*"
104 # Install ihttpd.conf index.bin reboot.bin ihttpd.service
105 for nc
in /etc
/ihttpd.conf
/var
/www
/html
/index.bin
/var
/www
/html
/reboot.bin
$systemdsystemunitdir/ihttpd.service
; do
106 inst_simple
/usr
/lib
/ihttpd
/${nc##*/} $nc
109 # Force load of ihttpd.service
110 ln -fs ..
/ihttpd.service
$initdir$systemdsystemunitdir/sysinit.target.wants
/
112 # Copy systemd-networkd config
113 for nc
in `ls /etc/systemd/network/`; do
114 inst_simple
/etc
/systemd
/network
/$nc
117 # Install resolv.conf as symlink
118 grep -vE '^($|#|nameserver 127.0.0.1|nameserver ::1)' /etc
/resolv.conf
> $initdir/etc
/resolv.conf
120 # Install in ihttpd.service.wants
122 ..
/systemd
-networkd.service \
123 $initdir$systemdsystemunitdir/ihttpd.service.wants
/
125 # Cleanup nsswitch.conf
126 perl
-pne 'undef $_ if /^(?:#|$)/;s/compat/files/;s/ ?(?:nis|wins|mdns4_minimal |mdns4)( )?/\1/g' \
127 -i "$initdir/etc/nsswitch.conf"
129 # Require root user and group for our ihttpd process
130 `egrep -q '^root:' $initdir/etc/group` || egrep '^root:' /etc
/group
>> "$initdir/etc/group"
131 `egrep -q '^root:' $initdir/etc/passwd` || egrep '^root:' /etc
/passwd
>> "$initdir/etc/passwd"
136 ln -fs ..
/..
/..
/run
/ihttpd
/log
/{http
,https
,child.
{askpassword
,ihttpd
},error
}.log
$initdir/var
/www
/html
/
145 $systemdsystemunitdir/basic.target.wants \
146 $systemdsystemunitdir/emergency.target.wants \
147 $systemdsystemunitdir/rescue.target.wants \
148 /usr
/lib
64/security \
149 /usr
/share
/terminfo
/x \
158 /etc
/pam.d
/system
-auth \
159 /etc
/profile.d
/*.sh \
160 /etc
/security
/limits.conf \
161 /etc
/security
/pam_env.conf \
165 /etc
/ssh
/ssh_config \
166 /etc
/ssh
/sshd_config \
167 /etc
/ssh
/ssh_host_
* \
168 /root
/.bash_profile \
174 /usr
/lib
64/security
/pam_cracklib.so \
175 /usr
/lib
64/security
/pam_deny.so \
176 /usr
/lib
64/security
/pam_env.so \
177 /usr
/lib
64/security
/pam_keyinit.so \
178 /usr
/lib
64/security
/pam_limits.so \
179 /usr
/lib
64/security
/pam_listfile.so \
180 /usr
/lib
64/security
/pam_nologin.so \
181 /usr
/lib
64/security
/pam_succeed_if.so \
182 /usr
/lib
64/security
/pam_systemd.so \
183 /usr
/lib
64/security
/pam_tcb.so \
185 /usr
/share
/terminfo
/x
/*
188 #perl -pne 's%^UsePAM yes$%UsePAM no%;s%^PermitRootLogin .*$%PermitRootLogin yes%' -i "$initdir/etc/ssh/sshd_config"
189 perl
-pne 's%^PermitRootLogin .*$%PermitRootLogin yes%' -i "$initdir/etc/ssh/sshd_config"
191 # Install debug sshd service
192 inst_simple
/usr
/lib
/ihttpd
/debug
-sshd.service
$initdir$systemdsystemunitdir/debug
-sshd.service
194 # Install in sysinit.target.wants
195 ln -fs ..
/debug
-sshd.service
$initdir$systemdsystemunitdir/sysinit.target.wants
/
197 # Install sshd user and group
198 `grep -Eq '^sshd:' $initdir/etc/passwd` || grep -E '^sshd:' /etc
/passwd
>> "$initdir/etc/passwd"
199 `grep -Eq '^sshd:' $initdir/etc/group` || grep -E '^sshd:' /etc
/group
>> "$initdir/etc/group"