在Unix/Linux中,如何通过命令行找到给定用户所在的组?
当前回答
或者只是研究/etc/groups(好吧,这可能不工作,如果它使用PAM与ldap)
其他回答
下面是集成到ansible并生成CSV格式仪表板的脚本。
sh collection.sh
#!/bin/bash
HOSTNAME=`hostname -s`
for i in `cat /etc/passwd| grep -vE "nologin|shutd|hal|sync|root|false"|awk -F':' '{print$1}' | sed 's/[[:space:]]/,/g'`; do groups $i; done|sed s/\:/\,/g|tr -d ' '|sed -e "s/^/$HOSTNAME,/"> /tmp/"$HOSTNAME"_inventory.txt
sudo cat /etc/sudoers| grep -v "^#"|awk '{print $1}'|grep -v Defaults|sed '/^$/d;s/[[:blank:]]//g'>/tmp/"$HOSTNAME"_sudo.txt
paste -d , /tmp/"$HOSTNAME"_inventory.txt /tmp/"$HOSTNAME"_sudo.txt|sed 's/,[[:blank:]]*$//g' >/tmp/"$HOSTNAME"_inventory_users.txt
我的输出存储在下面的文本文件。
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
groups
or
groups user
在Linux/OS X/Unix上显示你(或可选指定的用户)所属的组,使用:
id -Gn [user]
这相当于Unix上已经过时的groups [user]实用程序。
在OS X/Unix操作系统下,建议使用命令id -p [user]进行正常交互。
参数说明:
-g,——groups -打印所有组id -n,——name -输出名称而不是数字,用于- ugg -p -使输出为人类可读。
或者只是研究/etc/groups(好吧,这可能不工作,如果它使用PAM与ldap)
这个显示了用户的uid以及他们所属的所有组(及其gid)
id userid
推荐文章
- 如何在Mac上的命令行安装JQ ?
- 如何在Linux中循环目录?
- 在命令行中使用Firefox截取完整页面的截图
- 在pip install -U中“-U”选项代表什么
- 如何将参数转发到bash脚本中的其他命令?
- 如何确定一个进程是否运行在lxc/Docker内部?
- 仅在文件不存在时才将行追加到文件中
- 如何强制makefile重新构建目标?
- 如何在父进程退出后使子进程死亡?
- 从URL执行bash脚本
- [: shell编程中的意外操作符
- 使用Wget进行多个同时下载?
- Unix列表命令'ls'可以输出数值chmod权限吗?
- 在Unix中,我可以在一个目录中运行'make'而不首先cd'到该目录吗?
- 如何从命令行重置Jenkins安全设置?