如何在以特定非 root 用户身份执行的命令上使用 strace?

dug*_*ous 7 permissions sudo strace

我试图用来strace观察某个进程在哪里搜索文件。此过程搜索的位置将根据用户及其独特的环境变量而有所不同。但是,strace需要 root 权限才能运行,当我运行时:

sudo strace mycommand 
Run Code Online (Sandbox Code Playgroud)

mycommand似乎在 root 用户的上下文中执行,并且搜索到的位置不适用于当前用户。

以下使 mycommand 在用户(名为“user”)上下文中执行的尝试未成功:

sudo strace su user -c "mycommand"

sudo strace su -u user mycommand
Run Code Online (Sandbox Code Playgroud)

如何使用strace以特定的非 root 用户身份执行的命令?

小智 1

您只需要设置一个非 root 用户,然后设置 strace 和命令,如下所示:

sudo -u <no-root user> strace <command>
Run Code Online (Sandbox Code Playgroud)

前任:

sudo -u noroot strace ls
Run Code Online (Sandbox Code Playgroud)

-u - 以用户身份运行命令