私にはsensuユーザーがいます:
sensu:x:496:496:Sensu Monitoring Framework:/opt/sensu:/bin/false
それ$PATH
は:
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
を更新してPATH
、sensu がチェック スクリプトをトリガーしている間に、私の側でインストールした Python バージョン ( の下にインストール) が使用されるようにしたいので/usr/local/bin
、sensu を次のように設定しますPATH
。
export PATH=$PATH:/usr/local/bin
しかし、私は/opt/sensu/.bashrc
との両方を編集しましたが/opt/sensu/.profile
、うまくいきませんでした。オンラインで読んだところ(リンク) は、.bashrc
対話型/非対話型ユーザーの両方でログイン後にのみソース化されますが、/bin/false
ユーザーとしての sensu は、.profile
bash でユーザーがログインした後にソース化されます。私の理解では、ログイン シェルはまったくありませんが、設定の目標を達成するに$PATH
はどうすればよいでしょうか。
ところで、実行することでsudo su - sensu -s /bin/bash
.profile が正しくソース化されたことを確認しましたが、sensu クライアントは python チェック スクリプトを実行しますが、bash は実行されないため、これはあまり意味がありません。
を に/etc/passwd
変更するように修正できますか。これにより問題が発生しますか?/bin/false
/bin/bash
答え1
すでにお気づきのとおり、sensu ユーザーのシェルは なので/bin/false
、シェルはまったくありません。/bin/bash のような実際のシェルを提供すると同時に、アカウントをブロック ( を使用passwd -l
) して、そのアカウントでリモートからログインできないようにすることで、安全性を少し高めることができます。
答え2
$PATHを更新するには、次の行を追加する必要があります
エクスポート PATH=$PATH:/usr/local/bin
マシンの種類とサーバー/クライアントに応じてファイル名は変わります。
Redhat マシンの場合:
センスクライアント
/etc/sysconfig/sensu-client
センスサーバー
/etc/sysconfig/sensu-server
Debian マシンの場合:
センスクライアント
/etc/default/sensu-client
センスサーバー
/etc/default/sensu-server