code: func AddNamespaceRangesUser(name string) (int, int, error) {
  	if err := addUser(name); err != nil {
  		return -1, -1, fmt.Errorf("Error adding user %q: %v", name, err)
  	}
  
  	// Query the system for the created uid and gid pair
  	out, err := execCmd("id", name)
  	if err != nil {
  		return -1, -1, fmt.Errorf("Error trying to find uid/gid for new user %q: %v", name, err)
  	}
  	matches := idOutRegexp.FindStringSubmatch(strings.TrimSpace(string(out)))
  	if len(matches) != 3 {
  		return -1, -1, fmt.Errorf("Can't find uid, gid from `id` output: %q", string(out))
  	}
  	uid, err := strconv.Atoi(matches[1])
  	if err != nil {
  		return -1, -1, fmt.Errorf("Can't convert found uid (%s) to int: %v", matches[1], err)
  	}
  	gid, err := strconv.Atoi(matches[2])
  	if err != nil {
  		return -1, -1, fmt.Errorf("Can't convert found gid (%s) to int: %v", matches[2], err)
  	}
  
  	// Now we need to create the subuid/subgid ranges for our new user/group (system users
  	// do not get auto-created ranges in subuid/subgid)
  
  	if err := createSubordinateRanges(name); err != nil {
  		return -1, -1, fmt.Errorf("Couldn't create subordinate ID ranges: %v", err)
  	}
  	return uid, gid, nil
  }
docs: // AddNamespaceRangesUser takes a username and uses the standard system
  // utility to create a system user/group pair used to hold the
  // /etc/sub{uid,gid} ranges which will be used for user namespace
  // mapping ranges in containers.