Nix 式で他のユーザーのプロパティを参照するにはどうすればよいですか?

Nix 式で他のユーザーのプロパティを参照するにはどうすればよいですか?

startGidルートのGIDとUIDを別のユーザーのGIDとUIDに設定したいのですがstartUid、どうすればいいでしょうか?ハードコーディングせずに?私は以下のいくつかのバリエーションを試しました:

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

答え1

これは動作するようです:

  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;
    };
  };

不思議なことに、config.users.users.username.group明示的に設定していないのに問題なく解決されるようですが、config.users.users.username.uidこの問題を解決するには設定する必要がありました。

エラー: オプション値users.users.root.subUidRanges.[definition 2-entry 1].startUid' in/etc/nixos/common.nix は「符号付き整数」型ではありません。

関連情報