summaryrefslogtreecommitdiff
path: root/gnu/tests/ssh.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-05-09 12:02:20 +0200
committerLudovic Courtès <ludo@gnu.org>2019-05-09 12:11:36 +0200
commite6b1a2248ff164e14d1b2f495224faf8a8326142 (patch)
tree33d98a5b9dd782965e84e8054dc7621779c347a2 /gnu/tests/ssh.scm
parentaf55ca481d9e6c1d1e06632f96d550b42f33210f (diff)
services: Log-in services now require "pam_loginuid".
Fixes <https://bugs.gnu.org/35553>. Reported by Bruno Haible <bruno@clisp.org>. * gnu/services/base.scm (login-pam-service): Pass #:login-uid? #t to 'unix-pam-service'. * gnu/services/ssh.scm (lsh-pam-services, openssh-pam-services): Likewise. * gnu/services/xorg.scm (slim-pam-service): Likewise. (gdm-pam-service): Likewise for "gdm-autologin" and "gdm-password". * gnu/tests/base.scm (run-basic-test)["getlogin on tty1"]: New test. * gnu/tests/ssh.scm (run-ssh-test): Add #:test-getlogin? parameter. ["getlogin"]: New test. (%test-dropbear): Pass #:test-getlogin? #f.
Diffstat (limited to 'gnu/tests/ssh.scm')
-rw-r--r--gnu/tests/ssh.scm28
1 files changed, 25 insertions, 3 deletions
diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm
index e5cd439cdf9..a74227ea4a3 100644
--- a/gnu/tests/ssh.scm
+++ b/gnu/tests/ssh.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> 3;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
4;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> 4;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
5;;; 5;;;
@@ -31,7 +31,8 @@
31 #:export (%test-openssh 31 #:export (%test-openssh
32 %test-dropbear)) 32 %test-dropbear))
33 33
34(define* (run-ssh-test name ssh-service pid-file #:key (sftp? #f)) 34(define* (run-ssh-test name ssh-service pid-file
35 #:key (sftp? #f) (test-getlogin? #t))
35 "Run a test of an OS running SSH-SERVICE, which writes its PID to PID-FILE. 36 "Run a test of an OS running SSH-SERVICE, which writes its PID to PID-FILE.
36SSH-SERVICE must be configured to listen on port 22 and to allow for root and 37SSH-SERVICE must be configured to listen on port 22 and to allow for root and
37empty-password logins. 38empty-password logins.
@@ -54,10 +55,12 @@ When SFTP? is true, run an SFTP server test."
54 (use-modules (gnu build marionette) 55 (use-modules (gnu build marionette)
55 (srfi srfi-26) 56 (srfi srfi-26)
56 (srfi srfi-64) 57 (srfi srfi-64)
58 (ice-9 textual-ports)
57 (ice-9 match) 59 (ice-9 match)
58 (ssh session) 60 (ssh session)
59 (ssh auth) 61 (ssh auth)
60 (ssh channel) 62 (ssh channel)
63 (ssh popen)
61 (ssh sftp)) 64 (ssh sftp))
62 65
63 (define marionette 66 (define marionette
@@ -147,6 +150,20 @@ root with an empty password."
147 (and (zero? (channel-get-exit-status channel)) 150 (and (zero? (channel-get-exit-status channel))
148 (wait-for-file "/root/witness" marionette)))))) 151 (wait-for-file "/root/witness" marionette))))))
149 152
153 ;; Check whether the 'getlogin' procedure returns the right thing.
154 (unless #$test-getlogin?
155 (test-skip 1))
156 (test-equal "getlogin"
157 '(0 "root")
158 (call-with-connected-session/auth
159 (lambda (session)
160 (let* ((pipe (open-remote-input-pipe
161 session
162 "guile -c '(display (getlogin))'"))
163 (output (get-string-all pipe))
164 (status (channel-get-exit-status pipe)))
165 (list status output)))))
166
150 ;; Connect to the guest over SFTP. Make sure we can write and 167 ;; Connect to the guest over SFTP. Make sure we can write and
151 ;; read a file there. 168 ;; read a file there.
152 (unless #$sftp? 169 (unless #$sftp?
@@ -217,4 +234,9 @@ root with an empty password."
217 (dropbear-configuration 234 (dropbear-configuration
218 (root-login? #t) 235 (root-login? #t)
219 (allow-empty-passwords? #t))) 236 (allow-empty-passwords? #t)))
220 "/var/run/dropbear.pid")))) 237 "/var/run/dropbear.pid"
238
239 ;; XXX: Our Dropbear is not built with PAM support.
240 ;; Even when it is, it seems to ignore the PAM
241 ;; 'session' requirements.
242 #:test-getlogin? #f))))