Você precisa considerar o ambiente no qual alguns de seus aplicativos acima estão em execução. Há implicações de segurança para executar esses tipos de comandos com PATHs que eles não estão esperando. Um usuário mal-intencionado que tenha acesso a um diretório no início do PATH poderá substituir seus próprios comandos e obter acesso, etc.
Os scripts de inicialização geralmente usam caminhos completos para os comandos que desejam executar (alguns podem definir um PATH restrito) - isso garante que os comandos esperados sejam executados.
Ao invocar um serviço, o SCM não usa PATHS, ele usa manifests ( /var/svc/manifest/...
). Manifestos são arquivos xml e contêm todas as informações necessárias para definir como interagir com um determinado serviço. Novamente, caminhos completos para comandos são usados para garantir que os comandos esperados sejam executados.
Você pode definir um padrão PATH
(usuários normais) ou SUPATH
(para raiz) em /etc/default/cron
. Novamente, você deve considerar as implicações de segurança de fazer isso - é muito melhor usar caminhos completos para comandos e fazer com que os comandos definam seu próprio PATH, se necessário.
Acredito que o PATH padrão que o init transmite para o SMF e para os scripts init é compilado no init binário e não pode ser alterado. É explicitamente não lido / etc / default / init.