Wie verweise ich in einem Nix-Ausdruck auf die Eigenschaften eines anderen Benutzers?

Wie verweise ich in einem Nix-Ausdruck auf die Eigenschaften eines anderen Benutzers?

startGidIch möchte root's auf die GID und UID eines anderen Benutzers setzen startUid. Wie mache ich das?ohne sie fest zu codieren?Ich habe mehrere Variationen dazu ausprobiert:

  users.users = {
    root = {
      subGidRanges = [
        {
          count = 1;
          startGid = users.users.username.group;
        }
      ];
      subUidRanges = [
        {
          count = 1;
          startUid = config.ids.uids.username;
        }
      ];
    };
    username = {
      isNormalUser = true;
    };
  };

Antwort1

Das scheint zu funktionieren:

  users.users = {
    root = {
      subGidRanges = [
        {
          count = 1;
          startGid = config.ids.gids."${config.users.users.username.group}";
        }
      ];
      subUidRanges = [
        {
          count = 1;
          startUid = config.users.users.username.uid;
        }
      ];
    };
    username = {
      isNormalUser = true;
      uid = 1000;
    };
  };

Merkwürdigerweise config.users.users.username.groupscheint das Problem problemlos zu lösen, obwohl ich es nicht explizit festgelegt habe. Um config.users.users.username.uiddas Problem zu beheben, musste ich Folgendes festlegen:

Fehler: Der Optionswert users.users.root.subUidRanges.[definition 2-entry 1].startUid' in/etc/nixos/common.nix‘ ist nicht vom Typ „vorzeichenbehaftete Ganzzahl“.

verwandte Informationen