人形でユーザーパスを設定するには?

人形でユーザーパスを設定するには?

私に興味深いものがあります。質問この問題は手動で指定することで解決できますPATH

問題は、私のrootユーザーが次のようなことですPATH

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

NGINX / PassengerでPuppet Masterをuserとして実行すると、次puppetのようPATHに設定されます。

/usr/sbin:/sbin

ユーザーの環境変数はどこに設定されていますかPATHpuppetユーザーに正しい権限があることを確認するにはどうすればよいですかPATH?ユーザーにシェルがありません:

puppet:x:103:106::/var/lib/puppet:/bin/false

Puppet Masterの起動を担当するRackファイルにconfig.ru次の文を挿入して、PATHユーザーが何をpuppet実行しているかを確認しました。

puts "PATH: " + ENV.fetch('PATH', 'null')

出力はPATH: nullなので、PATHPassengerの実行時に環境変数はまったく設定されません。

私はUbuntu 14.04 amd64を実行しているDockerコンテナで作業しています。

ベストアンサー1

通常、LinuxはPATHドットファイルを読み取り、環境変数を設定します。ログインして/etc/profile読んでください。デフォルトの環境変数を設定したら、たとえば.shell_profileドット.bash_profileファイルがない場合は読み込みを試み.bash_login、存在しない場合は検索します.profile

問題に戻りましょう。ユーザーにpuppetシェルがないか、上記のファイルをホストしません。を実行してみると確認できますecho "$SHELL" && echo "$PATH"

PATHドットファイルのいずれかを使用して手動で設定したり、次の内容を表示したりできます。http://www.puppetcookbook.com/posts/set-global-exec-path.html

おすすめ記事