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 버전( 아래에 설치됨)을 사용하도록 sensu를 업데이트하고 싶습니다 . /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 머신의 경우:
sensu-클라이언트
/etc/sysconfig/sensu-client
sensu-서버
/etc/sysconfig/sensu-server
데비안 머신의 경우:
sensu-클라이언트
/etc/default/sensu-client
sensu-서버
/etc/default/sensu-server