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 / 问题

All perguntas(unix)

Martin Hope
Boris Burkov
Asked: 2018-06-12 02:17:47 +0800 CST

Quem lê /etc/resolv.conf?

  • 18

Meu servidor Centos 7 não resolve nomes de domínio corretamente. Pelo que vejo, em sistemas Linux modernos /etc/resolv.confgeralmente é gerado com dhclient, dnsmasqou Network Manager.

Assim, tenho uma pergunta teórica geral sobre a pilha de rede nos Linux modernos:

Quem é responsável pela leitura /etc/resolv.conf? Quais players (serviços ou subsistemas de kernel) estão envolvidos na resolução de nomes de domínio?

RESPOSTA CURTA: O manual do Arch linux diz que a configuração de alto nível da resolução de nomes de domínio é feita /etc/nsswitch.conf e depende da glibcAPI Name Service Switch.

glibcusa nss-resolvefunção para enviar solicitações de DNS para servidores DNS.

Normalmente, em sistemas CentOS modernos, nss-resolve depende do systemd-resolved serviço. Se /etc/resolv.conffoi gerado por algo como dhclient-script, systemd-resolvedlê e funciona em modo de compatibilidade, emulando o comportamento de sistemas mais antigos como BINDo cliente DNS.

networking dns
  • 3 respostas
  • 5517 Views
Martin Hope
Tim
Asked: 2018-06-08 06:28:21 +0800 CST

"execute qualquer comando que passará dados não confiáveis ​​para comandos que interpretam argumentos como comandos"

  • 18

Do manual do findutils:

Por exemplo, construções como esses dois comandos

# risky
find -exec sh -c "something {}" \;
find -execdir sh -c "something {}" \;

são muito perigosos. A razão para isso é que o '{}' é expandido para um nome de arquivo que pode conter um ponto e vírgula ou outros caracteres especiais para o shell. Se, por exemplo, alguém criar o arquivo /tmp/foo; rm -rf $HOME, os dois comandos acima poderão excluir o diretório inicial de alguém.

Portanto, por esse motivo, não execute nenhum comando que passará dados não confiáveis ​​(como os nomes dos arquivos) para comandos que interpretam argumentos como comandos a serem interpretados posteriormente (por exemplo, 'sh').

No caso do shell, existe uma solução inteligente para esse problema:

# safer
find -exec sh -c 'something "$@"' sh {} \;
find -execdir sh -c 'something "$@"' sh {} \;

Essa abordagem não garante evitar todos os problemas, mas é muito mais segura do que substituir os dados escolhidos pelo invasor no texto de um comando shell.

  1. A causa do problema é find -exec sh -c "something {}" \;que a substituição de {}não está entre aspas e, portanto, não é tratada como uma única string?
  2. Na solução find -exec sh -c 'something "$@"' sh {} \;,

    • first {}é substituído, mas como {}não está entre aspas, também não "$@"tem o mesmo problema que o comando original? Por exemplo, "$@"será expandido para "/tmp/foo;", "rm", "-rf"e "$HOME"?

    • por que {}não é escapado ou citado?

  3. Você poderia dar outros exemplos (ainda com sh -c, ou sem ele se aplicável; com ou sem findo que pode não ser necessário) onde o mesmo tipo de problema e solução se aplicam, e que são exemplos mínimos para que possamos focar no problema e na solução com pouca distração possível? Veja Maneiras de fornecer argumentos para um comando executado por `bash -c`

Obrigado.

shell
  • 4 respostas
  • 2516 Views
Martin Hope
Varius
Asked: 2018-06-04 01:23:29 +0800 CST

GitKraken não inicia mais no Ubuntu 18.04

  • 18

Quando liguei meu Ubuntu 18.04 ontem e queria iniciar o GitKraken, não funcionou. Depois de clicar em seu ícone, vejo como o processo tenta iniciar no canto superior esquerdo (ao lado de "Atividades"), mas depois de alguns segundos o processo parece morrer e nada acontece. A tentativa de iniciar o GitKraken a partir do console também falha com as duas mensagens a seguir:

/snap/gitkraken/58/bin/desktop-launch: line 23: $HOME/.config/user-dirs.dirs: Permission denied
ln: failed to create symbolic link '$HOME/snap/gitkraken/58/.config/gtk-2.0/gtkfilechooser.ini': File exists

Infelizmente, minhas habilidades em Linux são muito limitadas para resolver isso. A única coisa que tentei é chmod 777 $HOME/.config/user-dirs.dirspor causa do Permossion deniedmas isso não ajudou.

EDIT: como terdon sugeriu em seu comentário que fiz ls -ld ~/.config/user-dirs.dirse esta é a saída:

-rwxrwxrwx 1 myusername myusername 633 Mai 6 10:30 /home/mayusername/.config/user-dirs.dirs

Então, fiz o mv ~/snap/gitkraken/58/.config/gtk-2.0/gtkfilechooser.ini gtkfilechooser.ini.bakcomando e tentei iniciar o GitKraken depois. Eu não comecei a mostrar novamente:

/snap/gitkraken/58/bin/desktop-launch: line 23: /home/myusername/.config/user-dirs.dirs: Permission denied

O ln: failed to create symbolic link ...erro do meu post inicial não apareceu. Executar exe llno diretório ~/snap/gitkraken/58/.config/gtk-2.0me dá a seguinte saída:

drwxrwxr-x 2 myusername myusername 4096 Jun  3 16:44 ./
drwxrwxr-x 8 myusername myusername 4096 Mai 21 12:28 ../
lrwxrwxrwx 1 myusername myusername   47 Jun  3 15:45 gtkfilechooser.ini -> /home/myusername/.config/gtk-2.0/gtkfilechooser.ini
-rw-r--r-- 1 myusername myusername  198 Jun  3 16:44 gtkfilechooser.ini.bak

