在说/etc/group格式的时候,网上很多文章都会说是“组名:组密码:组ID:组下用户列表”,这说法对了解/etc/group格式是没问题的,但如果碰到“查看用户属于哪些组/查看用户组下有哪些用户”这个问题上,这种说法会很误导人。
测试发现“组下用户列表”中并不包括以该组为主属组的用户。这导致的问题就是:
在处理“查看用户属于哪些组”时,如果直接使用grep username /etc/group,那么只能找到用户所属的附加组反而漏了最重要的主属组
在处理“查看用户组下有哪些用户”时,如果直接使用grep groupname /etc/group,那么只能找到以该组为附加组的用户反而漏了最重要的以其为主属组的用户
2.1 使用groups查看
以查看oracle用户属于哪些组为例:
2.2 结合/etc/passwd和/etc/group查看
以查看oracle用户属于哪些组为例:
grep `grep oracle /etc/passwd | cut -d ":" -f 4` /etc/group | cut -d ":" -f 1 #查看用户所属主属组
grep oracle /etc/group | cut -d ":" -f 1 #查看用户所有所属附加组
即oracle属于oinstall组和dba组;其中以oinstall为主属组,以dba为附加组。
以查看oinstall组下有哪些用户为例
grep `grep oinstall /etc/group | cut -d ":" -f 3 ` /etc/passwd | cut -d ":" -f 1#查看以其为主属组的用户
grep oinstall /etc/group | cut -d ":" -f 4 #查看以其为附加组的用户
即ointall组下有oracle,test,test2三个用户;其中oracle以oinstall为主属组,test和test2以oinstall为附加组。