Este é o objetivo pretendido de libutempter , mas também requer um nível de suporte de aplicativo, que tmux tem somente recentemente (fevereiro de 2014) obtido na ramificação master (que você está usando), mas pode não estar pronto para uso.
Do FAQ na atual distribuição de fonte 1.9a:
* How is tmux different from GNU screen?
[...]
- screen has support for updating utmp. Nobody has really come up with a clean,
portable way to do this without making tmux setuid or setgid yet.
A ramificação principal FAQ on-line omite exatamente esse ponto, embora a% O arquivoCHANGES ainda não está atualizado.
Verifique a definição HAVE_UTEMPTER em Makefile (não o esperado config.h !) depois de executar configure , se não estiver definido, você precisará ler config.log para determinar o que está errado com o ambiente de criação.
Meus melhores palpites são:
- você não tem um
libutempter.a, apenaslibutempter.so, então o uso de-staticfaz com que o libutempter falhe na detecção, já que ele não pode ser vinculado - ele é detectado e compilado, mas o
utempterhelper (ao qual a tarefa privilegiada de atualizaçãoutmpé delegada) não é setgid (geralmente setgid utmp) - alguns sistemas são conhecidos por limitar o acesso a esse ajudante para prevent still , portanto, o binário de chamada (ou seja,
tmux) deve também ser setgid (normalmente setgid utempter)
Se você criar libutempter você mesmo deve fazer ambas versões estáticas e dinâmicas, mas eu suspeito que os pacotes de distribuição conterão apenas a versão dinâmica.
Se você não tem acesso root, você não pode instalar seu próprio libutempter corretamente: ele não pode manter os arquivos utmp / wtmp do sistema. Se houver uma instalação do sistema do libutempter que não tenha apenas libutempter.a , você deverá ser capaz de compilar seu próprio libutempter.a na configuração / link tmux estaticamente, e usar o sistema já instalado setgid helper (geralmente /usr/lib/utempter/utempter ou /usr/libexec/utempter/utempter ). Você não pode solucionar o problema se o acesso a esse binário também for restrito, ou seja, tmux precisa ser setgid para executá-lo.
O tratamento de erros para os novos recursos do libutempter está incompleto em tmux neste momento, se você puder reconstruir o libutempter com -DUTEMPTER_DEBUG , poderá ajudar se nenhum dos itens acima ocorrer:
make CFLAGS=-DUTEMPTER_DEBUG