【问题标题】:How to get list of users not in a particular group - unix aix如何获取不在特定组中的用户列表 - unix aix
【发布时间】:2015-10-06 23:53:26
【问题描述】:

我正在尝试检索不存在于特定组中的用户列表。

我们正在尝试通过 unix AIX 服务器使用用户凭据验证应用程序,并且用户应该存在于特定组中。现在,我们需要获取不在组中的用户列表(用于我们在各种测试场景中的测试)。

我尝试了以下命令来列出组中的用户。

"lsgroup -a 用户组名"

请帮我如何使用NOT!上述命令的操作员,或者让我知道是否有任何其他方法可以让用户不在组中。

--苏利亚

【问题讨论】:

  • 您是否有要检查的用户列表,或者您是否使用服务器上的完整用户 ID 列表作为输入?
  • 您好 acer123,我没有群组用户列表。如果我尝试列出所有用户,结果太大而无法比较。
  • 我下面的回答解决了您的问题吗?

标签: unix aix


【解决方案1】:

最简单的方法是将几个命令串在一起。以下示例将列出不在特定组中的所有用户。

lsuser -a groups ALL | grep -v $GROUP |awk '{print $1}'|sort

【讨论】:

  • 它不工作。它将 grep 命令的使用模式列为“用法:grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [- insvxbhwyu] [-p[parasep]] -e pattern_list..."
  • 我想要所有不属于“XYZ”组的用户。按照您的命令,我将命令设为 lsuser -a groups ALL | grep -v $XYZ |awk '{print $1}'|sort 如果我以正确的方式给出命令,请告诉我
  • 请给我以下命令的输出:which grep
  • "/usr/bin/grep" 这是输出。还有其他选项可以列出用户吗?请帮忙
  • $GROUP 是一个变量。你不用输入。你输入你感兴趣的实际组。所以,一个例子是:lsuser -a groups ALL | grep -v 员工 | awk '{打印 $1}' |排序
【解决方案2】:

我希望这对你有帮助......简单的方法:

cat /etc/passwd | grep groupID GID

您可以使用具有特定组 GID 的 grep 进行过滤。 例如,您可以使用 root 组 ID 来 root 用户:

cat /etc/passwd | grep 0 

或者如果你想列出所有用户的组名,你可以使用这个

awk -F':' 'NR==FNR{ a[$3]=$1; next }{ print $1", "a[$4] }' /etc/group /etc/passwd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    • 2014-05-07
    • 2021-09-19
    • 1970-01-01
    相关资源
    最近更新 更多