Page MenuHomeDevCentral

next-uid.py
No OneTemporary

next-uid.py

#!/usr/bin/env python3
#
# Guesses a free sequential user ID for a new account.
#
# To do so, reads from pillar/core/users.sls (USERS_DATASOURCE) the last users
# uid # and offers the next one available.
#
# ID > 5000 (USERS_CUT) are ignored.
import yaml
USERS_DATASOURCE = "pillar/core/users.sls"
USERS_DATASOURCE_KEY = "shellusers"
USERS_CUT = 5000
def get_shellusers(filename, key):
with open(filename) as stream:
data = yaml.safe_load(stream)
return data[key]
def get_uids(users, threshold):
return [
users[username]["uid"]
for username in users
if users[username]["uid"] < threshold
]
shell_users = get_shellusers(USERS_DATASOURCE, USERS_DATASOURCE_KEY)
uids = get_uids(shell_users, USERS_CUT)
print(max(uids) + 1)

File Metadata

Mime Type
text/x-python
Expires
Thu, Dec 26, 01:32 (5 h, 56 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2260958
Default Alt Text
next-uid.py (781 B)

Event Timeline