Listando usuários em um grupo
Publicado por Robson Assis Candido Pereira Faria (última atualização em 16/05/2014)
[ Hits: 15.741 ]
Homepage: http://iniciantedigital.blogspot.com/
Script para listar usuários em um grupo.
Os script está em inglês, mas manipula grupos dentro do GNU/Linux ou HP-UX.
Funções:
- Lista usuários dentro de um grupo, sendo ele primário ou secundário.
- Lista usuários que tem o grupo como primário somente ou como secundário, de acordo com a opção escolhida.
- Exibe o ID do grupo (GID).
- Lista todos os grupos da máquina em ordem crescente.
Na dúvida use o comando lgroup com a opção "--help":
$ lgroup --help
Options to list group:
Use lgroup [option] [group] or lgroup [group] to list all users in primary and secundary group
-p : List only users in primary group
-s : List only users in secundary group
-v : List all users in verbose mode
-i : Show the group GID
-l : List all groups in /etc/group
O objetivo é facilitar a manipulação de grupos no GNU/Linux ou sistemas UNIX HP-UX, não testado em todas as distribuições.
#! /bin/sh
if [ "$2" != "" ]; then
group=$2;
var=$1;
groupid=`cat /etc/group | grep "^$group:" | awk -F ":" '{ print $3}'`;
if [ "$groupid" != "" ]; then
case $var in
"-p" )
cat /etc/passwd | awk -F ":" '{print $4":"$1}' | grep "$groupid:" | awk -F ":" '{print $2}';
;;
"-s" )
cat /etc/group | grep "^$group:" | awk -F ":" '{ print $4}' | tr "," "\n";
;;
"-v" )
echo "primary:";
cat /etc/passwd | awk -F ":" '{print $4":"$1}' | grep "$groupid:" | awk -F ":" '{print $2}';
echo "";
echo "secundary:";
cat /etc/group | grep "^$group:" | awk -F ":" '{ print $4}' | tr "," "\n";
;;
"-i")
echo "$group:"
cat /etc/group | grep $group | awk -F ":" '{ print "gid ("$3")"}';
esac
else echo "Can't find group $group";
fi
elif [ "$1" == "--help" ]; then
echo -e "\n"
echo "Options to list group:";
echo "Use lgroup [option] [group] or lgroup [group] to list all users in primary and secundary group";
echo "-p : List only users in primary group";
echo "-s : List only users in secundary group";
echo "-v : List all users in verbose mode";
echo "-i : Show the group GID";
echo "-l : List all groups in /etc/group";
echo -e "\n\n"
elif [ "$1" == "-l" ]; then
cat /etc/group | awk -F ":" '{ print $3":"$1}' | sort -n | awk -F ":" '{ print "group("$2") gid("$1")"}';
else
group=$1;
groupid=`cat /etc/group | grep "^$group:" | awk -F ":" '{ print $3}'`;
if [ "$groupid" != "" ]; then
cat /etc/group | grep "^$group:" | awk -F ":" '{ print $4}' | tr "," "\n"
cat /etc/passwd | awk -F ":" '{print $4":"$1}' | grep "$groupid:" | awk -F ":" '{print $2}'
else echo -e "\nPlease enter option and group or put --help to get help\n";
fi
fi
gera saída com substituindo coluna por outra (substr)
olhaMeuDesktop 0.1 - Aplicativo para gravar Área de Trabalho
Enviar via FTP todos as pastas / sub-pastas e arquivos, a partir do diretorio de origem inclusive
Plugin para o Nagios monitorar o vencimento do certificado Zimbra
Nenhum comentário foi encontrado.
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
archlinux resolução abaixou após atualização (18)
Conky não mostra temperaturas da CPU no notebook (7)
Estou com um problema no meu desktop do ubuntu (2)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (0)









