有没有办法使用java在Linux机器上获取用户的UID?我知道System.getProperty("user.name");
方法,但它返回用户名,我正在寻找 UID。
问问题
18631 次
5 回答
13
您可以执行id
命令并读取结果。
例如:
$ id -u jigar
输出:
1000
你可以通过执行命令
try {
String userName = System.getProperty("user.name");
String command = "id -u "+userName;
Process child = Runtime.getRuntime().exec(command);
// Get the input stream and read from it
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
process((char)c);
}
in.close();
} catch (IOException e) {
}
于 2011-01-25T16:38:12.863 回答
7
实际上有一个api。无需调用 shell 命令或使用 JNI,只需
def uid = new com.sun.security.auth.module.UnixSystem().getUid()
于 2019-03-11T07:25:14.930 回答
6
如果您可以影响 Java VM 的启动方式,则可以将uid作为用户属性移交:
java -Duserid=$(id -u) CoolApp
在您的 CoolApp 中,您可以简单地通过以下方式获取 ID:
System.getProperty("userid");
问候,
马丁。
于 2011-01-25T17:00:14.367 回答
1
只需打开/etc/passwd
文件并搜索用户等于System.getProperty("user.name")
.
于 2011-01-25T17:03:32.103 回答
1
另一种选择是使用 JNI 调用 getuid()。
于 2011-01-25T17:42:14.890 回答