rename username2user
This commit is contained in:
parent
ca28332126
commit
5f0d9bb176
10
README.md
10
README.md
@ -47,7 +47,7 @@ resolve a username to a `struct passwd*`:
|
|||||||
be done once, when the NSS library is loaded (or on the first call).
|
be done once, when the NSS library is loaded (or on the first call).
|
||||||
- Hash the username using a perfect hash function. Perfect hash function
|
- Hash the username using a perfect hash function. Perfect hash function
|
||||||
returns a number `n ∈ [0,N-1]`, where N is the total number of users.
|
returns a number `n ∈ [0,N-1]`, where N is the total number of users.
|
||||||
- Jump to the `n`'th location in the `idx_username2user` section (by pointer
|
- Jump to the `n`'th location in the `idx_name2user` section (by pointer
|
||||||
arithmetic), which contains the index `i` to the user's information.
|
arithmetic), which contains the index `i` to the user's information.
|
||||||
- Jump to the location `i` of section `Users` (again, using pointer arithmetic)
|
- Jump to the location `i` of section `Users` (again, using pointer arithmetic)
|
||||||
which stores the full user information.
|
which stores the full user information.
|
||||||
@ -55,7 +55,7 @@ resolve a username to a `struct passwd*`:
|
|||||||
return it to the caller.
|
return it to the caller.
|
||||||
|
|
||||||
In total, that's one hash for the username (~150ns), two pointer jumps within
|
In total, that's one hash for the username (~150ns), two pointer jumps within
|
||||||
the group file (to sections `idx_username2user` and `Users`), and, now that the
|
the group file (to sections `idx_name2user` and `Users`), and, now that the
|
||||||
user record is found, `memcpy` for each field.
|
user record is found, `memcpy` for each field.
|
||||||
|
|
||||||
The turbonss DB file is be `mmap`-ed, making it simple to implement pointer
|
The turbonss DB file is be `mmap`-ed, making it simple to implement pointer
|
||||||
@ -164,7 +164,7 @@ OFFSET TYPE NAME DESCRIPTION
|
|||||||
12 u32 num_groups number of group entries
|
12 u32 num_groups number of group entries
|
||||||
16 u32 offset_bdz_uid2user
|
16 u32 offset_bdz_uid2user
|
||||||
20 u32 offset_bdz_groupname2group
|
20 u32 offset_bdz_groupname2group
|
||||||
24 u32 offset_bdz_username2user
|
24 u32 offset_bdz_name2user
|
||||||
28 u32 offset_idx offset to the first idx_ section
|
28 u32 offset_idx offset to the first idx_ section
|
||||||
32 u32 offset_groups
|
32 u32 offset_groups
|
||||||
36 u32 offset_users
|
36 u32 offset_users
|
||||||
@ -335,11 +335,11 @@ Header 48 see "Turbonss header" section
|
|||||||
bdz_gid2group ? gid->group bdz
|
bdz_gid2group ? gid->group bdz
|
||||||
bdz_uid2user ? uid->user bdz
|
bdz_uid2user ? uid->user bdz
|
||||||
bdz_groupname2group ? groupname->group bdz
|
bdz_groupname2group ? groupname->group bdz
|
||||||
bdz_username2user ? username->user bdz
|
bdz_name2user ? username->user bdz
|
||||||
idx_gid2group len(group)*4*29/32 bdz->offset gid2group
|
idx_gid2group len(group)*4*29/32 bdz->offset gid2group
|
||||||
idx_groupname2group len(group)*4*29/32 bdz->offset groupname2group
|
idx_groupname2group len(group)*4*29/32 bdz->offset groupname2group
|
||||||
idx_uid2user len(user)*4*29/32 bdz->offset uid2user
|
idx_uid2user len(user)*4*29/32 bdz->offset uid2user
|
||||||
idx_username2user len(user)*4*29/32 bdz->offset username2user
|
idx_name2user len(user)*4*29/32 bdz->offset name2user
|
||||||
ShellIndex len(shells)*2 Shell index array
|
ShellIndex len(shells)*2 Shell index array
|
||||||
ShellBlob <= 4032 Shell data blob (max 63*64 bytes)
|
ShellBlob <= 4032 Shell data blob (max 63*64 bytes)
|
||||||
Groups ? packed Group entries (8b padding)
|
Groups ? packed Group entries (8b padding)
|
||||||
|
Loading…
Reference in New Issue
Block a user