HLD for persistent local user management#2018
Conversation
|
/azp run |
|
No pipelines are associated with this pull request. |
bc68d29 to
62d56bc
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
62d56bc to
fd6aea7
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
fd6aea7 to
7c4b7d3
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
7c4b7d3 to
3c56ccb
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
3c56ccb to
db52f3b
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
db52f3b to
6653490
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
6653490 to
793f412
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
793f412 to
bf17e02
Compare
|
/azp run |
@vitaliibylinka PRs with implementation details have been posted. |
4a02cf2 to
fe06f5f
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
spandan-nexthop
left a comment
There was a problem hiding this comment.
LGTM!
Just added some comments/questions.
|
@qiluo-msft can you please help signoff on this feature? |
This implementation addresses the User Management HLD requirements for centralized user administration in SONiC. sonic-net/SONiC#2018 nexthop-ai/private-sonic-host-services#54 nexthop-ai/private-sonic-utilities#120 **1. YANG Model & Configuration Schema:** - Added sonic-user.yang model defining LOCAL_USER and LOCAL_ROLE_SECURITY_POLICY tables - Integrated user management into CONFIG_DB schema with role-based configuration - Added DEVICE_METADATA.local_user_management feature flag **2. User Management Daemon (userd):** - Implemented C++ daemon using SWSS framework for CONFIG_DB integration - Added user lifecycle management (create/update/delete/enable/disable) - Implemented role-based group assignment (administrator, operator roles) - Added SSH key management with proper file permissions - Integrated PAM faillock configuration using Jinja2 templates **3. CLI Interface:** - Extended sonic-utilities with 'config user' and 'show user' commands - Added user import functionality to migrate existing system users - Added role-based user management with proper validation **4. Build System Integration:** - Added sonic-host-services package with userd daemon and systemd service - Integrated user management into SONiC image build process - Added template-based configuration generation for init_cfg.json - Added build dependencies for JSON processing and password hashing Tested for all the features that are implemented.
fe06f5f to
cb6b0d2
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
cb6b0d2 to
c1032c8
Compare
|
/azp run |
|
No pipelines are associated with this pull request. |
|
Password hashes are also considered sensitive data since they can be used for reverse-engineering to get the password. Normally, /etc/shadow is only readable to root-level user. Making this change in SONiC essentially expose the /etc/shadow file content to general users and breaks the security policy of Linux. |
I believe the CLI show command will only show password hashes when the user is root. I believe the file And it will need to be changed to this I don't see the code to do that in this PR? I would expect something like the following code at the end of generate_config() ( |
This implementation addresses the User Management HLD requirements for centralized user administration in SONiC. sonic-net/SONiC#2018 nexthop-ai/private-sonic-host-services#54 nexthop-ai/private-sonic-utilities#120 **1. YANG Model & Configuration Schema:** - Added sonic-user.yang model defining LOCAL_USER and LOCAL_ROLE_SECURITY_POLICY tables - Integrated user management into CONFIG_DB schema with role-based configuration - Added DEVICE_METADATA.local_user_management feature flag **2. User Management Daemon (userd):** - Implemented Rust daemon using SWSS framework for CONFIG_DB integration - Added user lifecycle management (create/update/delete/enable/disable) - Implemented role-based group assignment (administrator, operator roles) - Added SSH key management with proper file permissions - Integrated PAM faillock configuration using Jinja2 templates **3. CLI Interface:** - Extended sonic-utilities with 'config user' and 'show user' commands - Added user import functionality to migrate existing system users - Added role-based user management with proper validation **4. Build System Integration:** - Added template-based configuration generation for init_cfg.json - Added build dependencies for JSON processing and password hashing Tested for all the features that are implemented.
This implementation addresses the User Management HLD requirements for centralized user administration in SONiC. sonic-net/SONiC#2018 nexthop-ai/private-sonic-host-services#54 nexthop-ai/private-sonic-utilities#120 **1. YANG Model & Configuration Schema:** - Added sonic-user.yang model defining LOCAL_USER and LOCAL_ROLE_SECURITY_POLICY tables - Integrated user management into CONFIG_DB schema with role-based configuration - Added DEVICE_METADATA.local_user_management feature flag **2. User Management Daemon (userd):** - Implemented Rust daemon using SWSS framework for CONFIG_DB integration - Added user lifecycle management (create/update/delete/enable/disable) - Implemented role-based group assignment (administrator, operator roles) - Added SSH key management with proper file permissions - Integrated PAM faillock configuration using Jinja2 templates **3. CLI Interface:** - Extended sonic-utilities with 'config user' and 'show user' commands - Added user import functionality to migrate existing system users - Added role-based user management with proper validation **4. Build System Integration:** - Added template-based configuration generation for init_cfg.json - Added build dependencies for JSON processing and password hashing Tested for all the features that are implemented. Signed-off-by: Manoharan Sundaramoorthy <manoharan@nexthop.ai>
|
Hi @manoharan-nexthop — the 202605 branch cut is at end of May. This PR has had no activity since Dec 2025. Are you still planning to land this for 202605? If so, please address @aidan-gallagher's review comments. Otherwise we may need to defer to the next release. CC: @vaibhavhd @radha-danda (branch managers) |
@rookie-who there is recent activity on all of the linked PRs, including LGTM responses on all three from @aidan-gallagher. These PRs still require sign-off from a reviewer with write-access before they can be merged. |
|
Hi @qiluo-msft @maipbui — could you please review and sign off on this HLD from the AAA and user management perspective? The 202605 branch cut is at end of May. CC: @vaibhavhd @radha-danda (branch managers) |
|
@qiluo-msft @maipbui Could you review and sign off on this HLD from the AAA and user management perspective? Thanks! |
This implementation addresses the User Management HLD requirements for centralized user administration in SONiC. sonic-net/SONiC#2018 nexthop-ai/private-sonic-host-services#54 nexthop-ai/private-sonic-utilities#120 **1. YANG Model & Configuration Schema:** - Added sonic-user.yang model defining LOCAL_USER and LOCAL_ROLE_SECURITY_POLICY tables - Integrated user management into CONFIG_DB schema with role-based configuration - Added DEVICE_METADATA.local_user_management feature flag **2. User Management Daemon (userd):** - Implemented Rust daemon using SWSS framework for CONFIG_DB integration - Added user lifecycle management (create/update/delete/enable/disable) - Implemented role-based group assignment (administrator, operator roles) - Added SSH key management with proper file permissions - Integrated PAM faillock configuration using Jinja2 templates **3. CLI Interface:** - Extended sonic-utilities with 'config user' and 'show user' commands - Added user import functionality to migrate existing system users - Added role-based user management with proper validation **4. Build System Integration:** - Added template-based configuration generation for init_cfg.json - Added build dependencies for JSON processing and password hashing Tested for all the features that are implemented. Signed-off-by: Manoharan Sundaramoorthy <manoharan@nexthop.ai>
|
This PR/feature will not be included in the SONiC 202605 release. It can be retargeted for the 202611 release. |
Currently the local users that are created are not persistent across upgrades. This HLD proposes to manage the users across upgrades by storing the configuration in CONFIG_DB and a daemon to manage them in Linux.
Implementation Pull requests: