Nix式で他のユーザーのプロパティを参照する方法は?

Nix式で他のユーザーのプロパティを参照する方法は?

startGidrootや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'は「符号付き整数」型ではありません。

おすすめ記事