Portál AbcLinuxu, 9. května 2025 22:05
awk -F: '{ if ($3>=1000 && $3<65500) print; }' /etc/passwdKonstanty 1000 a 65500 si samozřejmě upravte podle svého systému.
#!/usr/bin/env python import os passwd = {} for line in file('/etc/passwd'): line = line.strip() if not line: break splitted = line.split(':') print splitted homedir = splitted[5] user = splitted[0] passwd[splitted[5]] = (user, line) shadow = {} for line in file('/etc/shadow'): line = line.strip() if not line: break splitted = line.split(':') shadow[splitted[0]] = line homebase = '/home' frompasswd = [] fromshadow = [] for homedir in os.listdir('/home'): fullpath = os.path.join(homebase, homedir) if not os.path.isdir(fullpath): continue #we want #directories only try: user, line_passwd = passwd[fullpath] frompasswd.append(line_passwd) fromshadow.append(shadow[user]) except KeyError: pass print '-' * 50 print '\n'.join(frompasswd) print '-' * 50 print '\n'.join(fromshadow)Je to program, který projde celý adresář /home a v něm vyhledá podadresáře. Jestliže najde adresář, který se zároveň vyskytuje jako domovský adresář nějakého uživatele v /etc/passwd, tak zjistí, jaký je to uživatel a najde jeho záznam v /etc/shadow.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.