anchor.diff:            then not modify any of the basic properties for the user account.
           ";
         };
  -      
  +
  +      isAlias = mkOption {
  +        type = types.bool;
  +        default = false;
  +        description = "If true, the UID of this user is not required to be unique and can thus alias another user.";
  +      };
  +
       };
   
       config = {
  
positive.code:   users = config.users;
  
    userOpts = { name, config, ... }: {
    
      options = {
      
        name = mkOption {
          type = with types; uniq string;
          description = "The name of the user account. If undefined, the name of the attribute set will be used.";
        };
        
        description = mkOption {
          type = with types; uniq string;
          default = "";
          description = "A short description of the user account.";
        };
        
        uid = mkOption {
          type = with types; uniq (nullOr int);
          default = null;
          description = "The account UID. If undefined, NixOS will select a free UID.";
        };
        
        group = mkOption {
          type = with types; uniq string;
          default = "nogroup";
          description = "The user's primary group.";
        };
        
        extraGroups = mkOption {
          type = types.listOf types.string;
          default = [];
          description = "The user's auxiliary groups.";
        };
        
        home = mkOption {
          type = with types; uniq string;
          default = "/var/empty";
          description = "The user's home directory.";
        };
        
        shell = mkOption {
          type = with types; uniq string;
          default = "/run/current-system/sw/sbin/nologin";
          description = "The path to the user's shell.";
        };
        
        createHome = mkOption {
          type = types.bool;
          default = false;
          description = "If true, the home directory will be created automatically.";
        };
        
        useDefaultShell = mkOption {
          type = types.bool;
          default = false;
          description = "If true, the user's shell will be set to <literal>users.defaultUserShell</literal>.";
        };
        
        password = mkOption {
          type = with types; uniq (nullOr string);
          default = null;
          description = "The user's password. If undefined, no password is set for the user.  Warning: do not set confidential information here because this data would be readable by all.  This option should only be used for public account such as guest.";
        };
        
        isSystemUser = mkOption {
          type = types.bool;
          default = true;
          description = "Indicates if the user is a system user or not.";
        };
        
        createUser = mkOption {
          type = types.bool;
          default = true;
  
negative.code:                     --home "$home" \
                      --shell "$shell" \
                      ''${createHome:+--create-home} \
                      ''${isAlias:+--non-unique} \
                      "$name"
                  if test "''${password:0:1}" = 'X'; then
                      (echo "''${password:1}"; echo "''${password:1}") | ${pkgs.shadow}/bin/passwd "$name"
  