rda-python-setuid 1.0.6__tar.gz → 1.0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. {rda_python_setuid-1.0.6/src/rda_python_setuid.egg-info → rda_python_setuid-1.0.7}/PKG-INFO +23 -1
  2. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/README.md +22 -0
  3. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/pyproject.toml +1 -1
  4. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7/src/rda_python_setuid.egg-info}/PKG-INFO +23 -1
  5. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/LICENSE +0 -0
  6. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/MANIFEST.in +0 -0
  7. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/setup.cfg +0 -0
  8. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid/__init__.py +0 -0
  9. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid/install.py +0 -0
  10. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid/install.usg +0 -0
  11. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid/pgstart.py +0 -0
  12. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid/pywrapper.c +0 -0
  13. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid/pywrapper.py +0 -0
  14. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid.egg-info/SOURCES.txt +0 -0
  15. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid.egg-info/dependency_links.txt +0 -0
  16. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid.egg-info/entry_points.txt +0 -0
  17. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid.egg-info/requires.txt +0 -0
  18. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/src/rda_python_setuid.egg-info/top_level.txt +0 -0
  19. {rda_python_setuid-1.0.6 → rda_python_setuid-1.0.7}/tests/test_setuid.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_setuid
3
- Version: 1.0.6
3
+ Version: 1.0.7
4
4
  Summary: RDA Python Package to setuid for program executions as an effective or common user
5
5
  Author-email: Zaihua Ji <zji@ucar.edu>
6
6
  Project-URL: Homepage, https://github.com/NCAR/rda-python-setuid
@@ -30,6 +30,28 @@ Two modes are supported:
30
30
  - **Mode 2 (pgstart specialist):** a copy `pgstart_zji` runs any command as specialist
31
31
  `zji` via `pgstart.py`, restricted to authorized users.
32
32
 
33
+ Two Python entry points are packaged alongside the C wrapper:
34
+
35
+ - **`pywrapper.py`** — the default fallback target executed when `pywrapper.c`
36
+ cannot resolve a matching `setuid_<program>` entry point. Acquires the
37
+ effective UID via `PgLOG.set_suid()`, prints the caller's real and effective
38
+ user names, and shows the `pyproject.toml` snippet plus the
39
+ `pywrapper-install -l <program>` command needed to wrap a new script.
40
+ Diagnostic flags `-env`, `-inc`, and `-plg` dump the environment variables,
41
+ `sys.path`, and `PGLOG` dictionary respectively — handy for verifying the
42
+ setuid environment before wiring up a real program.
43
+
44
+ - **`pgstart.py`** — the Mode 2 launcher invoked through a `pgstart_<USER>`
45
+ copy of `pywrapper`. Reads the real/effective UIDs from `PGLOG`, then
46
+ permits execution only if the real user matches the effective user or the
47
+ shared GDEX common user (`PGLOG['GDEXUSER']`); unauthorized callers receive
48
+ an informational message and exit. After authorization it parses leading
49
+ flag tokens — `-bg` (background via `subprocess.Popen`), `-fg` (explicit
50
+ foreground, default), `-cwd <dir>` (chdir before exec), and the same
51
+ `-env`/`-inc`/`-plg` diagnostics as `pywrapper.py` — and then runs the
52
+ remaining arguments as a command (`subprocess.run`/`Popen`) under the
53
+ effective UID, logging a host/program/timestamp/user line to `pgstart.log`.
54
+
33
55
  ## Dependency requirement
34
56
 
35
57
  Any Python package whose programs are to be run via the setuid mechanism must declare
@@ -14,6 +14,28 @@ Two modes are supported:
14
14
  - **Mode 2 (pgstart specialist):** a copy `pgstart_zji` runs any command as specialist
15
15
  `zji` via `pgstart.py`, restricted to authorized users.
16
16
 
