Linux “tmux” Permissão deninada

1

Estou tentando executar alguns scripts automatizados do root que começarão a executar outros scripts como outro usuário em uma sessão "tmux".

Exemplo:

Arquivo 1 - "start_test_script.sh" - no diretório inicial "raiz":

#!/bin/bash
cd /home/user/; sudo -u user ./test_script.sh
cd ~

Arquivo 2 - "test_script.sh" - no diretório inicial "usuário":

#!/bin/bash
tmux new -d -s test
tmux send -t test './test_script_02.sh' ENTER

Explicação:

"Arquivo 1" será executado como "root", que executa "Arquivo 2" como "usuário".

"Arquivo 2" iniciará uma sessão "tmux" separada com o nome "test", então ele tentará executar um terceiro arquivo naquela sessão.

Normalmente, isso deve funcionar bem, eu tentei localmente em um Virtualbox e não tive problemas.

Eu iniciei um servidor VPS e tentei isso, mas ele não está funcionando como deveria. Não há erros no root, mas duas coisas acontecem.

Eu recebo um erro na sessão "tmux" criada em "user":

/root/.tmux.conf: /root/.tmux.conf: Permission denied

E o terceiro script "./test_script_02.sh" não é executado. A sessão "tmux" apenas fica pendurada depois de ser criada, eu não consigo nem escrever nada na sessão a menos que eu pressione "CTRL-C" Quando eu pressiono "CTRL-C", recebo o mesmo erro abaixo. Parece exatamente o mesmo.

Quando tento abrir uma sessão "tmux" a partir do próprio "usuário" executando o comando "tmux" a partir do shell, a sessão do tmux é executada, mas recebo um erro no topo da sessão e é assim dentro da sessão:

-bash: /root/.bash_profile: Permission denied
user@server:/home/user$ 

Obrigado em avançado.

EDIT 01:

OK, aparentemente o que eu fiz no VPS não é exatamente o mesmo que na minha máquina local.

Na máquina local, quando você instala o servidor, cria um usuário ao lado da raiz que é adicionado ao grupo "sudo". Enquanto no VPS, eles deixam você diretamente no shell "root".

Por isso, tenho tentado executar como "root" em vez de qualquer outro usuário com privilégios elevados.

O que eu fiz agora é listar as permissões em / dev / pts /

root@server:/dev/pts# ls -l
total 0
crw------- 1 root       tty  136, 0 Oct 31 16:12 0
crw--w---- 1 user       tty  136, 1 Oct 31 16:09 1
crw--w---- 1 user       tty  136, 2 Oct 31 14:19 2
crw--w---- 1 root       tty  136, 3 Oct 31 14:17 3
c--------- 1 root       root   5, 2 Oct 31 14:17 ptmx

Em seguida, criei um novo usuário "admin" e adicionei ao grupo "sudo", em seguida, listei as permissões novamente e encontrei:

admin@server:~$ ls -l /dev/pts/*
crw------- 1 root       tty  136, 0 Oct 31 16:14 /dev/pts/0
crw--w---- 1 user       tty  136, 1 Oct 31 16:09 /dev/pts/1
crw--w---- 1 user       tty  136, 2 Oct 31 14:19 /dev/pts/2
crw--w---- 1 root       tty  136, 3 Oct 31 16:15 /dev/pts/3
crw--w---- 1 admin      tty  136, 4 Oct 31 16:15 /dev/pts/4
c--------- 1 root       root   5, 2 Oct 31 14:17 /dev/pts/ptmx

Agora, neste ponto, não tenho certeza se existe a causa real, como você pode ver que "root" não tem permissões de gravação para agrupar enquanto "admin" faz.

Agora, se eu executar o comando do usuário "admin" em vez de "root", conseguiremos que os meus scripts sejam executados corretamente.

Quanto ao segundo erro mencionado acima ao executar "tmux" de "user", parece ocorrer apenas após a execução do script de "root", que termina com a permissão negada mencionada no primeiro erro acima.

Neste estágio, eu não tenho certeza se posso chamar isso de resolvido, talvez eu não devesse ter usado o shell "root" em primeiro lugar, criado um novo usuário e adicionado ao grupo "sudo".

    
por 0x00FE 31.10.2015 / 18:48

1 resposta

1

Execute o sudo com a opção -i: sudo -i -u user ./test_script.sh . Isso definirá variáveis de ambiente para o usuário também.

    
por 31.10.2015 / 23:21