diff options
Diffstat (limited to 'EndoForge/Makefile')
-rw-r--r-- | EndoForge/Makefile | 67 |
1 files changed, 32 insertions, 35 deletions
diff --git a/EndoForge/Makefile b/EndoForge/Makefile index de5d480..a63fa31 100644 --- a/EndoForge/Makefile +++ b/EndoForge/Makefile | |||
@@ -16,15 +16,14 @@ endif | |||
16 | 16 | ||
17 | HAVE_ROOT != $(SUDO) true && echo y || true | 17 | HAVE_ROOT != $(SUDO) true && echo y || true |
18 | 18 | ||
19 | ROOT_INSTALL = $(SUDO) $(INSTALL) | ||
20 | USER != echo "$${SUDO_USER:-$$(id -un)}" | 19 | USER != echo "$${SUDO_USER:-$$(id -un)}" |
21 | SSH_CONFIG_DIR = /etc/ssh | ||
22 | SSHD_CONFIG_DIR = $(SSH_CONFIG_DIR)/sshd_config.d | ||
23 | SSH_LIB_DIR = /usr/lib/ssh | ||
24 | USER_SSH_CONFIG_DIR = ~$(USER)/.ssh | ||
25 | 20 | ||
26 | BROWSER != 2>/dev/null which xdg-open || which w3m || which links || which elinks | 21 | BROWSER != 2>/dev/null which xdg-open || which w3m || which links || which elinks |
27 | 22 | ||
23 | SRC = src | ||
24 | SOURCE_NAMES = AnonymousAccessCommand sshd_config | ||
25 | SOURCES = $(addprefix $(SRC), $(SOURCE_NAMES)) | ||
26 | |||
28 | .PHONY: install install-user install-user-config install-root shared doc test | 27 | .PHONY: install install-user install-user-config install-root shared doc test |
29 | 28 | ||
30 | doc: README.html | 29 | doc: README.html |
@@ -33,46 +32,44 @@ doc: README.html | |||
33 | shared: install | 32 | shared: install |
34 | git config core.self-forge true | 33 | git config core.self-forge true |
35 | 34 | ||
36 | SRC = src | ||
37 | SOURCE_NAMES = AnonymousAccessCommand anonymous-access.conf AuthorizedKeysCommand sshd_config | ||
38 | SOURCES = $(addprefix $(SRC), $(SOURCE_NAMES)) | ||
39 | |||
40 | KEYTYPE = ed25519 | ||
41 | define EDIT_SSHD | ||
42 | sed \ | ||
43 | -e 's?ForceCommand=$$?&$(HOME)/.ssh/AnonymousAccessCommand?' \ | ||
44 | -e 's?AuthorizedKeysCommandUser=$$?&$(USER)?' \ | ||
45 | -e 's?HostKey=$$?&$(HOME)/.ssh/id_$(KEYTYPE)?' \ | ||
46 | -e 's?PidFile=$$?&$(HOME)/.ssh/sshd.pid?' | ||
47 | endef | ||
48 | |||
49 | install: $(if $(HAVE_ROOT), install-root, install-user) | 35 | install: $(if $(HAVE_ROOT), install-root, install-user) |
50 | 36 | ||
51 | install-user-config: | 37 | install-user-config: |
52 | $(INSTALL) -d ~/.ssh | 38 | install -d ~/.ssh |
53 | $(INSTALL) -t ~/.ssh $(SRC)/AnonymousAccessCommand | 39 | install -t ~/.ssh $(SRC)/AnonymousAccessCommand |
54 | 40 | ||
55 | 41 | install-user: install-user-config build/sshd_config ~/.ssh/id_ed25519 | |
56 | ~/.ssh/id_ed25519: | 42 | $(INSTALL) -m0644 -t ~/.ssh build/sshd_config |
57 | ssh-keygen -t ed25519 -P '' -f $@ | ||
58 | |||
59 | install-user: install-user-config ~/.ssh/id_ed25519 | ||
60 | $(EDIT_SSHD) < $(SRC)/sshd_config > ~/.ssh/sshd_config.tmp | ||
61 | $(MV) ~/.ssh/sshd_config.tmp ~/.ssh/sshd_config | ||
62 | $(INSTALL) -m0644 -t ~/.config/systemd/user $(SRC)/sshd.service | 43 | $(INSTALL) -m0644 -t ~/.config/systemd/user $(SRC)/sshd.service |
63 | systemctl --user daemon-reload | 44 | systemctl --user daemon-reload |
64 | systemctl --user enable sshd | 45 | systemctl --user enable sshd |
65 | systemctl --user restart sshd | 46 | systemctl --user restart sshd |
66 | 47 | ||
67 | install-root: install-user-config | 48 | install-root: install-user-config |
68 | $(ROOT_INSTALL) -d "$(SSH_CONFIG_DIR)" "$(SSHD_CONFIG_DIR)" "$(SSH_LIB_DIR)" || true | 49 | $(SUDO) make -C ../OpenSSH_Anonymous_Access install |
69 | $(ROOT_INSTALL) -m0644 -t "$(SSHD_CONFIG_DIR)" $(SRC)/anonymous-access.conf || true | ||
70 | $(ROOT_INSTALL) -t "$(SSH_LIB_DIR)" $(SRC)/AuthorizedKeysCommand || true | ||
71 | [ -e /etc/ssh/AuthorizedKeysCommand ] || $(SUDO) ln -s -t /etc/ssh "$(SSH_LIB_DIR)"/AuthorizedKeysCommand | ||
72 | $(SUDO) systemctl reload sshd | ||
73 | |||
74 | README.html: README.md | ||
75 | pandoc -s --css "$(SRC)"/style.css -t html $< -o $@ | ||
76 | 50 | ||
77 | test: | 51 | test: |
78 | make -C test | 52 | make -C test |
53 | |||
54 | build/sshd_config: $(SRC)/sshd_config Makefile | ||
55 | $(edit_sshd) < "$<" > "$@".tmp | ||
56 | mv "$@".tmp "$@" | ||
57 | |||
58 | KEYTYPE = ed25519 | ||
59 | HOST_KEY_FILE = $(HOME)/.ssh/id_$(KEYTYPE) | ||
60 | SSHD_PID_FILE = $(HOME)/.ssh/sshd.pid | ||
61 | FORCE_COMMAND = $(HOME)/.ssh/AnonymousAccessCommand | ||
62 | |||
63 | $(HOST_KEY_FILE): | ||
64 | ssh-keygen -t "$(KEYTYPE)" -P '' -f "$@" | ||
65 | |||
66 | define edit_sshd | ||
67 | sed \ | ||
68 | -e 's?ForceCommand=$$?&$(FORCE_COMMAND)?' \ | ||
69 | -e 's?AuthorizedKeysCommandUser=$$?&$(USER)?' \ | ||
70 | -e 's?HostKey=$$?&$(HOST_KEY_FILE)?' \ | ||
71 | -e 's?PidFile=$$?&$(SSHD_PID_FILE)?' | ||
72 | endef | ||
73 | |||
74 | README.html: README.md | ||
75 | pandoc -s --css "$(SRC)"/style.css -t html $< -o $@ | ||