列出所有可能的所有者和组。

3

使用Java或bash,如何列出所有可能的所有者和组。

例如,如果我在一个 shell 中执行以下命令,其所有者显然是错误的:

chown ljafdj ~/Desktop/test.txt

我的输出结果是

chown: 无效的用户: `ljafdj'

chgrp也是同样的情况

那么我该如何使用Bash或Java获取有效用户列表?

这是为了一个Android应用程序,我需要向用户显示可能性,以便他们可以在需要时进行更改。


1
https://github.com/keesj/gomo/wiki/AndroidUserAndGroups - eboix
看起来非常有前途,谢谢你的关注,我现在正在查看它。 - user577732
等一下。你确定要使用手机硬编码的组吗?使用AccountManager,你可以获取他们的username@gmail.com和其他账户......http://developer.android.com/reference/android/accounts/AccountManager.html#getAccounts() - eboix
2个回答

2

不要混淆Android账户和Linux用户/组。它们之间没有关联。 - Pointer Null

1
使用Shell(“bash”):
对于用户:
getent passwd

对于群组:

getent group

只需解析第一个字段(冒号前面的部分)即可获取实际名称。


你看过/etc/nsswitch.conf了吗?它定义了哪些是用户名称和组的有效来源?(也就是说,如果这样的文件存在) - fge
抱歉 - 我不太相信你的“android”标签,因为这是整个问题中唯一提到Android的地方。 :-) - ziesemer
抱歉,我应该更详细地说明这是针对Android的。@fge,我的设备上不存在那个文件,我会在设备上搜索它,但它不在你给出的路径中。 - user577732
我建议您搜索Android查找其用户名和组的方式:它似乎没有使用Linux发行版上使用的标准机制。碰巧,您是否有/etc/pam.d目录?也许查看此目录中的文件会给您一些提示... - fge
@eboix 我的手机上似乎也没有system/core/include/private/android_filesystem_config.h文件 :( 编辑:再次阅读,我发现它在libraries中,所以我将不得不硬编码它们,然后读取每个应用程序的用户ID,唉,但非常感谢提供链接。 - user577732
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接