如果当前用户对文件只有执行 (--x) 权限,解释器(由#!/path/to/interpreter文件开头指定)在哪个用户下运行?
#!/path/to/interpreter
它不可能是当前用户,因为他没有读取文件的权限。它不能是 root,因为这样解释器中包含的任意代码将获得 root 访问权限。
那么,解释器进程作为哪个用户运行?
编辑:我认为我的问题假设该文件已经被读取到足以知道它指定了哪个解释器,而实际上它不会走那么远。解释执行目标文件的命令的当前 shell(通常是 b/a/sh)会尝试读取它,但会失败。
process permissions shebang interpreter
interpreter ×1
permissions ×1
process ×1
shebang ×1