繁体   English   中英

检查用户是否是java应用程序中的root用户

[英]Check if a user is root in a java application

如何验证用户是否是java应用程序的root用户?

谢谢

Process p = Runtime.getRuntime().exec("id -u")

请记住,系统上的“root”用户可能不会被称为root (尽管很少更改它),并且也可以将其别名为另一个用户名。 如果当前用户是root用户,则输出将为0

简单。 只是用

System.getProperty("user.name")

运行本机命令? 像whoami

你可以打电话

  Process p = Runtime.getRuntime.exec("whoami")

方法。 然后你可以处理p的stdout来读取命令的输出。

检查一下: 在java中获取登录用户名

String userName = System.getProperty("user.name");
Process p = Runtime.getRuntime().exec("groups " + userName);
String output = read(p.getInputStream());
String error = read(p.getErrorStream());

这是一个读取功能:

public static String read(InputStream input) throws IOException {
    try (BufferedReader buffer = new BufferedReader(new InputStreamReader(input))) {
        return buffer.lines().collect(Collectors.joining("\n"));
    }
}

只是“另一个”修改后的解决方

最好的方法是跑步

 Process p = Runtime.getRuntime.exec("groups `whoaim`"); 

并尝试解析字符串以获取组调用root。 您的JVM进程可以由用户运行,而不是调用root,但是调度程序,但该用户可以在root组中,并且您具有root权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM