Linux

我應該以 root 身份使用哪個命令來生成具有覆蓋的數字 uid/gid/groups 的程序?

  • May 5, 2022

我應該使用哪個命令(在發行版儲存庫中可用)啟動具有指定數字 uid、gid 和組的 shell?通常su用於從 root 更改為其他使用者,但它會嘗試按名稱查找組,這在使用外部文件系統、命名空間和 Docker 容器時可能不存在。

我希望它是一個簡單的應用程序,只執行、setgroups(2)和,沒有任何或 nsswitch。用 C 語言實現這樣的程序很容易,但也許這個案例使用了標準和發行版可用的東西?setgid(2)``setuid(2)``execve(2)``/etc/passwd

作為備選:

設置隱私

cd /; setpriv --reuid=1000 --regid=1000 --init-groups --reset-env bash

乾淨簡單

chroot

chroot --userspec=1000:1000 --groups=1001,1002 / /bin/bash

Chroot 具有--userspec--groups選項,通常在發行版中可用。將目標目錄設置為/呈現 chroot nil 的主要目的,但 uid/gid/groups 覆蓋效果仍然存在。

引用自:https://unix.stackexchange.com/questions/701309