Listando usuários em um grupo

Publicado por Robson Assis Candido Pereira Faria (última atualização em 16/05/2014)

[ Hits: 15.375 ]

Homepage: http://iniciantedigital.blogspot.com/

Download lgroup




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.

  



Esconder código-fonte

#! /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

Scripts recomendados

FIREWALL COM IPTABLES - PARA EMPRESAS E INTRANETS

Configuração do Mysql no Suse, quando ocorre o seguinte erro: "ERROR 2002: Can't connect to local My

Relatório Básico do Ping

shell script

Firewall de borda corporativo


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts