Portál AbcLinuxu, 6. května 2025 16:26
Ahoj mam jeste takovy problem .... neznate nekdo prikaz ktery mi vypise cleny skupiny? Napr mam skupinu konstrukteri a chtel bych vedet kdo do ni patri. Vim da se dohledavat pres soubory passwd a group. Ale prece jen napsat prikaz ktery mi to vypise by bylo elegantnejsi.
Diky
groupmems -l -g konstrukteri
by mělo vypsat požadované. "groupmems" je z balíku "shadow-utils".
Ten prikaz vypada ze by mohl vyresit muj problem. Bohuzel nevim jak ho zprovoznit.Shadow-utils samozrejme naistalovane mam le jak napisu groupmems tak mi to napise command not found:( Nevite jak to zprovoznit?
getent group getent group konstrukteri getent passwd ...Tento příkaz spolupracuje s NIS takže není omezen na klasické /etc/group a passwd.
getent group konstrukteri mi vypsalo
konstrukteri:x:504
Ja jsem cekal jmena clenu...:(
Však taky jména členů vypisuje, jsi si jistý, že máš v uvedené skupině nějaké uživatele?
$ getent group cdrom cdrom:x:24:fuky,jitka,anysek $ cat /etc/group |fgrep cdrom cdrom:x:24:fuky,jitka,anysek
BTW: není náhodou skupina 504 pro všechny uživatele "initial login group" tj. -g, ale ne -G, protože pak by nebyl záznam v /etc/groups, ale jen v /etc/passwd:
$ cat /etc/passwd |fgrep 504
Jinak to co chceš Ti vypíše i následující skriptík, výstup si uprav dle potřeby.
#! /usr/bin/env python import sys import grp import pwd if (len(sys.argv) != 2): print "Usage: %s GROUP_NAME" % sys.argv[0] sys.exit() group_name = sys.argv[1] group_db = grp.getgrnam(group_name) print "Users group %s:" % group_name for user in group_db.gr_mem: print " %s" % user pwall = pwd.getpwall() print "Users initial login group %s:" % group_name for item in pwall: if (item.pw_gid == group_db.gr_gid): print " %s" % item.pw_name
Ja uz jsme zjistil ze to umi prikaz members. Bohuzel je jen pro debian. Sice jsme nasel source package ale neumim to z neho zkompilovat. Adresa je http://packages.debian.org/lenny/members. soubor se jmenuje members_20080128-4.tar.gz. Zkompilovat to neumim pac kdyz jsme to otevrel tak jsme tam nikde nevidel soubor configure atd. Ale zdrojak toho programu tam je. Tak kdyby nekdo vedel jak na to budu jen rad.
to bylo prvni co me napadlo.... ale dopadlo to takto:
g++ -g -Wno-deprecated -c -o members.o members.cc
make: g++: command not found
make: ***: [members.o] error 127
Ted instaluju gcc podle me by mohl byt problem v tom.
Dík za info, o utilitě members jsem nevěděl. Koukal jsem na ní a je to defacto C++ obdoba skriptíku v Pythonu, ovšem již z roku 1997.
No jo to je jasne tobe to proste vypise prislusny radek ze souboru group. Poslu ti jak vypada muj group a passwd.
passswd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
distcache:x:94:94:Distcache:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
xmulle14:x:500:505::/home/xmulle14:/bin/bash
test:x:501:504::/home/test:/bin/bash
pavel:x:502:504::/home/pavel:/bin/bash
named:x:25:25:Named:/var/named:/sbin/nologin
spamfilter:x:503:503::/home/spamfilter:/bin/bash
novy:x:504:506::/home/novy:/bin/bash
group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail,postfix
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
dip:x:40:
ftp:x:50:
lock:x:54:
nobody:x:99:
users:x:100:
rpm:x:37:
dbus:x:81:
utmp:x:22:
apache:x:48:
postdrop:x:90:
postfix:x:89:
mailnull:x:47:
smmsp:x:51:
distcache:x:94:
nscd:x:28:
floppy:x:19:
vcsa:x:69:
rpc:x:32:
sshd:x:74:
rpcuser:x:29:
nfsnobody:x:65534:
dovecot:x:97:
webalizer:x:67:
squid:x:23:
pcap:x:77:
utempter:x:35:
slocate:x:21:
haldaemon:x:68:
xfs:x:43:
pavel:x:502:
named:x:25:
konstrukteri:x:504:
spamfilter:x:503:
vedouci:x:505:
novy:x:506:
Vidis ja v group mam jen jmeno skupiny a GID. V passwd mam jmeno uzivatele UID a GID. No a myslel jsme ze je nejaky program ktery se podiva na GID do group pak se podiva na uzivatele do passwd a vypise ty kteri maji stejne GID.
NAME groups - print the groups a user is in SYNOPSIS groups [OPTION]... [USERNAME]... DESCRIPTION --help display this help and exit --version output version information and exit Same as id -Gn. If no USERNAME, use current process. AUTHOR Written by David MacKenzie. REPORTING BUGS Report bugs to bug-coreutils@gnu.org.[root@pavel]# groups petr1 petr1 : petr1 petr3 petr [root@pavel]# id petr1 uid=502(petr1) gid=502(petr1) skupiny=502(petr1),503(petr3),504(petr6)
Vypisuje skupiny jejichz je uzivatel clenem. Ja potrebuju zadat prikaz a jmeno skupiny a ma mi to vypsat cleny te skupiny. Ten prikaz uz jsme nasel jmenuje se members. Bohuzel je jen na Debian a na centos je jen zdrojak. Nejsem schopny ho ale zkompilovat
http://ftp.de.debian.org/debian/pool/main/m/members/members_20080128-4.tar.gz
pri kompilaci mi to pise g++ -g -Wno-deprecated -c -o members.o members.cc
make: g++: command not found
make: ***: [members.o] error 127.
Bylo mi doporuceno instalovat build-essential ale to mi nenasel yum v repozitari.
Nemam to tam naistalovane a prave ani nevim jak yum zadne g++ nezna:(
I po instalaci g++ mi to pise...
g++ -g -Who-deprecated -c -o members.o members.cc
g++ -o members members.o
Tak mě po přečtení všech příspěvků napadlo, jak geniální je vytvářet pro každého uživatele jeho vlastní skupinu (uživ grumpa, skupina grumpa) (v Debianu je to automatické). Každý uživatel má tak svoji primární skupinu obsazenou velmi bezpečným způosobem. Když pak uživatele přidáme do dalších skupin, je to vždy evidováno v souboru groups; v passwd je primární skupina ta "stejnojmenná". Je to tedy taky o plánování a promýšlení. Díky za osvícení :o)
No a grep skupina /etc/group funguje na 100%.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.