Ich habe einen Sensu-Benutzer:
sensu:x:496:496:Sensu Monitoring Framework:/opt/sensu:/bin/false
Es $PATH
lautet:
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
Ich möchte es aktualisieren PATH
, sodass Sensu, während es mein Prüfskript auslöst, die von mir installierte Python-Version (installiert unter /usr/local/bin
) verwendet. Daher möchte ich Sensu PATH
wie folgt einstellen:
export PATH=$PATH:/usr/local/bin
Ich habe jedoch beide bearbeitet /opt/sensu/.bashrc
und /opt/sensu/.profile
es hat nicht funktioniert. Ich habe online gelesen (Verknüpfung), .bashrc
wird sowohl für interaktive als auch für nicht interaktive Benutzer erst nach der Anmeldung als Quelle verwendet. Für Sensu als /bin/false
Benutzer .profile
wird die Quelle jedoch nach der Benutzeranmeldung mit Bash verwendet. Meines Wissens verfügt es überhaupt nicht über eine Anmelde-Shell, aber wie kann ich mein Ziel erreichen, indem ich $PATH
es festlege?
Übrigens sudo su - sensu -s /bin/bash
habe ich beim Ausführen gesehen, dass .profile richtig bezogen wurde. Das macht für mich jedoch wenig Sinn, da der Sensu-Client, während er mein Python-Prüfskript ausführt, kein Bash hat.
Kann ich /etc/passwd
die Änderung /bin/false
auf ändern /bin/bash
? Wird das bitte Probleme verursachen?
Antwort1
Wie Sie bereits bemerkt haben, ist die Shell für Ihren Sensu-Benutzer /bin/false
, er hat also überhaupt keine Shell. Sie könnten ihm eine echte Shell wie /bin/bash geben und gleichzeitig das Konto sperren (verwenden passwd -l
), sodass Sie sich nicht remote mit dem Konto anmelden können, was es etwas sicherer macht.
Antwort2
Um den $PATH zu aktualisieren, muss die folgende Zeile hinzugefügt werden
export PATH=$PATH:/usr/local/bin
Je nach Maschinentyp und Server/Client würde sich der Dateiname ändern:
Für Redhat-Maschine:
Sensu-Client
/etc/sysconfig/sensu-client
Sensu-Server
/etc/sysconfig/sensu-server
Für Debian-Rechner:
Sensu-Client
/etc/default/sensu-client
Sensu-Server
/etc/default/sensu-server