在Unix/Linux中,如何通过命令行找到给定用户所在的组?
在Linux/OS X/Unix上显示你(或可选指定的用户)所属的组,使用:
id -Gn [user]
这相当于Unix上已经过时的groups [user]实用程序。
在OS X/Unix操作系统下,建议使用命令id -p [user]进行正常交互。
参数说明:
-g,——groups -打印所有组id -n,——name -输出名称而不是数字,用于- ugg -p -使输出为人类可读。
下面是集成到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
推荐文章
- 如何将文件指针(file * fp)转换为文件描述符(int fd)?
- Linux Bash中双&和分号有什么区别?
- 如何合并2 JSON对象从2个文件使用jq?
- 在SSH会话中查找客户端的IP地址
- C++ Linux的想法?
- 如何为Fedora安装g++ ?
- 如何触发命令行PHP脚本的XDebug分析器?
- Linux删除大小为0的文件
- Maven命令行如何指向特定的settings.xml为单个命令?
- Spring引导应用程序作为服务
- 如何重定向标准derr和标准输出到不同的文件在同一行脚本?
- Windows和Linux上的c++编译:ifdef开关
- 在Bash中获取日期(比当前时间早一天)
- Linux: kill后台任务
- 如何循环通过文件匹配通配符在批处理文件