Como posso iniciar uma sessão de 'tela' como usuário não raiz

11

Existe uma maneira de abrir uma nova sessão de 'tela' na minha caixa RHEL como um usuário não root? Quando tento abrir uma nova tela usando o comando 'screen' como um usuário não raiz, ele falha e recebo a seguinte mensagem:

Cannot open your terminal '/dev/pts/2' - please check.

Pesquisei um pouco e encontrei pessoas sugerindo alterar as permissões no / dev / pts para conceder ao usuário não root (que está tentando abrir a tela) um acesso de leitura / gravação. Embora possa funcionar, não parece uma solução limpa. Existe uma maneira 'legal' que permita que um usuário não root abra uma sessão de tela?

Editado: Eu tenho esse problema nas minhas máquinas RHEL 5.5, 6.2 e 6.5. A versão da tela em todas essas caixas é 'Screen version 4.00.03 (FAU) 23-Oct-06'.

PS: - Eu sei que posso abrir uma sessão de tela como root e 'su' para iniciar meu comando / processo, mas não é isso que estou procurando.

Citylight
fonte

Respostas:

7

Este é um problema conhecido, se você ssh como root em algum lugar e depois suse tornar um usuário normal:

$ ssh root@server
# su -l anthon
$ screen 
Cannot open your terminal '/dev/pts/3' - please check.

Por exemplo, é descrito nessas postagens de 2005

A solução é efetuar login diretamente como o usuário em que você deseja que a screensessão seja executada.

Anthon
fonte
Eu entro como usuário normal. Ainda não pode ser executado screen.
codezombie
Talvez screennão esteja instalado no seu sistema ou algum outro motivo desconhecido que cause isso. Impossível dizer. Você deve postar uma nova pergunta (com muito mais informações) e excluir seu comentário.
Anthon
O VPS é gerenciado e o suporte diz que não é suportado em sistemas gerenciados. Eu poderia usar um binário de tela pronto ou algo assim?
Codezombie #
1
Que parte de você deve postar uma nova pergunta que não entende? Os comentários não são para postar perguntas e respostas. Suspiro .... screené executado como root (usando setuid); portanto, se você puder organizar isso em seu sistema gerenciado, basta instalar o binário a partir do .deb ou .rpm. No seu caso, eu usaria (em tmuxvez disso, que não requer a execução como root.
Anthon
Graças compreendo perfeitamente o que disse, mas eu tenho certeza que ele será definido como duplicado se eu postar
codezombie
1

Você precisa usar script /dev/nullantes de usar screen. Depois de sair, screenvocê precisa exit.

tyftler
fonte
Ou ter tudo em um comando para que você não tem que sair da sessão script:sudo -su user script -c bash /dev/null
basic6