AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 410446
Accepted
Dims
Dims
Asked: 2017-12-13 07:19:28 +0800 CST2017-12-13 07:19:28 +0800 CST 2017-12-13 07:19:28 +0800 CST

Como definir variáveis ​​de ambiente para plink.exe?

  • 772

plinké executável do Windows, que se conecta por ssh e executa algum comando no lado do servidor.

Por exemplo

plink myname@mycomputer ls

mostrará o resultado do comando ls, sendo executado no diretório inicial de myname.

Infelizmente, nem ~/.profilenem ~/.bashrcé executado.

O que é contrato para sshconexão e o que define, quais variáveis ​​são definidas e quais não são? se eu correr

plink myname@mycomputer env

Vejo algumas variáveis ​​como HOME, PWDe LOGNAMEque são específicas do usuário. Como definir outros?

Nenhum dos seguintes ajudou:

plink myname@mycomputer sh -c env

plink myname@mycomputer bash -c env

Esses comandos funcionaram, mas mostraram um conjunto "nu" de variáveis.

Como dizer ao shell para executar seus scripts iniciais para o usuário?

ssh windows
  • 1 1 respostas
  • 2624 Views

1 respostas

  • Voted
  1. Best Answer
    thrig
    2017-12-13T08:16:33+08:002017-12-13T08:16:33+08:00

    Quais sshexecuções podem ser observadas, por exemplo sysdig, em um terminal e depois em outro lugar em execução , o plink myname@mycomputer uptimeque deve mostrar algo como

    $ sudo sysdig -p '%proc.cmdline' 'evt.type = execve'
    sshd
    bash -c uptime
    bash -c uptime
    uptime
    

    portanto, neste caso, bashestá sendo executado (pode não ser o caso, por exemplo, no Alpine Linux, que não é instalado bashpor padrão) com os -c uptimeargumentos. Isso causa bashmais ou menos diretamente execesse comando, pois não há pipeline sofisticado ou vários comandos de shell que exigem que bashcontinuem em execução.

    Em seguida, podemos registrar quais arquivos são bashabertos e executar novamente o plink ... uptimecomando (isso pode ser mais detalhado, dependendo do que mais está acontecendo no sistema):

    $ sysdig 'evt.type = open and proc.name = "bash"'
    7847 16:03:48.388447919 0 bash (22135) > open
    7848 16:03:48.388466237 0 bash (22135) < open fd=3(<f>/etc/ld.so.cache) name=/etc/ld.so.cache flags=4097(O_RDONLY|O_CLOEXEC) mode=0
    7855 16:03:48.388669720 0 bash (22135) > open
    7856 16:03:48.388695391 0 bash (22135) < open fd=3(<f>/lib64/libtinfo.so.5) name=/lib64/libtinfo.so.5 flags=4097(O_RDONLY|O_CLOEXEC) mode=0
    7871 16:03:48.389069345 0 bash (22135) > open
    7872 16:03:48.389082901 0 bash (22135) < open fd=3(<f>/lib64/libdl.so.2) name=/lib64/libdl.so.2 flags=4097(O_RDONLY|O_CLOEXEC) mode=0
    7885 16:03:48.389284722 0 bash (22135) > open
    7886 16:03:48.389290872 0 bash (22135) < open fd=3(<f>/lib64/libc.so.6) name=/lib64/libc.so.6 flags=4097(O_RDONLY|O_CLOEXEC) mode=0
    7921 16:03:48.391876315 0 bash (22135) > open
    7922 16:03:48.391927051 0 bash (22135) < open fd=-6(ENXIO) name=/dev/tty flags=67(O_NONBLOCK|O_RDWR) mode=0
    7945 16:03:48.393905761 0 bash (22135) > open
    7946 16:03:48.393957884 0 bash (22135) < open fd=3(<f>/proc/meminfo) name=/proc/
    meminfo flags=4097(O_RDONLY|O_CLOEXEC) mode=0
    8049 16:03:48.395910893 0 bash (22135) > open
    8050 16:03:48.395916693 0 bash (22135) < open fd=3(<f>/root/.bashrc) name=/root/.bashrc flags=1(O_RDONLY) mode=0
    

    Portanto, parece que /root/.bashrcaqui está sendo lido no meu teste virt; para confirmar isso, podemos adicionar algo a esse arquivo e executar novamente nosso comando de teste, no servidor:

    echo echo echo >> ~/.bashrc
    

    e depois conectamos novamente (ajuste o comando para ficar plink ...conforme necessário)

    $ ssh gato uptime
    echo
     16:05:20 up  5:19,  1 user,  load average: 0.11, 0.38, 0.27
    $ 
    

    então, neste caso , .bashrc está sendo lido, então você pode colocar comandos lá. Não sei por que no seu caso .bashrcnão está sendo lido; rastrear coisas para ver o que está acontecendo.

    • 1

relate perguntas

  • Por que o utilitário ssh é considerado um pty?

  • Auto-SSH funciona manualmente, mas não em segundo plano

  • Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]

  • rsync porta 22 e 873 uso

  • Aborto repentino do SCP: tubo quebrado, código de autenticação de mensagem incorreto

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve