如何在 MacOs 上为非登录 shell 设置 PATH?

如何在 MacOs 上为非登录 shell 设置 PATH?

在 mac os 上,如果我执行位于的命令ssh localhost 'md5sum --version'则找不到。md5sum/usr/local/bin

此路径已列出,/etc/paths但 shell 不会读取此配置文件,因为上述命令创建了一个非登录 shell,因此 shell 认为调用者已经设置了PATH

在这种情况下,您如何更新PATH要包含的值?/usr/local/bin

答案1

一些解释:

我找不到任何常见的位置来为 macOS 中的所有非登录 shell 设置 PATH。也许没有?:(

例如,本文解释了一些为 launchD 启动的进程设置路径的解决方案(不适用于非登录 ssh 会话):

https://lucaspin.medium.com/where-is-my-path-launchd-fc3fc5449864

但是对于您的用例,使用非登录 ssh 会话,我在 macOS Sonoma 上尝试了这个:

ssh localhost 'echo $PATH'

返回此输出:

/usr/bin:/bin:/usr/sbin:/sbin

这个 PATH 从何而来?查看 /etc/ssh/sshd_config 文件,查看前几行 (最后一行)​​ 中的注释:

#       $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

sshd已编译使用该 PATH

相关内容