Listando usuários em um grupo
Publicado por Robson Assis Candido Pereira Faria (última atualização em 16/05/2014)
[ Hits: 15.760 ]
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
Filtrando processos facilmente com psaux ( ps aux + grep + wc -l)
Ataulizando o Kernel Corretamente
Bash script para converter decimal para hexadecimal mole!
Converte diretório, subdiretório e arquivos de Maiúscula -> minúscula.
Administração do Samba + LDAP - ainda para terminar
Nenhum comentário foi encontrado.
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Linux Mint: Zram + Swapfile em Btrfs
O widget do Plasma 6 Área de Notificação
Quando vocês pararam de testar distros? (16)
Quero instalar, configurar, setar tamanho do rsyslog. (5)









