in bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/linux/LinuxAccountUtils.java [100:168]
public static void userAdd(
String user,
String group,
String uid,
Collection<String> groups,
String home,
String comment,
String password,
Boolean system) {
Objects.requireNonNull(user);
Objects.requireNonNull(group);
if (!isGroupExists(group)) {
groupAdd(group);
}
if (!CollectionUtils.isEmpty(groups)) {
for (String g : groups) {
groupAdd(g);
}
}
List<String> builderParameters = new ArrayList<>();
if (isUserExists(user)) {
builderParameters.add(USERMOD);
} else {
builderParameters.add(USERADD);
builderParameters.add("-m");
}
if (StringUtils.isNoneBlank(home)) {
builderParameters.add("-d");
builderParameters.add(home);
}
if (StringUtils.isNoneBlank(password)) {
builderParameters.add("-p");
builderParameters.add(password);
}
if (StringUtils.isNoneBlank(comment)) {
builderParameters.add("-c");
builderParameters.add(comment);
}
if (system) {
builderParameters.add("--system");
}
if (StringUtils.isNoneBlank(uid)) {
builderParameters.add("-u");
builderParameters.add(uid);
}
builderParameters.add("-g");
builderParameters.add(group);
if (!CollectionUtils.isEmpty(groups)) {
builderParameters.add("-G");
builderParameters.add(String.join(",", groups));
}
builderParameters.add(user);
try {
ShellResult shellResult = sudoExecCmd(builderParameters);
if (shellResult.getExitCode() != MessageConstants.SUCCESS_CODE) {
throw new StackException(shellResult.getErrMsg());
}
} catch (IOException e) {
throw new StackException(e);
}
}