Alle user anzeigen
Alle user anzeigen
Hallo,
habe mich grad schon durchs Forum gewühlt, aber leider nichts gefunden. Gibt es die Möglichkeit alle user, die am System existieren, anzuzeigen?
mfg bany
habe mich grad schon durchs Forum gewühlt, aber leider nichts gefunden. Gibt es die Möglichkeit alle user, die am System existieren, anzuzeigen?
mfg bany
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
In der Datei /etc/passwd stehen die lokalen User, die es auf dem System gibt. Mach mal "cat /etc/passwd", da siehst Du Username, User-ID, Group-ID, Home-Pfad, Shell etc. etc.!
Mit "who" siehst Du, wer aktuell auf dem System eingeloggt ist.
Gruss, mistersixt.
Mit "who" siehst Du, wer aktuell auf dem System eingeloggt ist.
Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
Falls Du über /etc/nsswitch.conf z.B. LDAP oder so zusätzlich einbindest.
Code: Alles auswählen
getent passwd
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Code: Alles auswählen
cat /etc/passwd | grep home | cut -d : -f1 && cat /etc/passwd | grep root | cut -d : -f1
- seep
- Beiträge: 544
- Registriert: 31.10.2004 14:21:08
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: HSK
Code: Alles auswählen
grep "/bash$" /etc/passwd | cut -d ":" -f 1
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
- C_A
- Beiträge: 1082
- Registriert: 22.04.2004 14:51:01
- Lizenz eigener Beiträge: GNU General Public License
Und hier noch meine Variante (basierent auf der UID)
Code: Alles auswählen
#!/bin/bash
#09.12.2005
#A small script to find real system - user.
UID_MIN=`grep UID_MIN /etc/login.defs |cut -d" " -f2`
all_users=`cut -d: -f1,3 /etc/passwd`
for user in $all_users
do
if [ `echo "$user"|cut -d: -f2` -ge $UID_MIN ]
then
echo `echo "$user"|cut -d: -f1`
fi
done
Hallo,
eine weitere Möglichkeit ohne Waffengewalt wäre:
oder auch, wenn gewünscht (z.B. um als shell /bin/false weg zu filtern):
Gruß
Matthias
eine weitere Möglichkeit ohne Waffengewalt wäre:
Code: Alles auswählen
grep "bash$" /etc/passwd| awk -F ":" '{ print $1 }'
Code: Alles auswählen
grep -iw sh$ /etc/passwd| awk -F ":" '{ print $1 }'
Matthias
-
- Beiträge: 234
- Registriert: 29.04.2013 15:47:29
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
Re:
C_A hat geschrieben:12.04.2006 20:46:03Und hier noch meine Variante (basierent auf der UID)Code: Alles auswählen
#!/bin/bash #09.12.2005 #A small script to find real system - user. UID_MIN=`grep UID_MIN /etc/login.defs |cut -d" " -f2` all_users=`cut -d: -f1,3 /etc/passwd` for user in $all_users do if [ `echo "$user"|cut -d: -f2` -ge $UID_MIN ] then echo `echo "$user"|cut -d: -f1` fi done
Code: Alles auswählen
#!/bin/bash
#
# findusers.sh
#
# 2018-01-25
#
# Find normal users based on the values of UID_MIN and UID_MAX in "/etc/login.defs".
UID_MIN=$(grep -v "^#" /etc/login.defs | grep "^UID_MIN" | tr "\t" " " | tr -s " " | cut -d" " -f2)
UID_MAX=$(grep -v "^#" /etc/login.defs | grep "^UID_MAX" | tr "\t" " " | tr -s " " | cut -d" " -f2)
all_users=$(cut -d: -f1,3 /etc/passwd)
for user in $all_users
do
userid=$(echo "$user" | cut -d: -f2)
if [ "$userid" -ge "$UID_MIN" ] && [ "$userid" -le "$UID_MAX" ]
then
echo "$user" | cut -d: -f1
fi
done
-
- Beiträge: 234
- Registriert: 29.04.2013 15:47:29
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
Re: Alle user anzeigen
Oder so:
Code: Alles auswählen
#!/bin/bash
#
# findusers
#
# 2018-01-26
#
# Find normal users based on the values of UID_MIN and UID_MAX in "/etc/login.defs".
if [ "$1" = "--help" ]; then
progname=$(basename "$0")
echo -e "\n $progname\n"
echo -e '\tWird ohne Parameter aufgerufen und antwortet mit einer Liste aller'
echo -e '\tnormalen User-Accounts, einer Liste ohne System-Accounts.\n'
echo -e '\tDas Skript gibt jene Account-Namen aus, deren User-ID zwischen den'
echo -e '\tin der Datei "/etc/login.defs" definierten Werten für "UID_MIN" und'
echo -e '\t"UID_MAX" liegt.\n'
exit 0
fi
## Get UID_MIN and UID_MAX: --------------------------------------------------------
matchlines=$(grep -v "^#" /etc/login.defs | grep -e "^UID_" | tr "\t" " " | tr -s " ")
UID_MIN=$(echo "$matchlines" | grep "^UID_MIN" | cut -d" " -f2)
UID_MAX=$(echo "$matchlines" | grep "^UID_MAX" | cut -d" " -f2)
unset -v matchlines
## ----------------------------------------------------------------------------------
all_users=$(cut -d: -f1,3 /etc/passwd)
for user in $all_users
do
userid=$(echo "$user" | cut -d: -f2)
if [ "$userid" -ge "$UID_MIN" ] && [ "$userid" -le "$UID_MAX" ]
then
echo "$user" | cut -d: -f1
fi
done