gtkfilechooser.ini -> /home/myusername/.config/gtk-2.0/gtkfilechooser.iniestá vermelho porque o arquivo não existe mais. Executar o chmodcomando posteriormente não mudou nada. O GitKraken não inicia e gera os mesmos erros.

permissions configuration
  • 2 respostas
  • 12694 Views
Martin Hope
acgbox
Asked: 2018-05-25 17:01:25 +0800 CST

Obtenha o nome da interface de rede e o endereço MAC na linha de comando

  • 18

Se eu executar o comando

ip link | awk '{print $2}'

no Ubuntu 18.04, recebo esta saída:

lo:
00:00:00:00:00:00
wlp1s0:
2c:6e:85:bf:01:00
enp2s0:
14:18:77:a3:01:02

Eu quero formatado assim (sem lo)

wlp1s0: 2c:6e:85:bf:01:00
enp2s0: 14:18:77:a3:01:02

Como eu faço isso?

ubuntu command-line
  • 7 respostas
  • 44202 Views
Martin Hope
Neo_Returns
Asked: 2018-05-19 23:57:34 +0800 CST

Exportar uma página man em pdf

  • 18

Fazer man -t man > man.psisso exportará a página man para man in postscript.

Como posso exportá-lo em PDF?

Eu examinei os manuais e aprendi sobre a -Topção, mas não está claro para mim.

pdf man
  • 2 respostas
  • 7742 Views
Martin Hope
giusti
Asked: 2018-04-06 09:08:23 +0800 CST

Isole completamente uma máquina VirtualBox

  • 18

Gostaria de usar o VirtualBox para instalar algum software que não deveria ter acesso ao meu computador host (e vice-versa). No entanto, também imagino a possibilidade de tentar coisas mais "perigosas", como tentar executar exploits de dia zero e ver o que eles podem fazer.

Quão isolada uma máquina virtual pode ser feita do host? Devo (ou posso ?) configurar um firewall entre o convidado e o host? Os complementos de convidados são um risco de segurança? E os diretórios compartilhados?

No momento, a máquina convidada está executando o teste GNU/Linux Debian.

security virtualbox
  • 1 respostas
  • 11282 Views
Martin Hope
RomuloPBenedetti
Asked: 2018-02-17 21:31:11 +0800 CST

Diferença entre ATTRS e ATTR nas regras do udev?

  • 18

Qual é a diferença entre ATTRS e ATTR nas regras do udev? Ambos não são atributos? Por que a distinção?

linux udev
  • 1 respostas
  • 9899 Views
Martin Hope
Dr. Gianluigi Zane Zanettini
Asked: 2018-02-17 09:06:20 +0800 CST

Capture toda a saída de um script para um arquivo (do próprio script) [duplicado]

  • 18
Esta pergunta já tem respostas aqui :
Redirecione o stderr de todos os comandos subsequentes usando exec (4 respostas)
Fechado há 4 anos .

Eu tenho um script bash que chama vários comandos e imprime alguma saída (tanto dos próprios comandos chamados, como git pull, quanto de mensagens informativas geradas pelo próprio script, como Operation took XX minutes.

Eu gostaria de capturar toda a saída para um arquivo do próprio script : basicamente, estou tentando evitar a necessidade de chamar ./myscript.sh | tee file.txtpor motivos não relevantes aqui .

Basicamente eu gostaria de fazer algo assim:

startCapture

git pull

echo "Text"

other-command

endCapture

Também exijo que a saída seja impressa em meu shell enquanto o script está em execução.

O objetivo final é:

  1. executar ./myscript.shsem construções de shell adicionais
  2. veja a saída no terminal como eu faço agora
  3. obter um arquivo em disco com toda a saída

Isso é mesmo possível?

bash files
  • 3 respostas
  • 74251 Views
Martin Hope
user9303970
Asked: 2018-02-14 05:29:43 +0800 CST

Exportar uma variável de dentro de uma função equivale à exportação global dessa variável?

  • 18

Eu uso o Ubuntu 16.04 com o Bash nativo nele.

Não tenho certeza se estou executando

#!/bin/bash
myFunc() {
    export myVar="myVal"
}
myFunc

é igual em qualquer sentido, a apenas executar export myVar="myVal".

É claro que uma variável global geralmente deve ser declarada fora de uma função (uma questão de convenção, presumo, mesmo que seja tecnicamente possível), mas me pergunto sobre os casos mais exóticos em que alguém escreve uma função muito geral e deseja uma variável dentro dela para ainda estar disponível para tudo, em qualquer lugar.

Será que exportuma variável dentro de uma função seria idêntica a exportá-la globalmente, diretamente na CLI, disponibilizando-a para tudo no shell (todos os subshells e funções dentro deles)?

bash shell-script
  • 2 respostas
  • 22486 Views
Martin Hope
Grimm
Asked: 2018-02-01 12:03:52 +0800 CST

Pop-up: O suporte a idiomas está incompleto – quais pacotes ele deseja instalar?

  • 18

Estou usando o Kubuntu 17.10. Sempre após o login, a notificação abaixo aparece. Quando clico, ele pede minha senha e quer instalar ou remover pacotes – mas sem me dizer quais pacotes . Eu já procurei na internet, mas não consegui encontrar uma maneira de identificar quais pacotes são necessários. O padrão apt upgradenão está afetando este pop-up. Qual programa está causando esse pop-up e como posso ver quais pacotes ele deseja instalar?

Obrigado!

insira a descrição da imagem aqui

kde language
  • 1 respostas
  • 10563 Views
Prev
Próximo

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

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

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +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

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