17
+ Two Python entry points are packaged alongside the C wrapper:
18
+
19
+ - **`pywrapper.py`** — the default fallback target executed when `pywrapper.c`
20
+ cannot resolve a matching `setuid_<program>` entry point. Acquires the
21
+ effective UID via `PgLOG.set_suid()`, prints the caller's real and effective
22
+ user names, and shows the `pyproject.toml` snippet plus the
23
+ `pywrapper-install -l <program>` command needed to wrap a new script.
24
+ Diagnostic flags `-env`, `-inc`, and `-plg` dump the environment variables,
25
+ `sys.path`, and `PGLOG` dictionary respectively — handy for verifying the
26
+ setuid environment before wiring up a real program.
27
+
28
+ - **`pgstart.py`** — the Mode 2 launcher invoked through a `pgstart_<USER>`
29
+ copy of `pywrapper`. Reads the real/effective UIDs from `PGLOG`, then
30
+ permits execution only if the real user matches the effective user or the
31
+ shared GDEX common user (`PGLOG['GDEXUSER']`); unauthorized callers receive
32
+ an informational message and exit. After authorization it parses leading
33
+ flag tokens — `-bg` (background via `subprocess.Popen`), `-fg` (explicit
34
+ foreground, default), `-cwd <dir>` (chdir before exec), and the same
35
+ `-env`/`-inc`/`-plg` diagnostics as `pywrapper.py` — and then runs the
36
+ remaining arguments as a command (`subprocess.run`/`Popen`) under the
37
+ effective UID, logging a host/program/timestamp/user line to `pgstart.log`.
38
+
17
39
  ## Dependency requirement
18
40
 
19
41
  Any Python package whose programs are to be run via the setuid mechanism must declare
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "rda_python_setuid"
9
- version = "1.0.6"
9
+ version = "1.0.7"
10
10
  authors = [
11
11
  { name="Zaihua Ji", email="zji@ucar.edu" },
12
12
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_setuid
3
- Version: 1.0.6
3
+ Version: 1.0.7
4
4
  Summary: RDA Python Package to setuid for program executions as an effective or common user
5
5
  Author-email: Zaihua Ji <zji@ucar.edu>
6
6
  Project-URL: Homepage, https://github.com/NCAR/rda-python-setuid
@@ -30,6 +30,28 @@ Two modes are supported:
30
30
  - **Mode 2 (pgstart specialist):** a copy `pgstart_zji` runs any command as specialist
31
31
  `zji` via `pgstart.py`, restricted to authorized users.
32
32
 
33
+ Two Python entry points are packaged alongside the C wrapper:
34
+
35
+ - **`pywrapper.py`** — the default fallback target executed when `pywrapper.c`
36
+ cannot resolve a matching `setuid_<program>` entry point. Acquires the
37
+ effective UID via `PgLOG.set_suid()`, prints the caller's real and effective
38
+ user names, and shows the `pyproject.toml` snippet plus the
39
+ `pywrapper-install -l <program>` command needed to wrap a new script.
40
+ Diagnostic flags `-env`, `-inc`, and `-plg` dump the environment variables,
41
+ `sys.path`, and `PGLOG` dictionary respectively — handy for verifying the
42
+ setuid environment before wiring up a real program.
43
+
44
+ - **`pgstart.py`** — the Mode 2 launcher invoked through a `pgstart_<USER>`
45
+ copy of `pywrapper`. Reads the real/effective UIDs from `PGLOG`, then
46
+ permits execution only if the real user matches the effective user or the
47
+ shared GDEX common user (`PGLOG['GDEXUSER']`); unauthorized callers receive
48
+ an informational message and exit. After authorization it parses leading
49
+ flag tokens — `-bg` (background via `subprocess.Popen`), `-fg` (explicit
50
+ foreground, default), `-cwd <dir>` (chdir before exec), and the same
51
+ `-env`/`-inc`/`-plg` diagnostics as `pywrapper.py` — and then runs the
52
+ remaining arguments as a command (`subprocess.run`/`Popen`) under the
53
+ effective UID, logging a host/program/timestamp/user line to `pgstart.log`.
54
+
33
55
  ## Dependency requirement
34
56
 
35
57
  Any Python package whose programs are to be run via the setuid mechanism must declare