{"id":17384040,"url":"https://github.com/mcandre/manray","last_synced_at":"2025-03-27T21:15:24.165Z","repository":{"id":66387078,"uuid":"123610839","full_name":"mcandre/manray","owner":"mcandre","description":"RBAC persistence for SmartOS global zones","archived":false,"fork":false,"pushed_at":"2020-09-12T17:40:38.000Z","size":228,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T23:36:34.590Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcandre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-02T17:42:24.000Z","updated_at":"2024-04-04T04:55:29.000Z","dependencies_parsed_at":"2023-03-19T13:02:09.923Z","dependency_job_id":null,"html_url":"https://github.com/mcandre/manray","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fmanray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fmanray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fmanray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fmanray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcandre","download_url":"https://codeload.github.com/mcandre/manray/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245924514,"owners_count":20694730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-16T07:44:28.036Z","updated_at":"2025-03-27T21:15:24.140Z","avatar_url":"https://github.com/mcandre.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# manray: RBAC persistence for SmartOS global zones\n\n# EXAMPLE\n\n```console\n$ svcadm disable -s manray-persist\n\n$ passwd\nNew password: vagrant\nRe-enter new password: vagrant\n\n$ svcadm enable -s manray-persist\n```\n\n![Manray hands Patrick his Wallet](https://raw.githubusercontent.com/mcandre/manray/master/manray.png)\n\n# ABOUT\n\nmanray enables modifiable, persistent UNIX user accounts and RBAC configuration for SmartOS global zones, by providing a pair of boot time services: `manray-load` and `manray-persist`, that assist administrators in loading and persisting custom account information.\n\nAt boot, `manray-load` copies select configuration files from a `/usbkey` wallet to `/etc`, so that a user `patrick` may login, invoke RBAC privileges with `pfexec`, and so on. Once the `manray-load` service launches, `manray-persist` becomes enabled.\n\nWhile `manray-persist` is enabled, Patrick sees a read-only edition of `/etc` files. Administrators can disable `manray-persist`, which triggers writeable copies to be injected onto the system. Then, administrators can execute `passwd`, `usermod`, `groupadd`, and so on to modify UNIX user account and RBAC configuration. Finally, the administrator re-renables `manray-persist`, which backs up the configuration to `/usbkey`.\n\nWarning: Changes to UNIX accounts and RBAC configuration will be lost at next boot unless `manray-persist` is re-enabled beforehand.\n\n# INSTALL\n\n```console\n$ curl -kLO https://github.com/mcandre/manray/releases/download/v0.0.2/manray-0.0.2.tgz\n$ tar xzvf manray-0.0.2.tgz -C /\n$ svccfg import /opt/custom/smf/manray-load.xml\n$ svccfg import /opt/custom/smf/manray-persist.xml\n```\n\nWarning: As SSL certificates are disregarded, the tarball should be verified against official release checksums with the `digest` utility.\n\n# RUNTIME REQUIREMENTS\n\n* SmartOS global zone\n\n# BUILDTIME REQUIREMENTS\n\n* make, e.g. [GNU make](https://www.gnu.org/software/make/)\n* tar, md5sum from coreutils, e.g., [GNU coreutils](https://www.gnu.org/software/coreutils/coreutils.html)\n* a build environment that preserves UNIX file permissions\n* [shfmt](https://github.com/mvdan/sh) (e.g. `go get mvdan.cc/sh/cmd/shfmt`)\n* [bashate](https://pypi.python.org/pypi/bashate/0.5.1)\n* [checkbashisms](https://sourceforge.net/projects/checkbaskisms/)\n* [ShellCheck](https://hackage.haskell.org/package/ShellCheck)\n* [stank](https://github.com/mcandre/stank) (e.g. `go get github.com/mcandre/stank/...`)\n\n# CREDITS\n\n* [vagrant-smartos-packager](https://github.com/vagrant-smartos/vagrant-smartos-packager) - provides a working example of how to setup a virtual machine for SmartOS global zones with persistent, modifiable UNIX accounts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcandre%2Fmanray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcandre%2Fmanray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcandre%2Fmanray/lists"}