#!/bin/bash
GROUPS=$(cut -d: -f1 /etc/group)
echo "$GROUPS"
如果我是普通用户,此代码的输出为 1000,如果我是 root,则输出为 0,同时执行相同的命令 (cut -d: -f1/etc/group
) 返回计算机上所有可用组的列表。我还尝试了 grep ""/etc/group ,但产生了相同的结果。我在这里没有得到什么?
最佳答案
正确的方法是getent group|cut -d: -f1
,因为还有一些比/etc/group更多的认证方法。例如SQL、LDAP 等...
并且不建议在 shellscript 中使用大写的变量名 - 正是为了防止这种情况发生。
关于linux - 通过 bash 脚本列出机器上的所有组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39231389/