finds.dev← search

// the find

iamjineshmodi/Role_Based_Access_Control_Optimization

★ 1 · C · MIT · updated Mar 2025

An implementation of a research paper's algorithm for role-based access control (RBAC) mining that creates optimal role assignments while adhering to user and permission cardinality constraints.

A single-file C implementation of a role-mining algorithm for RBAC, meant to take a user-permission matrix and produce a minimal set of roles under cardinality constraints. It's aimed at people studying RBAC role mining research, not at anyone needing a production access-control tool.

It ships several real benchmark datasets (firewall1, firewall2, domino, americas_small, healthcare) that are recognizable from the role-mining literature, so you can actually run it against non-trivial inputs instead of toy examples. The two-phase approach — minimal-coverage roles first, then alternating user-centric and permission-centric formation for the remainder — matches how these heuristics are usually described in papers, and the UPA-in/UA+PA-out file format is simple enough to script around.

There's no way to check correctness: no reference role counts for the included datasets, no tests, and the README doesn't even name the paper it's reproducing, so you can't verify the output is actually close to optimal. It's one file (plus a stray 'Main_code.c' that duplicates or shadows main.c — unclear which is canonical) with no header separation or build script beyond a bare gcc command. The interactive scanf-based prompt for filename and constraints makes it unusable for batch experiments or scripting. Stated limits of 5000 users/roles/permissions strongly suggest fixed-size static arrays rather than dynamic allocation, with no mention of bounds checking if you exceed them.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →