1{ lib, ... }:
2{
3 name = "user-home-mode";
4 meta = with lib.maintainers; {
5 maintainers = [ fbeffa ];
6 };
7
8 nodes.machine = {
9 users.users.alice = {
10 initialPassword = "pass1";
11 isNormalUser = true;
12 };
13 users.users.bob = {
14 initialPassword = "pass2";
15 isNormalUser = true;
16 homeMode = "750";
17 };
18 users.users.carol = {
19 initialPassword = "pass3";
20 isNormalUser = true;
21 createHome = true;
22 home = "/users/carol";
23 };
24 };
25
26 testScript = ''
27 machine.wait_for_unit("multi-user.target")
28 machine.wait_for_unit("getty@tty1.service")
29 machine.wait_until_tty_matches("1", "login: ")
30 machine.send_chars("alice\n")
31 machine.wait_until_tty_matches("1", "Password: ")
32 machine.send_chars("pass1\n")
33 machine.succeed('[ "$(stat -c %a /home/alice)" == "700" ]')
34 machine.succeed('[ "$(stat -c %a /home/bob)" == "750" ]')
35 machine.succeed('[ "$(stat -c %a /users)" == "755" ]')
36 machine.succeed('[ "$(stat -c %a /users/carol)" == "700" ]')
37 '';
38}