У меня есть пользователь 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
будет получен источник только после входа в систему как для интерактивных, так и для неинтерактивных пользователей, однако, sensu как /bin/false
пользователь, .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, необходимо добавить следующую строку
экспорт ПУТЬ=$ПУТЬ:/usr/local/bin
В зависимости от типа машины и сервера/клиента имя файла будет меняться:
Для машины RedHat:
сенсу-клиент
/etc/sysconfig/sensu-client
sensu-сервер
/etc/sysconfig/sensu-server
Для машин Debian:
сенсу-клиент
/etc/default/sensu-client
sensu-сервер
/etc/default/sensu-server