/bin/false 사용자에 대해 $PATH 설정

/bin/false 사용자에 대해 $PATH 설정

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

PATHsensu가 내 검사 스크립트를 트리거하는 동안 내 측에 설치된 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
    

관련 정보