2

У меня есть пользователь 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), поэтому я хочу установить PATH для Sensu следующим образом:

export PATH=$PATH:/usr/local/bin

Однако я отредактировал и /opt/sensu/.bashrc и /opt/sensu/.profile , не сработало; Я читал онлайн (ссылка), .bashrc будет получен только после входа в систему для обоих интерактивных / неинтерактивных пользователей, однако, Sensu как /bin/false пользователь, .profile будет получен после входа пользователя через bash, насколько я понимаю Разве у него нет оболочки входа в систему, как у всех, но как я могу достичь своей цели, установив для нее $PATH ?

Кстати, запустив sudo su - sensu -s /bin/bash я увидел, что .profile был получен правильно, однако для меня это не имеет особого смысла, так как пока клиент sensu выполняет мой скрипт проверки Python, он не будет иметь bash.

Могу ли я изменить /etc/passwd чтобы изменить /bin/false на /bin/bash , не вызовет ли это проблемы?

2 ответа2

1

Чтобы обновить $ PATH, необходимо добавить следующую строку

экспорт PATH = $ PATH:/usr/local/bin

В зависимости от типа машины и сервера / клиента имя файла будет меняться:

Для RedHat машины:

  • зепзи-клиент

     /etc/sysconfig/sensu-client
    
  • зепзи-сервер

     /etc/sysconfig/sensu-server
    

Для машин Debian:

  • зепзи-клиент

     /etc/default/sensu-client
    
  • зепзи-сервер

     /etc/default/sensu-server
    
1

Как вы уже заметили, оболочкой для вашего пользователя sensu является /bin/false , поэтому она вообще не имеет оболочки. Вы можете создать для него настоящую оболочку, такую как /bin /bash, и в то же время заблокировать учетную запись (используйте passwd -l), чтобы вы не могли удаленно войти в нее, что сделало ее более безопасной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .