![](/img/trans.png)
[英]Check for user logged in with Active Directory in Java application
[英]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.