Listando usuários em um grupo

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

[ Hits: 13.990 ]

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

Knife System

sync2test - sincroniza arquivos do subversion

Debian - inicializando VMs (VirtualBox) no boot

Firewall Iptables agressivo para desktop

Implementando Statement e RecordSet em bash script


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário