Nix 표현식에서 다른 사용자의 속성을 참조하는 방법은 무엇입니까?

Nix 표현식에서 다른 사용자의 속성을 참조하는 방법은 무엇입니까?

startGid루트 와 startUid다른 사용자의 GID 및 UID를 설정하고 싶습니다 . 내가 이걸 어떻게 할 수 있지?하드코딩할 필요가 없나요?나는 다음과 같은 몇 가지 변형을 시도했습니다.

  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'는 '부호 있는 정수' 유형이 아닙니다.

관련 정보