Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 04/08/2018, à 11:10

MicP

Re : Bash – affiche la liste de tous les utilisateurs et le groupe

Bonjour

#!/bin/bash -i
            # l'option "interactive" de bash permet d'utiliser la variable COLUMNS dans un script
printf '\x2d%.s' $(seq $COLUMNS)

Dernière modification par MicP (Le 04/08/2018, à 11:46)

Hors ligne

#27 Le 04/08/2018, à 11:38

bruno

Re : Bash – affiche la liste de tous les utilisateurs et le groupe

Oui encore mieux. J'aurais du penser à utiliser $COLUMNS

En ligne

#28 Le 04/08/2018, à 13:45

linuxm@c

Re : Bash – affiche la liste de tous les utilisateurs et le groupe

Script(01) = une légère modification 

#!/bin/bash
# bruno
term_cols=$(tput cols)

format='| %-15s| %-15s| %-6s|%s\n'

printf %"$term_cols"s |tr " " "="
printf "$format" "User(id)" "Group(id)" "Status" "   Groupes secondaires";
printf %"$term_cols"s |tr " " "="

while IFS=':' read -r user pass uid gid other_details;
do
    if [ $uid -eq 0 ] || [ $uid -ge 500 ] && [ $uid -le 60000 ]
    then
    status="$(sudo passwd -S "$user"| cut -d " " -f 2)"
    primary_group="$(getent group "$gid" | cut -d ":" -f 1)"
    all_groups="$(groups "$user" | cut -d ":" -f 2 | cut -d " " -f3-)"
    printf "$format" "$user""(""$uid"")" "$primary_group""(""$gid"")" "  $status" "   $all_groups";
    printf %"$term_cols"s |tr " " "-"
    fi
done < /etc/passwd

Affichage

==========================================================================================================
| User(id)       | Group(id)      | Status|   Groupes secondaires
==========================================================================================================
| root(0)        | root(0)        |   L   |   
----------------------------------------------------------------------------------------------------------
| user01(1001)   | user01(1001)   |   P   |   fax scanner
----------------------------------------------------------------------------------------------------------
| user02(1002)   | user02(1002)   |   L   |   adm fax sudo audio video lpadmin scanner
----------------------------------------------------------------------------------------------------------
| user03(1003)   | user03(1003)   |   L   |   dialout audio video netdev scanner
----------------------------------------------------------------------------------------------------------



Script(02)

# !/bin/bash   
echo "┌───┬──────────────────────┬───────────────────────────────────────────────────────────────────────────────────────┐"
echo "│ x │  Users ID            │  Groups IDs  , (Primary & Secondarys )                                                │"
echo "├───┼──────────────────────┼───────────────────────────────────────────────────────────────────────────────────────┤"
                                                                 
for i in $(getent passwd | grep -wFf /etc/shells | cut -d ":" -f 1) ; do
sudo passwd -S  $i | awk  '{print "│ " $2}'  >> tmp
   id $i | awk '{printf ("│  %-20s│  %-85s│\n",   $1=substr($1,5,20),$3=substr($3,9,85))}'  >> tmp ; done
cat tmp | sed "N;s/\n/ /"; rm tmp
echo "└───┴──────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘"

exit 0

Affichage

┌───┬──────────────────────┬───────────────────────────────────────────────────────────────────────────────────────┐
│ x │  Users ID            │  Groups IDs  , (Primary & Secondarys )                                                │
├───┼──────────────────────┼───────────────────────────────────────────────────────────────────────────────────────┤
│ L │  0(root)             │  0(root)                                                                              │
│ P │  1001(user01)        │  1001(user01),21(fax),118(scanner)                                                    │
│ L │  1002(user02)        │  1002(user02),4(adm),21(fax),27(sudo),29(audio),44(video),116(lpadmin),118(scanner)   │
│ L │  1003(user03)        │  1003(user03),20(dialout),29(audio),44(video),108(netdev),118(scanner)                │
└───┴──────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘


script 03 ....etc 
a vous de jouer

Dernière modification par linuxm@c (Le 04/08/2018, à 14:09)

Hors ligne

#29 Le 04/08/2018, à 13:46

Watael

Re : Bash – affiche la liste de tous les utilisateurs et le groupe

sinon, il y a tput cols


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne