Set $ PATH Para / bin / false user

2

Eu tenho um usuário sensu:

sensu:x:496:496:Sensu Monitoring Framework:/opt/sensu:/bin/false

Seu $PATH é: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

Eu quero atualizar seu PATH , para que enquanto sensu acionar meu script de verificação, ele use a versão python instalada (instalada em /usr/local/bin ), portanto, desejo definir PATH to:

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

No entanto, editei /opt/sensu/.bashrc e /opt/sensu/.profile , não funcionou; Eu li on-line ( link ), .bashrc será originado somente após o login para usuários interativos / não interativos, no entanto, como /bin/false usuário, .profile será originado após o login do usuário com o bash, eu entendo que ele não tem um shell de login como todos, mas como eu poderia atingir meu objetivo de definir $PATH para isso?

BTW, executando sudo su - sensu -s /bin/bash vi o .profile sendo originado corretamente, no entanto, isso faz pouco sentido para mim, já que, embora o sensu client execute meu script de verificação do python, ele não terá o bash.

Posso modificar /etc/passwd para alterar /bin/false para /bin/bash , isso causará problemas?

    
por Wayne Ye 29.09.2015 / 00:15

2 respostas

1

Como você já notou, o shell para seu usuário sensu é /bin/false , então ele não tem um shell. Você poderia dar um shell real como / bin / bash e ao mesmo tempo bloquear a conta (use passwd -l ) para que você não possa fazer login com a conta remotamente, tornando-a um pouco mais segura.

    
por 29.09.2015 / 00:32
1

Para atualizar o $ PATH, a seguinte linha precisa ser adicionada

exportação PATH = $ PATH: / usr / local / bin

Dependendo do tipo de máquina e do servidor / cliente, o nome do arquivo mudará:

Para a máquina redhat:

  • sensu-client

     /etc/sysconfig/sensu-client
    
  • sensu-server

     /etc/sysconfig/sensu-server
    

Para máquinas debian:

  • sensu-client

     /etc/default/sensu-client
    
  • sensu-server

     /etc/default/sensu-server
    
por 28.07.2016 / 12:11

Tags