Linux
我應該以 root 身份使用哪個命令來生成具有覆蓋的數字 uid/gid/groups 的程序?
我應該使用哪個命令(在發行版儲存庫中可用)啟動具有指定數字 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 覆蓋效果仍然存在。