diff --git a/challenge.yml b/challenge.yml index 293d931..f112706 100644 --- a/challenge.yml +++ b/challenge.yml @@ -1,6 +1,6 @@ init: - - nemunaire/challenge:83269c87e08c786a8f865882bc34bd38f8d8b120 - - nemunaire/adlin-shadow-up:c5e6c7f7afff788f6429a0ad1a7be982a47d5410 + - nemunaire/challenge:64dfdf00665351139e74647ab57b12008a7ac87b + - nemunaire/adlin-shadow-up:b368191dfd79645f3eca099a00bef8dfcdb7a2e9 files: - path: etc/motd @@ -72,25 +72,6 @@ files: - path: init source: pkg/challenge/init mode: "0755" - - path: root/.ash_history - contents: | - cat my_ip - ip a - man 6 adlin - mode: "0644" - - path: etc/profile.d/cmd-colors.sh - contents: | - alias ip="ip -c" - alias ls="ls -c" - - export LESS_TERMCAP_mb=$(printf "\e[1;37m") - export LESS_TERMCAP_md=$(printf "\e[1;36m") - export LESS_TERMCAP_me=$(printf "\e[0m") - export LESS_TERMCAP_se=$(printf "\e[0m") - export LESS_TERMCAP_so=$(printf "\e[1;47;30m") - export LESS_TERMCAP_ue=$(printf "\e[0m") - export LESS_TERMCAP_us=$(printf "\e[1;32m") - mode: "0644" - path: sbin/fakelogin contents: | #!/bin/sh diff --git a/login.yml b/login.yml index eaa47bb..4281c04 100644 --- a/login.yml +++ b/login.yml @@ -1,6 +1,6 @@ init: - busybox - - nemunaire/adlin-login-app:8b08f3038128bacbbc939fc7a7a460723d80c3d4 + - nemunaire/adlin-login-app:4862e66e6cbd283342632117f6be0bcf88db3d17 files: - path: /etc/ssl/certs/ISRG_Root_X1.pem diff --git a/pkg/challenge/Dockerfile b/pkg/challenge/Dockerfile index 0c7752c..df82476 100644 --- a/pkg/challenge/Dockerfile +++ b/pkg/challenge/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.17 AS mirror +FROM alpine:edge AS mirror RUN mkdir -p /out/etc/apk/ && \ cp /etc/apk/repositories /out/etc/apk/ && \ @@ -34,7 +34,6 @@ RUN apk add --no-cache --initdb -p /out \ kbd-bkeymaps \ kbd-doc \ kbd-vlock \ - less \ losetup \ mandoc \ man-pages \ diff --git a/pkg/challenge/init b/pkg/challenge/init index 960a92d..73fa17d 100755 --- a/pkg/challenge/init +++ b/pkg/challenge/init @@ -3,9 +3,7 @@ mount -t proc proc /proc mount -t sysfs sysfs /sys -rm /dev/null; mknod -m 0666 /dev/null c 1 3 -rm /dev/zero; mknod -m 0666 /dev/zero c 1 5 - +/bin/busybox --install -s ln -sf ssmtp /usr/sbin/sendmail mdev -s @@ -66,6 +64,9 @@ done /usr/bin/setsid /bin/shadow-up > /dev/null 2> /var/log/sup.log & # Prepare bonus 2 +rm /dev/null; mknod -m 0666 /dev/null c 1 3 +rm /dev/zero; mknod -m 0666 /dev/zero c 1 5 + mkdir -p /mnt for l in a b c d e f g h i j k l m n o p q r s t u v w x y z zz; do diff --git a/pkg/login-app/Dockerfile b/pkg/login-app/Dockerfile index 9172908..e4c60e6 100644 --- a/pkg/login-app/Dockerfile +++ b/pkg/login-app/Dockerfile @@ -11,8 +11,6 @@ ADD cmd ./ RUN go build -v -ldflags="-s -w" -tags netgo -o login-app -RUN apk add --no-cache kbd - FROM alpine:3.17 MAINTAINER Pierre-Olivier Mercier @@ -23,7 +21,5 @@ COPY --from=gobuild /go/src/login-app/login-app /bin/login-app COPY --from=gobuild /usr/share/udhcpc/default.script /usr/share/udhcpc/default.script COPY --from=gobuild /etc/terminfo/l/linux /etc/terminfo/l/linux COPY --from=gobuild /usr/share/terminfo/l/linux /usr/share/terminfo/l/linux -COPY --from=gobuild /usr/bin/loadkeys /usr/bin/loadkeys -COPY --from=gobuild /usr/share/keymaps/xkb/fr.map.gz /usr/share/keymaps/xkb/us.map.gz /usr/share/keymaps/xkb/fr-bepo.map.gz /usr/share/keymaps/xkb/us-colemak.map.gz /usr/share/keymaps/xkb/ ENTRYPOINT ["/bin/login-app"] diff --git a/pkg/login-app/cmd/dialog-login.go b/pkg/login-app/cmd/dialog-login.go index c4747bd..d6138c1 100644 --- a/pkg/login-app/cmd/dialog-login.go +++ b/pkg/login-app/cmd/dialog-login.go @@ -14,9 +14,6 @@ func CreateLoginDialog(app *tview.Application, next func(username, password stri form.GetFormItemByLabel("Login").(*tview.InputField).GetText(), form.GetFormItemByLabel("Password").(*tview.InputField).GetText(), ) - }). - AddButton("Settings...", func() { - goToSettings(app) }) form.SetBorder(true).SetTitle(" SRS Adlin - Login ") diff --git a/pkg/login-app/cmd/dialog-settings.go b/pkg/login-app/cmd/dialog-settings.go deleted file mode 100644 index 54bc619..0000000 --- a/pkg/login-app/cmd/dialog-settings.go +++ /dev/null @@ -1,42 +0,0 @@ -package main - -import ( - "os/exec" - - "github.com/rivo/tview" -) - -var LastKeymap = 0 - -func goToSettings(app *tview.Application) { - var form *tview.Form - form = tview.NewForm(). - AddDropDown("Keymap", []string{"QWERTY us", "AZERTY fr", "BÉPO", "Colemak us"}, LastKeymap, nil). - AddButton(" Save config ", func() { - if kbmap, _ := form.GetFormItemByLabel("Keymap").(*tview.DropDown).GetCurrentOption(); LastKeymap != kbmap { - file := "/usr/share/keymaps/xkb/" - - switch kbmap { - case 1: - file += "fr.map.gz" - case 2: - file += "fr-bepo.map.gz" - case 3: - file += "us-colemak.map.gz" - default: - file += "us.map.gz" - } - - exec.Command("/usr/bin/loadkeys", file).Run() - LastKeymap = kbmap - } - askLogin(app) - }) - form.GetFormItemByLabel("Keymap").(*tview.DropDown).SetFieldWidth(25) - form.SetBorder(true).SetTitle(" SRS Adlin - Settings ") - - app.SetRoot(modal(form, 25, 7), true) - app.SetFocus(form) - - return -} diff --git a/pkg/login-app/cmd/dialog-uefi.go b/pkg/login-app/cmd/dialog-uefi.go index 9d97e25..3ec4528 100644 --- a/pkg/login-app/cmd/dialog-uefi.go +++ b/pkg/login-app/cmd/dialog-uefi.go @@ -6,7 +6,7 @@ import ( func CreateUEFIDialog(app *tview.Application, next func()) { modal := tview.NewModal(). - SetText("This machine does not boot in UEFI mode!\nYou should reboot now, enter UEFI Setup (F2) and disable Legacy boot. Or choose another machine, that boot in UEFI."). + SetText("Not UEFI boot\nYou should reboot, enter UEFI Setup (F2) and disable Legacy boot"). AddButtons([]string{"Reboot", "Ignore"}). SetDoneFunc(func(buttonIndex int, buttonLabel string) { if buttonLabel == "Reboot" { diff --git a/pkg/login-validator/cmd/main.go b/pkg/login-validator/cmd/main.go index b13c5a6..3d399e5 100644 --- a/pkg/login-validator/cmd/main.go +++ b/pkg/login-validator/cmd/main.go @@ -100,7 +100,7 @@ func main() { log.Println("Registering handlers...") mux := http.NewServeMux() - mux.Handle("/login", &lc) + mux.Handle("/login", lc) mux.HandleFunc("/logout", logout) mux.HandleFunc("/passwd", passwd) http.HandleFunc("/", mux.ServeHTTP) @@ -119,8 +119,6 @@ mloop: log.Println("Reloading students files...") if lc.students, err = readStudentsList(studentsFile); err != nil { log.Println("Error during students.csv reload:", err) - } else { - log.Printf("Students reloaded: %d students allowed to login", len(lc.students)) } case syscall.SIGTERM, syscall.SIGINT: break mloop diff --git a/pkg/shadow-up/Dockerfile b/pkg/shadow-up/Dockerfile index 7856e0f..5814f81 100644 --- a/pkg/shadow-up/Dockerfile +++ b/pkg/shadow-up/Dockerfile @@ -12,7 +12,7 @@ ADD cmd ./ RUN go build -v -ldflags="-s -w" -tags netgo -o shadow-up -FROM scratch +FROM alpine:3.17 MAINTAINER Pierre-Olivier Mercier COPY --from=gobuild /go/src/shadow-up/shadow-up /bin/shadow-up diff --git a/server.yml b/server.yml index a89af80..0793a7e 100644 --- a/server.yml +++ b/server.yml @@ -153,7 +153,7 @@ services: command: ["/bin/arp-spoofer", "-iface=br-ext", "-ip-spoof=172.17.0.15"] - name: login-validator - image: nemunaire/adlin-login-validator:277f96ed66533497364804a551c91f1ffeafd40d + image: nemunaire/adlin-login-validator:a74d2aa0973c54ee79fb71211327f67e60537192 # command: ["/bin/login-validator", "-bind=:8081", "-auth=ldap", "-ldaphost=auth.cri.epita.net", "-ldapport=636", "-ldaptls", "-ldapbase=dc=epita,dc=net"] command: ["/bin/login-validator", "-bind=:8081", "-auth=krb5", "-krb5realm=CRI.EPITA.FR"] # command: ["/bin/login-validator", "-bind=:8081", "-auth=fwd", "-fwduri=https://adlin.nemunai.re/auth"] diff --git a/subject/adlin.6.md b/subject/adlin.6.md index 6c5b7dc..9279b6a 100644 --- a/subject/adlin.6.md +++ b/subject/adlin.6.md @@ -201,27 +201,27 @@ aux prochains TP. # HISTORIQUE -*2023* - Sixième édition du cours à destination des SRS 2024. +2023 - Sixième édition du cours à destination des SRS 2024. Immersion encore plus grande dans le SI ? -*2022* - Cinquième édition du cours à destination des SRS 2023. +2022 - Cinquième édition du cours à destination des SRS 2023. Travail sur le réalisme des exercices. -*2021* - Quatrième édition du cours à destination des SRS 2022. +2021 - Quatrième édition du cours à destination des SRS 2022. Introduction de références à Matrix. -*2020* - Troisième édition du cours à destination des SRS 2021. +2020 - Troisième édition du cours à destination des SRS 2021. Des étudiants avec involontairement de bonnes idées d'exercices supplémentaires. -*2019* - Deuxième édition du cours à destination des SRS 2020. +2019 - Deuxième édition du cours à destination des SRS 2020. Le chaos s'est un peu trop invité. -*2018* - Première édition du cours à destination des SRS 2019. +2018 - Première édition du cours à destination des SRS 2019. Oops la salle machine...