Eu tenho um usuário 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
Quero atualizar seu PATH
, para que, enquanto o sensu acione meu script de verificação, ele use minha versão python instalada lateralmente (instalada em /usr/local/bin
), portanto, quero definir o sensu PATH
para:
export PATH=$PATH:/usr/local/bin
No entanto, editei ambos /opt/sensu/.bashrc
e /opt/sensu/.profile
não funcionou; Eu li online (link), .bashrc
será fornecido somente após o login para usuários interativos/não interativos, no entanto, sensu como /bin/false
usuário, .profile
será fornecido após o login do usuário com bash, meu entendimento é que ele não possui um shell de login, mas como poderia Eu alcanço meu objetivo de definir $PATH
isso?
Aliás, ao executar, sudo su - sensu -s /bin/bash
vi que .profile foi obtido corretamente, no entanto, isso faz pouco sentido para mim, pois enquanto o cliente sensu executa meu script de verificação python, ele não terá bash.
Posso modificar /etc/passwd
para mudar /bin/false
para /bin/bash
, isso causará problemas, por favor?
Responder1
Como você já percebeu, o shell do seu usuário sensu é /bin/false
, portanto ele não possui nenhum shell. Você pode fornecer um shell real como /bin/bash e, ao mesmo tempo, bloquear a conta (use passwd -l
) para não poder fazer login com a conta remotamente, tornando-a um pouco mais segura.
Responder2
Para atualizar o $PATH, a seguinte linha precisa ser adicionada
exportar PATH=$PATH:/usr/local/bin
Dependendo do tipo de máquina e do servidor/cliente, o nome do arquivo mudaria:
Para máquina redhat:
cliente sensu
/etc/sysconfig/sensu-client
servidor sensu
/etc/sysconfig/sensu-server
Para máquinas Debian:
cliente sensu
/etc/default/sensu-client
servidor sensu
/etc/default/sensu-server