Skip to content

Commit bf0cf01

Browse files
committed
Address comments
1 parent 66ab5a2 commit bf0cf01

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

patches/server/0806-Add-root-admin-user-detection.patch

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,37 +12,32 @@ Co-authored-by: Noah van der Aa <ndvdaa@gmail.com>
1212

1313
diff --git a/src/main/java/io/papermc/paper/util/ServerEnvironment.java b/src/main/java/io/papermc/paper/util/ServerEnvironment.java
1414
new file mode 100644
15-
index 0000000000000000000000000000000000000000..5ba45a071a5b7e9f2ef9f2dea7e07d74d83ccee4
15+
index 0000000000000000000000000000000000000000..0d8e415acb1e06532d9e1c2add576806b2aafdaa
1616
--- /dev/null
1717
+++ b/src/main/java/io/papermc/paper/util/ServerEnvironment.java
18-
@@ -0,0 +1,29 @@
18+
@@ -0,0 +1,24 @@
1919
+package io.papermc.paper.util;
2020
+
2121
+import com.sun.security.auth.module.NTSystem;
22+
+import com.sun.security.auth.module.UnixSystem;
2223
+import org.apache.commons.lang.SystemUtils;
2324
+
24-
+import java.io.IOException;
25-
+import java.util.Arrays;
25+
+import java.util.Set;
2626
+
2727
+public class ServerEnvironment {
28-
+ private static final boolean runningAsRootOrAdmin;
28+
+ private static final boolean RUNNING_AS_ROOT_OR_ADMIN;
29+
+ private static final String WINDOWS_HIGH_INTEGRITY_LEVEL = "S-1-16-12288";
2930
+
3031
+ static {
3132
+ if (SystemUtils.IS_OS_WINDOWS) {
32-
+ runningAsRootOrAdmin = Arrays.asList(new NTSystem().getGroupIDs()).contains("S-1-16-12288");
33+
+ RUNNING_AS_ROOT_OR_ADMIN = Set.of(new NTSystem().getGroupIDs()).contains(WINDOWS_HIGH_INTEGRITY_LEVEL);
3334
+ } else {
34-
+ boolean isRunningAsRoot;
35-
+ try (final var inputStream = Runtime.getRuntime().exec("id -u " + System.getProperty("user.name")).getInputStream()) {
36-
+ isRunningAsRoot = new String(inputStream.readAllBytes()).trim().equals("0");
37-
+ } catch (IOException ignored) {
38-
+ isRunningAsRoot = false;
39-
+ }
40-
+ runningAsRootOrAdmin = isRunningAsRoot;
35+
+ RUNNING_AS_ROOT_OR_ADMIN = new UnixSystem().getUid() == 0L;
4136
+ }
4237
+ }
4338
+
4439
+ public static boolean userIsRootOrAdmin() {
45-
+ return runningAsRootOrAdmin;
40+
+ return RUNNING_AS_ROOT_OR_ADMIN;
4641
+ }
4742
+}
4843
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java

0 commit comments

Comments
 (0)